diff --git a/cmd/zitadel/setup.yaml b/cmd/zitadel/setup.yaml index 379a71f040..45b954926d 100644 --- a/cmd/zitadel/setup.yaml +++ b/cmd/zitadel/setup.yaml @@ -29,7 +29,7 @@ SetUp: DefaultLoginPolicy: AllowUsernamePassword: true AllowRegister: true - AllowExternalIdp: true + AllowExternalIdp: true Orgs: - Name: 'Global' Domain: 'global.caos.ch' @@ -90,4 +90,8 @@ SetUp: ShowLockOutFailures: false Step5: DefaultOrgIAMPolicy: - UserLoginMustBeDomain: true \ No newline at end of file + UserLoginMustBeDomain: true + Step6: + DefaultLabelPolicy: + PrimaryColor: '#222324' + SecondaryColor: '#ffffff' diff --git a/go.mod b/go.mod index 8901430692..fe5dd596e5 100644 --- a/go.mod +++ b/go.mod @@ -58,4 +58,5 @@ require ( google.golang.org/grpc v1.32.0 google.golang.org/protobuf v1.25.0 gopkg.in/square/go-jose.v2 v2.5.1 + gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c // indirect ) diff --git a/go.sum b/go.sum index 99b2f75be5..097b61fe59 100644 --- a/go.sum +++ b/go.sum @@ -22,26 +22,32 @@ cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNF 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 h1:PQcPefKFdaIzjQFbiyOgAqyx8q5djaE7x9Sqe712DPA= 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 h1:/May9ojXjRkPBNVrq+oWLqmWCkr4OU5uRY29bu0mRyQ= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= 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 h1:ukjixP1wl0LpnZ6LWtZJ0mX5tBmjp1f8Sqer8Z2OMUU= 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 h1:STgFzyU5/8miMl0//zKh2aQeTyeaUH3WN9bSUiJ09bA= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= contrib.go.opencensus.io/exporter/stackdriver v0.13.4 h1:ksUxwH3OD5sxkjzEqGxNTl+Xjsmu3BnC/300MhSVTSc= contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 h1:VpgP7xuJadIUuKccphEpTJnWhS2jkQyMt6Y7pJCD7fY= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= @@ -52,6 +58,7 @@ github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3Q github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= +github.com/PuerkitoBio/goquery v1.5.1 h1:PSPBGne8NIUWw+/7vFBV+kG2J/5MOjbzc7154OaKCSE= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= github.com/VictoriaMetrics/fastcache v1.5.7 h1:4y6y0G8PRzszQUYIQHHssv/jgPHAb5qQuuDNdCbyAgw= github.com/VictoriaMetrics/fastcache v1.5.7/go.mod h1:ptDBkNMQI4RtmVo8VS/XwRY6RoTu1dAWCbrk+6WsEM8= @@ -60,15 +67,21 @@ github.com/ajstarks/svgo v0.0.0-20200725142600-7a3c8b57fecb/go.mod h1:K08gAheRH3 github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= +github.com/andybalholm/cascadia v1.1.0 h1:BuuO6sSfQNFRu1LppgbD25Hr2vLYW25JvxHs5zzsLTo= github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= +github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.34.24 h1:eTBgLksUJNLk5EwBl/lUweXjBZHbxvfcvqUxAJu7Fqg= github.com/aws/aws-sdk-go v1.34.24/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI= +github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI= +github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/caos/logging v0.0.2 h1:ebg5C/HN0ludYR+WkvnFjwSExF4wvyiWPyWGcKMYsoo= +github.com/caos/logging v0.0.2 h1:ebg5C/HN0ludYR+WkvnFjwSExF4wvyiWPyWGcKMYsoo= +github.com/caos/logging v0.0.2/go.mod h1:9LKiDE2ChuGv6CHYif/kiugrfEXu9AwDiFWSreX7Wp0= github.com/caos/logging v0.0.2/go.mod h1:9LKiDE2ChuGv6CHYif/kiugrfEXu9AwDiFWSreX7Wp0= github.com/caos/oidc v0.12.1 h1:ZNnviScAedQ6W9SV3k58c/mJCR3NI9KWUW//TjZ74T0= github.com/caos/oidc v0.12.1/go.mod h1:R9UKITZmSo5vNhSLUYcTDH8pAaV2xwPASXg8wpEs2xQ= @@ -79,16 +92,24 @@ github.com/census-instrumentation/opencensus-proto v0.3.0 h1:t/LhUZLVitR1Ow2YOnd github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f h1:WBZRG4aNOuI15bLRrCgN8fCq8E5Xuty6jGbmSNEvSsU= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/cockroachdb/cockroach-go/v2 v2.0.8 h1:50C/7ptrrfdxDccCjDU0xsdeBca+S0/AYW4Mo8RyzFE= github.com/cockroachdb/cockroach-go/v2 v2.0.8/go.mod h1:nkf7rUmgPdawp3EwRjXIumihI2AYg9usGNWbJ2hsJqI= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/creack/pty v1.1.7 h1:6pwm8kMQKCmgUg0ZHTm5+/YvRK0s3THD/28+T6/kk4A= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -99,6 +120,7 @@ github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd h1:83Wprp6RO github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= 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 h1:rEvIZUSZ3fx39WIi3JkQqQBitGwpELBIYWeBVh6wn+E= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0 h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= @@ -110,10 +132,14 @@ github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8S github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= @@ -123,7 +149,9 @@ github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LB github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= @@ -162,6 +190,7 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -176,9 +205,13 @@ github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-github/v31 v31.0.0 h1:JJUxlP9lFK+ziXKimTCprajMApV1ecWD4NB6CCb0plo= github.com/google/go-github/v31 v31.0.0/go.mod h1:NQPZol8/1sMoWYGN2yaALIBytu17gAWfhbweiEed3pM= +github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0 h1:pMen7vLs8nvgEYhywH3KDWJIJTeEr2ULsVWHWYHQyBs= github.com/google/martian/v3 v3.0.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= @@ -186,7 +219,9 @@ github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hf 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 h1:Ak8CrdlwwXwAZxzS66vgPt4U8yUZX7JwLvVR58FN5jM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -199,6 +234,8 @@ github.com/gorilla/csrf v1.7.0/go.mod h1:+a/4tCmqhG6/w4oafeAZ9pEa3/NZOWYVbD9fV0F github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/schema v1.2.0 h1:YufUaxZYCKGFuAq3c96BOhjgd5nmXiOY9NGzF247Tsc= github.com/gorilla/schema v1.2.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU= @@ -206,49 +243,63 @@ github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyC github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2 h1:FlFbCRLd5Jr4iYXZufAvgWN6Ao0JrI5chLINnUXDDr0= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= -github.com/grpc-ecosystem/grpc-gateway v1.14.8 h1:hXClj+iFpmLM8i3lkO6i4Psli4P2qObQuQReiII26U8= -github.com/grpc-ecosystem/grpc-gateway v1.14.8/go.mod h1:NZE8t6vs6TnwLL/ITkaK8W3ecMLGAbh2jXTclvpiwYo= github.com/grpc-ecosystem/grpc-gateway v1.15.2 h1:HC+hWRWf+v5zTMPyoaYTKIJih+4sd4XRWmj0qlG87Co= github.com/grpc-ecosystem/grpc-gateway v1.15.2/go.mod h1:vO11I9oWA+KsxmfFQPhLnnIb1VDE24M+pdxZFiuZcA8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/iancoleman/strcase v0.0.0-20180726023541-3605ed457bf7 h1:ux/56T2xqZO/3cP1I2F86qpeoYPCOzk+KF/UH/Ar+lk= github.com/iancoleman/strcase v0.0.0-20180726023541-3605ed457bf7/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6 h1:UDMh68UUwekSh5iP2OMhRRZJiiBccgV7axzUG8vi56c= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/log15 v0.0.0-20200109203555-b30bc20e4fd1 h1:KUDFlmBg2buRWNzIcwLlKvfcnujcHQRQ1As1LoaCLAM= github.com/inconshreveable/log15 v0.0.0-20200109203555-b30bc20e4fd1/go.mod h1:cOaXtrgN4ScfRrD9Bre7U1thNq5RtJ8ZoP4iXVGRj6o= +github.com/jackc/chunkreader v1.0.0 h1:4s39bBR8ByfqH+DKm8rQA3E1LHZWB9XWcrz8fqaZbe0= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= +github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= +github.com/jackc/pgconn v1.5.0 h1:oFSOilzIZkyg787M1fEmyMfOUUvwj0daqYMfaWwNL4o= github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= +github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= +github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2 h1:JVX6jT/XfzNqIjye4717ITLaNwV9mWbJx0dLCpcRzdA= github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgproto3 v1.1.0 h1:FYYE4yRw+AgI8wXIinMlNjBbp/UitDJwfj5LqqewP1A= github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= +github.com/jackc/pgproto3/v2 v2.0.1 h1:Rdjp4NFjwHnEslx2b66FfCI2S0LhO4itac3hXz6WX9M= github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8 h1:Q3tB+ExeflWUW7AFcAhXqk40s9mnNYLk1nOkKNZ5GnU= github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= +github.com/jackc/pgtype v1.3.0 h1:l8JvKrby3RI7Kg3bYEeU9TA4vqC38QDpFCfcrC7KuN0= github.com/jackc/pgtype v1.3.0/go.mod h1:b0JqxHvPmljG+HQ5IsvQ0yqeSi4nGcDTVjFoiLDb0Ik= +github.com/jackc/pgx v3.6.2+incompatible h1:2zP5OD7kiyR3xzRYMhOcXVvkDZsImVXfj+yIyTQf3/o= github.com/jackc/pgx v3.6.2+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= +github.com/jackc/pgx/v4 v4.6.0 h1:Fh0O9GdlG4gYpjpwOqjdEodJUQM9jzN3Hdv7PN0xmm0= github.com/jackc/pgx/v4 v4.6.0/go.mod h1:vPh43ZzxijXUVJ+t/EmXBtFmbFVO72cuneCT9oAlxAg= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v1.1.0 h1:musOWczZC/rSbqut475Vfcczg7jJsdUQf0D6oKPLgNU= github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jinzhu/gorm v1.9.12/go.mod h1:vhTjlKSJUTWNtcbQtrMBFCxy7eXTzeCAzfL5fBZT/Qs= github.com/jinzhu/gorm v1.9.16 h1:+IyIjPEABKRpsu/F8OvDPy9fyQlgsg2luMV2ZIH5i5o= @@ -261,8 +312,10 @@ github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5i github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.3.0 h1:OS12ieG61fsCg5+qLJ+SsW9NicxNkg3b25OyT2yCeUc= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= +github.com/jmoiron/sqlx v1.2.0 h1:41Ip0zITnmWNR/vHV+S4m+VoUivnWY5E4OJfLZjCJMA= github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/kevinburke/go-types v0.0.0-20200309064045-f2d4aea18a7a h1:Z7+SSApKiwPjNic+NF9+j7h657Uyvdp/jA3iTKhpj4E= github.com/kevinburke/go-types v0.0.0-20200309064045-f2d4aea18a7a/go.mod h1:/Pk5i/SqYdYv1cie5wGwoZ4P6TpgMi+Yf58mtJSHdOw= @@ -272,16 +325,21 @@ github.com/kevinburke/rest v0.0.0-20200429221318-0d2892b400f8 h1:KpuDJTaTPQAyWqE github.com/kevinburke/rest v0.0.0-20200429221318-0d2892b400f8/go.mod h1:pD+iEcdAGVXld5foVN4e24zb/6fnb60tgZPZ3P/3T/I= github.com/kevinburke/twilio-go v0.0.0-20200810163702-320748330fac h1:qQ7NAZEHpTyDfmZBH79KEiH3OK47Z+KvYVSR4sS3650= github.com/kevinburke/twilio-go v0.0.0-20200810163702-320748330fac/go.mod h1:Fm9alkN1/LPVY1eqD/psyMwPWE4VWl4P01/nTYZKzBk= +github.com/kisielk/errcheck v1.1.0 h1:ZqfnKyx9KGpRcW04j5nnPDgRgoXUeLh2YFBeFzphcA0= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.8 h1:AkaSdXYQOWeaO3neb8EM634ahkXXe3jYbVh/F9lq+GI= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -292,6 +350,7 @@ github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.4.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.8.0 h1:9xohqzkUwzR4Ga4ivdTcawVS89YSDVxXMa3xJX3cGzg= github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lyft/protoc-gen-star v0.5.1 h1:sImehRT+p7lW9n6R7MQc5hVgzWGEkDVZU4AsBQ4Isu8= github.com/lyft/protoc-gen-star v0.5.1/go.mod h1:9toiA3cC7z5uVbODF7kEQ91Xn7XNFkVUl+SrEe+ZORU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -318,28 +377,37 @@ github.com/nicksnyder/go-i18n/v2 v2.1.1 h1:ATCOanRDlrfKVB4WHAdJnLEqZtDmKYsweqsOU github.com/nicksnyder/go-i18n/v2 v2.1.1/go.mod h1:d++QJC9ZVf7pa48qrsRWhMJ5pSHIPmS3OLqK1niyLxs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1 h1:VasscCm72135zRysgrJDKsntdmPN+OuU3+nnHYA9wyc= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/otp v1.2.0 h1:/A3+Jn+cagqayeR3iHs/L62m5ue7710D35zl1zJ1kok= github.com/pquerna/otp v1.2.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= +github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0 h1:RR9dF3JtopPvtkroDZuVD7qquD0bnHlKSqaQhgwt8yk= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= +github.com/rs/zerolog v1.15.0 h1:uPRuwkWF4J6fGsJ2R0Gn2jB1EQiav9k3S6CSdygQJXY= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= +github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= +github.com/shopspring/decimal v0.0.0-20200419222939-1884f454f8ea h1:jaXWVFZ98/ihXniiDzqNXQgMSgklX4kjfDWZTE3ZtdU= github.com/shopspring/decimal v0.0.0-20200419222939-1884f454f8ea/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= @@ -349,10 +417,12 @@ github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic github.com/sony/sonyflake v1.0.0 h1:MpU6Ro7tfXwgn2l5eluf9xQvQJDROTBImNCfRXn/YeM= github.com/sony/sonyflake v1.0.0/go.mod h1:Jv3cfhf/UFtolOTTRd3q4Nl6ENqM+KfyZ5PseKfZGF4= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= +github.com/spf13/afero v1.3.4 h1:8q6vk3hthlpb2SouZcnBVKboxWQWMDNF38bwholZrJc= github.com/spf13/afero v1.3.4/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -368,8 +438,10 @@ github.com/ttacon/libphonenumber v1.1.0 h1:tC6kE4t8UI4OqQVQjW5q8gSWhG2wnY5moEpSE github.com/ttacon/libphonenumber v1.1.0/go.mod h1:E0TpmdVMq5dyVlQ7oenAkhsLu86OkUl+yR4OAxyEg/M= 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 h1:5tjfNdR2ki3yYQ842+eX2sQHeiwpKJ0RnHO4IYOc4V8= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/zenazn/goji v0.9.0 h1:RSQQAbXGArQ0dIDEq+PI6WqN6if+5KHu6x2Cx/GXLTQ= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= @@ -381,9 +453,12 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -410,9 +485,11 @@ golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6 h1:QE6XYQK6naiK1EPAe1g/ILLxN5RBoH5xkJk3CqlMI/Y= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -427,6 +504,7 @@ golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= @@ -543,6 +621,7 @@ golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -688,7 +767,6 @@ google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI= 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.32.0 h1:zWTV+LMdc3kaiJMSTOFz2UgSBgx8RNQoTGiZu3fR9S0= google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -710,7 +788,9 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLFVxaq6wH4YuVdsUOr75U= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec h1:RlWgLqCMMIYYEVcAR5MDsuHlVkaIPDAF+5Dehzg8L5A= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w= gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= @@ -722,6 +802,8 @@ gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c h1:grhR+C34yXImVGp7EzNk+DTIk+323eIUWOmEevy6bDo= +gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -729,7 +811,9 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= 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 h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0 h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0 h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= diff --git a/internal/admin/repository/eventsourcing/eventstore/iam.go b/internal/admin/repository/eventsourcing/eventstore/iam.go index 065c2bea63..4144e62fd7 100644 --- a/internal/admin/repository/eventsourcing/eventstore/iam.go +++ b/internal/admin/repository/eventsourcing/eventstore/iam.go @@ -2,6 +2,8 @@ package eventstore import ( "context" + "strings" + "github.com/caos/logging" admin_view "github.com/caos/zitadel/internal/admin/repository/eventsourcing/view" "github.com/caos/zitadel/internal/config/systemdefaults" @@ -11,7 +13,6 @@ import ( org_es "github.com/caos/zitadel/internal/org/repository/eventsourcing" usr_model "github.com/caos/zitadel/internal/user/model" usr_es "github.com/caos/zitadel/internal/user/repository/eventsourcing" - "strings" iam_model "github.com/caos/zitadel/internal/iam/model" iam_es "github.com/caos/zitadel/internal/iam/repository/eventsourcing" @@ -173,6 +174,24 @@ func (repo *IAMRepository) SearchIDPConfigs(ctx context.Context, request *iam_mo return result, nil } +func (repo *IAMRepository) GetDefaultLabelPolicy(ctx context.Context) (*iam_model.LabelPolicyView, error) { + policy, err := repo.View.LabelPolicyByAggregateID(repo.SystemDefaults.IamID) + if err != nil { + return nil, err + } + return iam_es_model.LabelPolicyViewToModel(policy), err +} + +func (repo *IAMRepository) AddDefaultLabelPolicy(ctx context.Context, policy *iam_model.LabelPolicy) (*iam_model.LabelPolicy, error) { + policy.AggregateID = repo.SystemDefaults.IamID + return repo.IAMEventstore.AddLabelPolicy(ctx, policy) +} + +func (repo *IAMRepository) ChangeDefaultLabelPolicy(ctx context.Context, policy *iam_model.LabelPolicy) (*iam_model.LabelPolicy, error) { + policy.AggregateID = repo.SystemDefaults.IamID + return repo.IAMEventstore.ChangeLabelPolicy(ctx, policy) +} + func (repo *IAMRepository) GetDefaultLoginPolicy(ctx context.Context) (*iam_model.LoginPolicyView, error) { policy, err := repo.View.LoginPolicyByAggregateID(repo.SystemDefaults.IamID) if err != nil { diff --git a/internal/admin/repository/eventsourcing/handler/handler.go b/internal/admin/repository/eventsourcing/handler/handler.go index bf32438ad2..31115d9878 100644 --- a/internal/admin/repository/eventsourcing/handler/handler.go +++ b/internal/admin/repository/eventsourcing/handler/handler.go @@ -1,9 +1,10 @@ package handler import ( + "time" + "github.com/caos/zitadel/internal/config/systemdefaults" iam_event "github.com/caos/zitadel/internal/iam/repository/eventsourcing" - "time" "github.com/caos/zitadel/internal/admin/repository/eventsourcing/view" "github.com/caos/zitadel/internal/config/types" @@ -38,6 +39,7 @@ func Register(configs Configs, bulkLimit, errorCount uint64, view *view.View, ev &IamMember{handler: handler{view, bulkLimit, configs.cycleDuration("IamMember"), errorCount}, userEvents: repos.UserEvents}, &IDPConfig{handler: handler{view, bulkLimit, configs.cycleDuration("IDPConfig"), errorCount}}, + &LabelPolicy{handler: handler{view, bulkLimit, configs.cycleDuration("LabelPolicy"), errorCount}}, &LoginPolicy{handler: handler{view, bulkLimit, configs.cycleDuration("LoginPolicy"), errorCount}}, &IDPProvider{handler: handler{view, bulkLimit, configs.cycleDuration("LoginPolicy"), errorCount}, systemDefaults: defaults, iamEvents: repos.IamEvents, orgEvents: repos.OrgEvents}, diff --git a/internal/admin/repository/eventsourcing/handler/label_policy.go b/internal/admin/repository/eventsourcing/handler/label_policy.go new file mode 100644 index 0000000000..5226b5e3dd --- /dev/null +++ b/internal/admin/repository/eventsourcing/handler/label_policy.go @@ -0,0 +1,66 @@ +package handler + +import ( + "github.com/caos/logging" + + "github.com/caos/zitadel/internal/eventstore/models" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/eventstore/spooler" + "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + iam_model "github.com/caos/zitadel/internal/iam/repository/view/model" +) + +type LabelPolicy struct { + handler +} + +const ( + labelPolicyTable = "adminapi.label_policies" +) + +func (m *LabelPolicy) ViewModel() string { + return labelPolicyTable +} + +func (m *LabelPolicy) EventQuery() (*models.SearchQuery, error) { + sequence, err := m.view.GetLatestLabelPolicySequence() + if err != nil { + return nil, err + } + return es_models.NewSearchQuery(). + AggregateTypeFilter(model.IAMAggregate). + LatestSequenceFilter(sequence.CurrentSequence), nil +} + +func (m *LabelPolicy) Reduce(event *models.Event) (err error) { + switch event.AggregateType { + case model.IAMAggregate: + err = m.processLabelPolicy(event) + } + return err +} + +func (m *LabelPolicy) processLabelPolicy(event *models.Event) (err error) { + policy := new(iam_model.LabelPolicyView) + switch event.Type { + case model.LabelPolicyAdded: + err = policy.AppendEvent(event) + case model.LabelPolicyChanged: + policy, err = m.view.LabelPolicyByAggregateID(event.AggregateID) + if err != nil { + return err + } + err = policy.AppendEvent(event) + default: + return m.view.ProcessedLabelPolicySequence(event.Sequence) + } + if err != nil { + return err + } + return m.view.PutLabelPolicy(policy, policy.Sequence) +} + +func (m *LabelPolicy) OnError(event *models.Event, err error) error { + logging.LogWithFields("SPOOL-Wj8sf", "id", event.AggregateID).WithError(err).Warn("something went wrong in label policy handler") + return spooler.HandleError(event, err, m.view.GetLatestLabelPolicyFailedEvent, m.view.ProcessedLabelPolicyFailedEvent, m.view.ProcessedLabelPolicySequence, m.errorCountUntilSkip) +} diff --git a/internal/admin/repository/eventsourcing/view/label_policies.go b/internal/admin/repository/eventsourcing/view/label_policies.go new file mode 100644 index 0000000000..113859894f --- /dev/null +++ b/internal/admin/repository/eventsourcing/view/label_policies.go @@ -0,0 +1,39 @@ +package view + +import ( + "github.com/caos/zitadel/internal/iam/repository/view" + "github.com/caos/zitadel/internal/iam/repository/view/model" + global_view "github.com/caos/zitadel/internal/view/repository" +) + +const ( + labelPolicyTable = "adminapi.label_policies" +) + +func (v *View) LabelPolicyByAggregateID(aggregateID string) (*model.LabelPolicyView, error) { + return view.GetLabelPolicyByAggregateID(v.Db, labelPolicyTable, aggregateID) +} + +func (v *View) PutLabelPolicy(policy *model.LabelPolicyView, sequence uint64) error { + err := view.PutLabelPolicy(v.Db, labelPolicyTable, policy) + if err != nil { + return err + } + return v.ProcessedLabelPolicySequence(sequence) +} + +func (v *View) GetLatestLabelPolicySequence() (*global_view.CurrentSequence, error) { + return v.latestSequence(labelPolicyTable) +} + +func (v *View) ProcessedLabelPolicySequence(eventSequence uint64) error { + return v.saveCurrentSequence(labelPolicyTable, eventSequence) +} + +func (v *View) GetLatestLabelPolicyFailedEvent(sequence uint64) (*global_view.FailedEvent, error) { + return v.latestFailedEvent(labelPolicyTable, sequence) +} + +func (v *View) ProcessedLabelPolicyFailedEvent(failedEvent *global_view.FailedEvent) error { + return v.saveFailedEvent(failedEvent) +} diff --git a/internal/admin/repository/iam.go b/internal/admin/repository/iam.go index c75a683812..a91181f7fc 100644 --- a/internal/admin/repository/iam.go +++ b/internal/admin/repository/iam.go @@ -2,6 +2,7 @@ package repository import ( "context" + iam_model "github.com/caos/zitadel/internal/iam/model" ) @@ -28,6 +29,9 @@ type IAMRepository interface { SearchDefaultIDPProviders(ctx context.Context, request *iam_model.IDPProviderSearchRequest) (*iam_model.IDPProviderSearchResponse, error) AddIDPProviderToLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) (*iam_model.IDPProvider, error) RemoveIDPProviderFromLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) error + GetDefaultLabelPolicy(ctx context.Context) (*iam_model.LabelPolicyView, error) + AddDefaultLabelPolicy(ctx context.Context, policy *iam_model.LabelPolicy) (*iam_model.LabelPolicy, error) + ChangeDefaultLabelPolicy(ctx context.Context, policy *iam_model.LabelPolicy) (*iam_model.LabelPolicy, error) GetDefaultPasswordComplexityPolicy(ctx context.Context) (*iam_model.PasswordComplexityPolicyView, error) AddDefaultPasswordComplexityPolicy(ctx context.Context, policy *iam_model.PasswordComplexityPolicy) (*iam_model.PasswordComplexityPolicy, error) diff --git a/internal/api/grpc/admin/label_policy.go b/internal/api/grpc/admin/label_policy.go new file mode 100644 index 0000000000..1d1befa260 --- /dev/null +++ b/internal/api/grpc/admin/label_policy.go @@ -0,0 +1,24 @@ +package admin + +import ( + "context" + + "github.com/caos/zitadel/pkg/grpc/admin" + "github.com/golang/protobuf/ptypes/empty" +) + +func (s *Server) GetDefaultLabelPolicy(ctx context.Context, _ *empty.Empty) (*admin.DefaultLabelPolicyView, error) { + result, err := s.iam.GetDefaultLabelPolicy(ctx) + if err != nil { + return nil, err + } + return labelPolicyViewFromModel(result), nil +} + +func (s *Server) UpdateDefaultLabelPolicy(ctx context.Context, policy *admin.DefaultLabelPolicyUpdate) (*admin.DefaultLabelPolicy, error) { + result, err := s.iam.ChangeDefaultLabelPolicy(ctx, labelPolicyToModel(policy)) + if err != nil { + return nil, err + } + return labelPolicyFromModel(result), nil +} diff --git a/internal/api/grpc/admin/label_policy_converter.go b/internal/api/grpc/admin/label_policy_converter.go new file mode 100644 index 0000000000..a5e0f09745 --- /dev/null +++ b/internal/api/grpc/admin/label_policy_converter.go @@ -0,0 +1,45 @@ +package admin + +import ( + "github.com/caos/logging" + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/caos/zitadel/pkg/grpc/admin" + "github.com/golang/protobuf/ptypes" +) + +func labelPolicyToModel(policy *admin.DefaultLabelPolicyUpdate) *iam_model.LabelPolicy { + return &iam_model.LabelPolicy{ + PrimaryColor: policy.PrimaryColor, + SecondaryColor: policy.SecondaryColor, + } +} + +func labelPolicyFromModel(policy *iam_model.LabelPolicy) *admin.DefaultLabelPolicy { + creationDate, err := ptypes.TimestampProto(policy.CreationDate) + logging.Log("ADMIN-QwQG9").OnError(err).Debug("date parse failed") + + changeDate, err := ptypes.TimestampProto(policy.ChangeDate) + logging.Log("ADMIN-mAgcI").OnError(err).Debug("date parse failed") + + return &admin.DefaultLabelPolicy{ + PrimaryColor: policy.PrimaryColor, + SecondaryColor: policy.SecondaryColor, + CreationDate: creationDate, + ChangeDate: changeDate, + } +} + +func labelPolicyViewFromModel(policy *iam_model.LabelPolicyView) *admin.DefaultLabelPolicyView { + creationDate, err := ptypes.TimestampProto(policy.CreationDate) + logging.Log("ADMIN-zMnlF").OnError(err).Debug("date parse failed") + + changeDate, err := ptypes.TimestampProto(policy.ChangeDate) + logging.Log("ADMIN-Vhvfp").OnError(err).Debug("date parse failed") + + return &admin.DefaultLabelPolicyView{ + PrimaryColor: policy.PrimaryColor, + SecondaryColor: policy.SecondaryColor, + CreationDate: creationDate, + ChangeDate: changeDate, + } +} diff --git a/internal/iam/model/iam.go b/internal/iam/model/iam.go index 894f00f350..f10b6295c2 100644 --- a/internal/iam/model/iam.go +++ b/internal/iam/model/iam.go @@ -12,6 +12,7 @@ const ( Step3 Step4 Step5 + Step6 //StepCount marks the the length of possible steps (StepCount-1 == last possible step) StepCount ) @@ -25,6 +26,7 @@ type IAM struct { Members []*IAMMember IDPs []*IDPConfig DefaultLoginPolicy *LoginPolicy + DefaultLabelPolicy *LabelPolicy DefaultOrgIAMPolicy *OrgIAMPolicy DefaultPasswordComplexityPolicy *PasswordComplexityPolicy DefaultPasswordAgePolicy *PasswordAgePolicy diff --git a/internal/iam/model/label_policy.go b/internal/iam/model/label_policy.go new file mode 100644 index 0000000000..ead99759a0 --- /dev/null +++ b/internal/iam/model/label_policy.go @@ -0,0 +1,18 @@ +package model + +import ( + "github.com/caos/zitadel/internal/eventstore/models" +) + +type LabelPolicy struct { + models.ObjectRoot + + State PolicyState + Default bool + PrimaryColor string + SecondaryColor string +} + +func (p *LabelPolicy) IsValid() bool { + return p.ObjectRoot.AggregateID != "" +} diff --git a/internal/iam/model/label_policy_view.go b/internal/iam/model/label_policy_view.go new file mode 100644 index 0000000000..9202680909 --- /dev/null +++ b/internal/iam/model/label_policy_view.go @@ -0,0 +1,48 @@ +package model + +import ( + "time" + + "github.com/caos/zitadel/internal/model" +) + +type LabelPolicyView struct { + AggregateID string + PrimaryColor string + SecondaryColor string + Default bool + + CreationDate time.Time + ChangeDate time.Time + Sequence uint64 +} + +type LabelPolicySearchRequest struct { + Offset uint64 + Limit uint64 + SortingColumn LabelPolicySearchKey + Asc bool + Queries []*LabelPolicySearchQuery +} + +type LabelPolicySearchKey int32 + +const ( + LabelPolicySearchKeyUnspecified LabelPolicySearchKey = iota + LabelPolicySearchKeyAggregateID +) + +type LabelPolicySearchQuery struct { + Key LabelPolicySearchKey + Method model.SearchMethod + Value interface{} +} + +type LabelPolicySearchResponse struct { + Offset uint64 + Limit uint64 + TotalResult uint64 + Result []*LabelPolicyView + Sequence uint64 + Timestamp time.Time +} diff --git a/internal/iam/repository/eventsourcing/eventstore.go b/internal/iam/repository/eventsourcing/eventstore.go index c1c08f0258..cd1b3794a5 100644 --- a/internal/iam/repository/eventsourcing/eventstore.go +++ b/internal/iam/repository/eventsourcing/eventstore.go @@ -2,6 +2,7 @@ package eventsourcing import ( "context" + "github.com/caos/zitadel/internal/cache/config" sd "github.com/caos/zitadel/internal/config/systemdefaults" "github.com/caos/zitadel/internal/crypto" @@ -415,6 +416,68 @@ func (es *IAMEventstore) ChangeIDPOIDCConfig(ctx context.Context, config *iam_mo return nil, caos_errs.ThrowInternal(nil, "EVENT-Sldk8", "Errors.Internal") } +func (es *IAMEventstore) PrepareAddLabelPolicy(ctx context.Context, policy *iam_model.LabelPolicy) (*model.IAM, *models.Aggregate, error) { + if policy == nil || policy.AggregateID == "" { + return nil, nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-VwlDv", "Errors.IAM.LabelPolicy.Empty") + } + iam, err := es.IAMByID(ctx, policy.AggregateID) + if err != nil { + return nil, nil, err + } + + repoIam := model.IAMFromModel(iam) + labelPolicy := model.LabelPolicyFromModel(policy) + + addAggregate := LabelPolicyAddedAggregate(es.Eventstore.AggregateCreator(), repoIam, labelPolicy) + aggregate, err := addAggregate(ctx) + if err != nil { + return nil, nil, err + } + return repoIam, aggregate, nil +} + +func (es *IAMEventstore) AddLabelPolicy(ctx context.Context, policy *iam_model.LabelPolicy) (*iam_model.LabelPolicy, error) { + if policy == nil || !policy.IsValid() { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-aAPWI", "Errors.IAM.LabelPolicyInvalid") + } + iam, err := es.IAMByID(ctx, policy.AggregateID) + if err != nil { + return nil, err + } + + repoIam := model.IAMFromModel(iam) + repoLabelPolicy := model.LabelPolicyFromModel(policy) + + addAggregate := LabelPolicyAddedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoLabelPolicy) + err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, addAggregate) + if err != nil { + return nil, err + } + es.iamCache.cacheIAM(repoIam) + return model.LabelPolicyToModel(repoIam.DefaultLabelPolicy), nil +} + +func (es *IAMEventstore) ChangeLabelPolicy(ctx context.Context, policy *iam_model.LabelPolicy) (*iam_model.LabelPolicy, error) { + if policy == nil || !policy.IsValid() { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-vRqjg", "Errors.IAM.LabelPolicyInvalid") + } + iam, err := es.IAMByID(ctx, policy.AggregateID) + if err != nil { + return nil, err + } + + repoIam := model.IAMFromModel(iam) + repoLabelPolicy := model.LabelPolicyFromModel(policy) + + addAggregate := LabelPolicyChangedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoLabelPolicy) + err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, addAggregate) + if err != nil { + return nil, err + } + es.iamCache.cacheIAM(repoIam) + return model.LabelPolicyToModel(repoIam.DefaultLabelPolicy), nil +} + func (es *IAMEventstore) PrepareAddLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*model.IAM, *models.Aggregate, error) { if policy == nil || !policy.IsValid() { return nil, nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Lso02", "Errors.IAM.LoginPolicyInvalid") diff --git a/internal/iam/repository/eventsourcing/eventstore_mock_test.go b/internal/iam/repository/eventsourcing/eventstore_mock_test.go index cb5a6b36c5..f022d5b65d 100644 --- a/internal/iam/repository/eventsourcing/eventstore_mock_test.go +++ b/internal/iam/repository/eventsourcing/eventstore_mock_test.go @@ -2,6 +2,7 @@ package eventsourcing import ( "encoding/json" + "github.com/caos/zitadel/internal/crypto" "github.com/caos/zitadel/internal/id" @@ -182,3 +183,16 @@ func GetMockManipulateIAMNotExisting(ctrl *gomock.Controller) *IAMEventstore { mockEs.EXPECT().PushAggregates(gomock.Any(), gomock.Any()).Return(nil) return GetMockedEventstore(ctrl, mockEs) } + +func GetMockManipulateIAMWithLabelPolicy(ctrl *gomock.Controller) *IAMEventstore { + policyData, _ := json.Marshal(model.LabelPolicy{PrimaryColor: "000001", SecondaryColor: "FFFFF1"}) + events := []*es_models.Event{ + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IAMSetupStarted}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.LabelPolicyAdded, Data: policyData}, + } + mockEs := mock.NewMockEventstore(ctrl) + mockEs.EXPECT().FilterEvents(gomock.Any(), gomock.Any()).Return(events, nil) + mockEs.EXPECT().AggregateCreator().Return(es_models.NewAggregateCreator("TEST")) + mockEs.EXPECT().PushAggregates(gomock.Any(), gomock.Any()).Return(nil) + return GetMockedEventstore(ctrl, mockEs) +} diff --git a/internal/iam/repository/eventsourcing/eventstore_test.go b/internal/iam/repository/eventsourcing/eventstore_test.go index b81dc608cb..7ccb53127e 100644 --- a/internal/iam/repository/eventsourcing/eventstore_test.go +++ b/internal/iam/repository/eventsourcing/eventstore_test.go @@ -1657,6 +1657,170 @@ func TestRemoveIdpProviderFromLoginPolicy(t *testing.T) { } } +func TestAddLabelPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *IAMEventstore + ctx context.Context + policy *iam_model.LabelPolicy + } + type res struct { + result *iam_model.LabelPolicy + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add label policy, ok", + args: args{ + es: GetMockManipulateIAM(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + PrimaryColor: "000000", + }, + }, + res: res{ + result: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + PrimaryColor: "000000", + }, + }, + }, + { + name: "invalid policy", + args: args{ + es: GetMockManipulateIAM(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockManipulateIAMNotExisting(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.AddLabelPolicy(tt.args.ctx, tt.args.policy) + if (tt.res.wantErr && !tt.res.errFunc(err)) || (err != nil && !tt.res.wantErr) { + t.Errorf("got wrong err: %v ", err) + return + } + if tt.res.wantErr && tt.res.errFunc(err) { + return + } + if result.PrimaryColor != tt.res.result.PrimaryColor { + t.Errorf("got wrong result PrimaryColor: expected: %v, actual: %v ", tt.res.result.PrimaryColor, result.PrimaryColor) + } + }) + } +} + +func TestChangeLabelPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *IAMEventstore + ctx context.Context + policy *iam_model.LabelPolicy + } + type res struct { + result *iam_model.LabelPolicy + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "change label policy, ok", + args: args{ + es: GetMockManipulateIAMWithLabelPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + PrimaryColor: "000000", + SecondaryColor: "FFFFFF", + }, + }, + res: res{ + result: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + PrimaryColor: "000000", + SecondaryColor: "FFFFFF", + }, + }, + }, + { + name: "invalid policy", + args: args{ + es: GetMockManipulateIAM(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockManipulateIAMNotExisting(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.ChangeLabelPolicy(tt.args.ctx, tt.args.policy) + if (tt.res.wantErr && !tt.res.errFunc(err)) || (err != nil && !tt.res.wantErr) { + t.Errorf("got wrong err: %v ", err) + return + } + if tt.res.wantErr && tt.res.errFunc(err) { + return + } + if result.PrimaryColor != tt.res.result.PrimaryColor { + t.Errorf("got wrong result PrimaryColor: expected: %v, actual: %v ", tt.res.result.PrimaryColor, result.PrimaryColor) + } + if result.SecondaryColor != tt.res.result.SecondaryColor { + t.Errorf("got wrong result SecondaryColor: expected: %v, actual: %v ", tt.res.result.SecondaryColor, result.SecondaryColor) + } + }) + } +} func TestAddPasswordComplexityPolicy(t *testing.T) { ctrl := gomock.NewController(t) type args struct { diff --git a/internal/iam/repository/eventsourcing/iam.go b/internal/iam/repository/eventsourcing/iam.go index 9199ccdcce..9e5a892028 100644 --- a/internal/iam/repository/eventsourcing/iam.go +++ b/internal/iam/repository/eventsourcing/iam.go @@ -2,6 +2,7 @@ package eventsourcing import ( "context" + "github.com/caos/zitadel/internal/errors" es_models "github.com/caos/zitadel/internal/eventstore/models" "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" @@ -231,6 +232,54 @@ func OIDCIDPConfigChangedAggregate(aggCreator *es_models.AggregateCreator, exist return agg.AppendEvent(model.OIDCIDPConfigChanged, changes) } } +func LabelPolicyAddedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, policy *model.LabelPolicy) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if policy == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-e248Y", "Errors.Internal") + } + agg, err := IAMAggregate(ctx, aggCreator, existing) + if err != nil { + return nil, err + } + validationQuery := es_models.NewSearchQuery(). + AggregateTypeFilter(model.IAMAggregate). + EventTypesFilter(model.LabelPolicyAdded). + AggregateIDFilter(existing.AggregateID) + + validation := checkExistingLabelPolicyValidation() + agg.SetPrecondition(validationQuery, validation) + return agg.AppendEvent(model.LabelPolicyAdded, policy) + } +} + +func checkExistingLabelPolicyValidation() func(...*es_models.Event) error { + return func(events ...*es_models.Event) error { + for _, event := range events { + switch event.Type { + case model.LabelPolicyAdded: + return errors.ThrowPreconditionFailed(nil, "EVENT-KyLIK", "Errors.IAM.LabelPolicy.AlreadyExists") + } + } + return nil + } +} + +func LabelPolicyChangedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, policy *model.LabelPolicy) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if policy == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-uP6HQ", "Errors.Internal") + } + agg, err := IAMAggregate(ctx, aggCreator, existing) + if err != nil { + return nil, err + } + changes := existing.DefaultLabelPolicy.Changes(policy) + if len(changes) == 0 { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-hZE24", "Errors.NoChangesFound") + } + return agg.AppendEvent(model.LabelPolicyChanged, changes) + } +} func LoginPolicyAddedAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, existing *model.IAM, policy *model.LoginPolicy) (*es_models.Aggregate, error) { if policy == nil { diff --git a/internal/iam/repository/eventsourcing/model/iam.go b/internal/iam/repository/eventsourcing/model/iam.go index da626b4f57..e86889c69d 100644 --- a/internal/iam/repository/eventsourcing/model/iam.go +++ b/internal/iam/repository/eventsourcing/model/iam.go @@ -30,6 +30,7 @@ type IAM struct { Members []*IAMMember `json:"-"` IDPs []*IDPConfig `json:"-"` DefaultLoginPolicy *LoginPolicy `json:"-"` + DefaultLabelPolicy *LabelPolicy `json:"-"` DefaultOrgIAMPolicy *OrgIAMPolicy `json:"-"` DefaultPasswordComplexityPolicy *PasswordComplexityPolicy `json:"-"` DefaultPasswordAgePolicy *PasswordAgePolicy `json:"-"` @@ -51,6 +52,9 @@ func IAMFromModel(iam *model.IAM) *IAM { if iam.DefaultLoginPolicy != nil { converted.DefaultLoginPolicy = LoginPolicyFromModel(iam.DefaultLoginPolicy) } + if iam.DefaultLabelPolicy != nil { + converted.DefaultLabelPolicy = LabelPolicyFromModel(iam.DefaultLabelPolicy) + } if iam.DefaultPasswordComplexityPolicy != nil { converted.DefaultPasswordComplexityPolicy = PasswordComplexityPolicyFromModel(iam.DefaultPasswordComplexityPolicy) } @@ -81,6 +85,9 @@ func IAMToModel(iam *IAM) *model.IAM { if iam.DefaultLoginPolicy != nil { converted.DefaultLoginPolicy = LoginPolicyToModel(iam.DefaultLoginPolicy) } + if iam.DefaultLabelPolicy != nil { + converted.DefaultLabelPolicy = LabelPolicyToModel(iam.DefaultLabelPolicy) + } if iam.DefaultPasswordComplexityPolicy != nil { converted.DefaultPasswordComplexityPolicy = PasswordComplexityPolicyToModel(iam.DefaultPasswordComplexityPolicy) } @@ -161,6 +168,10 @@ func (i *IAM) AppendEvent(event *es_models.Event) (err error) { return i.appendAddIDPProviderToLoginPolicyEvent(event) case LoginPolicyIDPProviderRemoved: return i.appendRemoveIDPProviderFromLoginPolicyEvent(event) + case LabelPolicyAdded: + return i.appendAddLabelPolicyEvent(event) + case LabelPolicyChanged: + return i.appendChangeLabelPolicyEvent(event) case PasswordComplexityPolicyAdded: return i.appendAddPasswordComplexityPolicyEvent(event) case PasswordComplexityPolicyChanged: diff --git a/internal/iam/repository/eventsourcing/model/label_policy.go b/internal/iam/repository/eventsourcing/model/label_policy.go new file mode 100644 index 0000000000..738b54fcb0 --- /dev/null +++ b/internal/iam/repository/eventsourcing/model/label_policy.go @@ -0,0 +1,78 @@ +package model + +import ( + "encoding/json" + + "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/eventstore/models" + es_models "github.com/caos/zitadel/internal/eventstore/models" + iam_model "github.com/caos/zitadel/internal/iam/model" +) + +type LabelPolicy struct { + models.ObjectRoot + State int32 `json:"-"` + PrimaryColor string `json:"primaryColor"` + SecondaryColor string `json:"secondaryColor"` +} + +func LabelPolicyToModel(policy *LabelPolicy) *iam_model.LabelPolicy { + return &iam_model.LabelPolicy{ + ObjectRoot: policy.ObjectRoot, + State: iam_model.PolicyState(policy.State), + PrimaryColor: policy.PrimaryColor, + SecondaryColor: policy.SecondaryColor, + } +} + +func LabelPolicyFromModel(policy *iam_model.LabelPolicy) *LabelPolicy { + return &LabelPolicy{ + ObjectRoot: policy.ObjectRoot, + State: int32(policy.State), + PrimaryColor: policy.PrimaryColor, + SecondaryColor: policy.SecondaryColor, + } +} + +func (p *LabelPolicy) Changes(changed *LabelPolicy) map[string]interface{} { + changes := make(map[string]interface{}, 2) + + if changed.PrimaryColor != p.PrimaryColor { + changes["primaryColor"] = changed.PrimaryColor + } + if changed.SecondaryColor != p.SecondaryColor { + changes["secondaryColor"] = changed.SecondaryColor + } + + return changes +} + +func (i *IAM) appendAddLabelPolicyEvent(event *es_models.Event) error { + i.DefaultLabelPolicy = new(LabelPolicy) + err := i.DefaultLabelPolicy.SetDataLabel(event) + if err != nil { + return err + } + i.DefaultLabelPolicy.ObjectRoot.CreationDate = event.CreationDate + return nil +} + +func (i *IAM) appendChangeLabelPolicyEvent(event *es_models.Event) error { + return i.DefaultLabelPolicy.SetDataLabel(event) +} + +func (p *LabelPolicy) SetDataLabel(event *es_models.Event) error { + err := json.Unmarshal(event.Data, p) + if err != nil { + return errors.ThrowInternal(err, "MODEL-ikjhf", "unable to unmarshal data") + } + return nil +} + +func (p *IDPProvider) SetDataLabel(event *es_models.Event) error { + err := json.Unmarshal(event.Data, p) + if err != nil { + return errors.ThrowInternal(err, "MODEL-c41Hn", "unable to unmarshal data") + } + return nil +} diff --git a/internal/iam/repository/eventsourcing/model/label_policy_test.go b/internal/iam/repository/eventsourcing/model/label_policy_test.go new file mode 100644 index 0000000000..094e51f28c --- /dev/null +++ b/internal/iam/repository/eventsourcing/model/label_policy_test.go @@ -0,0 +1,132 @@ +package model + +import ( + "encoding/json" + "testing" + + es_models "github.com/caos/zitadel/internal/eventstore/models" +) + +func TestLabelPolicyChanges(t *testing.T) { + type args struct { + existing *LabelPolicy + new *LabelPolicy + } + type res struct { + changesLen int + } + tests := []struct { + name string + args args + res res + }{ + { + name: "labelpolicy all attributes change", + args: args{ + existing: &LabelPolicy{PrimaryColor: "000001", SecondaryColor: "FFFFFA"}, + new: &LabelPolicy{PrimaryColor: "000000", SecondaryColor: "FFFFFF"}, + }, + res: res{ + changesLen: 2, + }, + }, + { + name: "no changes", + args: args{ + existing: &LabelPolicy{PrimaryColor: "000000", SecondaryColor: "FFFFFF"}, + new: &LabelPolicy{PrimaryColor: "000000", SecondaryColor: "FFFFFF"}, + }, + res: res{ + changesLen: 0, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + changes := tt.args.existing.Changes(tt.args.new) + if len(changes) != tt.res.changesLen { + t.Errorf("got wrong changes len: expected: %v, actual: %v ", tt.res.changesLen, len(changes)) + } + }) + } +} + +func TestAppendAddLabelPolicyEvent(t *testing.T) { + type args struct { + iam *IAM + policy *LabelPolicy + event *es_models.Event + } + tests := []struct { + name string + args args + result *IAM + }{ + { + name: "append add label policy event", + args: args{ + iam: new(IAM), + policy: &LabelPolicy{PrimaryColor: "000000", SecondaryColor: "FFFFFF"}, + event: new(es_models.Event), + }, + result: &IAM{DefaultLabelPolicy: &LabelPolicy{PrimaryColor: "000000", SecondaryColor: "FFFFFF"}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.policy != nil { + data, _ := json.Marshal(tt.args.policy) + tt.args.event.Data = data + } + tt.args.iam.appendAddLabelPolicyEvent(tt.args.event) + if tt.result.DefaultLabelPolicy.PrimaryColor != tt.args.iam.DefaultLabelPolicy.PrimaryColor { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.DefaultLabelPolicy.PrimaryColor, tt.args.iam.DefaultLabelPolicy.PrimaryColor) + } + if tt.result.DefaultLabelPolicy.SecondaryColor != tt.args.iam.DefaultLabelPolicy.SecondaryColor { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.DefaultLabelPolicy.SecondaryColor, tt.args.iam.DefaultLabelPolicy.SecondaryColor) + } + }) + } +} + +func TestAppendChangeLabelPolicyEvent(t *testing.T) { + type args struct { + iam *IAM + policy *LabelPolicy + event *es_models.Event + } + tests := []struct { + name string + args args + result *IAM + }{ + { + name: "append change label policy event", + args: args{ + iam: &IAM{DefaultLabelPolicy: &LabelPolicy{ + PrimaryColor: "000001", SecondaryColor: "FFFFF0", + }}, + policy: &LabelPolicy{PrimaryColor: "000000", SecondaryColor: "FFFFFF"}, + event: &es_models.Event{}, + }, + result: &IAM{DefaultLabelPolicy: &LabelPolicy{ + PrimaryColor: "000000", SecondaryColor: "FFFFFF", + }}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.policy != nil { + data, _ := json.Marshal(tt.args.policy) + tt.args.event.Data = data + } + tt.args.iam.appendChangeLabelPolicyEvent(tt.args.event) + if tt.result.DefaultLabelPolicy.PrimaryColor != tt.args.iam.DefaultLabelPolicy.PrimaryColor { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.DefaultLabelPolicy.PrimaryColor, tt.args.iam.DefaultLabelPolicy.PrimaryColor) + } + if tt.result.DefaultLabelPolicy.SecondaryColor != tt.args.iam.DefaultLabelPolicy.SecondaryColor { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.DefaultLabelPolicy.SecondaryColor, tt.args.iam.DefaultLabelPolicy.SecondaryColor) + } + }) + } +} diff --git a/internal/iam/repository/eventsourcing/model/types.go b/internal/iam/repository/eventsourcing/model/types.go index 71b1fbe0b4..93b153f6a7 100644 --- a/internal/iam/repository/eventsourcing/model/types.go +++ b/internal/iam/repository/eventsourcing/model/types.go @@ -30,6 +30,8 @@ const ( LoginPolicyIDPProviderAdded models.EventType = "iam.policy.login.idpprovider.added" LoginPolicyIDPProviderRemoved models.EventType = "iam.policy.login.idpprovider.removed" LoginPolicyIDPProviderCascadeRemoved models.EventType = "iam.policy.login.idpprovider.cascade.removed" + LabelPolicyAdded models.EventType = "iam.policy.label.added" + LabelPolicyChanged models.EventType = "iam.policy.label.changed" PasswordComplexityPolicyAdded models.EventType = "iam.policy.password.complexity.added" PasswordComplexityPolicyChanged models.EventType = "iam.policy.password.complexity.changed" diff --git a/internal/iam/repository/view/label_policy_view.go b/internal/iam/repository/view/label_policy_view.go new file mode 100644 index 0000000000..e77f3b1dc9 --- /dev/null +++ b/internal/iam/repository/view/label_policy_view.go @@ -0,0 +1,32 @@ +package view + +import ( + caos_errs "github.com/caos/zitadel/internal/errors" + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/caos/zitadel/internal/iam/repository/view/model" + global_model "github.com/caos/zitadel/internal/model" + "github.com/caos/zitadel/internal/view/repository" + "github.com/jinzhu/gorm" +) + +func GetLabelPolicyByAggregateID(db *gorm.DB, table, aggregateID string) (*model.LabelPolicyView, error) { + policy := new(model.LabelPolicyView) + userIDQuery := &model.LabelPolicySearchQuery{Key: iam_model.LabelPolicySearchKeyAggregateID, Value: aggregateID, Method: global_model.SearchMethodEquals} + query := repository.PrepareGetByQuery(table, userIDQuery) + err := query(db, policy) + if caos_errs.IsNotFound(err) { + return nil, caos_errs.ThrowNotFound(nil, "VIEW-68G11", "Errors.IAM.LabelPolicy.NotExisting") + } + return policy, err +} + +func PutLabelPolicy(db *gorm.DB, table string, policy *model.LabelPolicyView) error { + save := repository.PrepareSave(table) + return save(db, policy) +} + +func DeleteLabelPolicy(db *gorm.DB, table, aggregateID string) error { + delete := repository.PrepareDeleteByKey(table, model.LabelPolicySearchKey(iam_model.LabelPolicySearchKeyAggregateID), aggregateID) + + return delete(db) +} diff --git a/internal/iam/repository/view/model/label_policy.go b/internal/iam/repository/view/model/label_policy.go new file mode 100644 index 0000000000..0f9e4ad70f --- /dev/null +++ b/internal/iam/repository/view/model/label_policy.go @@ -0,0 +1,82 @@ +package model + +import ( + "encoding/json" + "time" + + org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" + + es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + + "github.com/caos/logging" + caos_errs "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/iam/model" +) + +const ( + LabelPolicyKeyAggregateID = "aggregate_id" +) + +type LabelPolicyView struct { + AggregateID string `json:"-" gorm:"column:aggregate_id;primary_key"` + CreationDate time.Time `json:"-" gorm:"column:creation_date"` + ChangeDate time.Time `json:"-" gorm:"column:change_date"` + State int32 `json:"-" gorm:"column:label_policy_state"` + + PrimaryColor string `json:"primaryColor" gorm:"column:primary_color"` + SecondaryColor string `json:"secondaryColor" gorm:"column:secondary_color"` + Default bool `json:"-" gorm:"-"` + + Sequence uint64 `json:"-" gorm:"column:sequence"` +} + +func LabelPolicyViewFromModel(policy *model.LabelPolicyView) *LabelPolicyView { + return &LabelPolicyView{ + AggregateID: policy.AggregateID, + Sequence: policy.Sequence, + CreationDate: policy.CreationDate, + ChangeDate: policy.ChangeDate, + PrimaryColor: policy.PrimaryColor, + SecondaryColor: policy.SecondaryColor, + Default: policy.Default, + } +} + +func LabelPolicyViewToModel(policy *LabelPolicyView) *model.LabelPolicyView { + return &model.LabelPolicyView{ + AggregateID: policy.AggregateID, + Sequence: policy.Sequence, + CreationDate: policy.CreationDate, + ChangeDate: policy.ChangeDate, + PrimaryColor: policy.PrimaryColor, + SecondaryColor: policy.SecondaryColor, + Default: policy.Default, + } +} + +func (i *LabelPolicyView) AppendEvent(event *models.Event) (err error) { + i.Sequence = event.Sequence + i.ChangeDate = event.CreationDate + switch event.Type { + case es_model.LabelPolicyAdded, org_es_model.LabelPolicyAdded: + i.setRootData(event) + i.CreationDate = event.CreationDate + err = i.SetData(event) + case es_model.LabelPolicyChanged, org_es_model.LabelPolicyChanged: + err = i.SetData(event) + } + return err +} + +func (r *LabelPolicyView) setRootData(event *models.Event) { + r.AggregateID = event.AggregateID +} + +func (r *LabelPolicyView) SetData(event *models.Event) error { + if err := json.Unmarshal(event.Data, r); err != nil { + logging.Log("MODEL-Flp9C").WithError(err).Error("could not unmarshal event data") + return caos_errs.ThrowInternal(err, "MODEL-Hs8uf", "Could not unmarshal data") + } + return nil +} diff --git a/internal/iam/repository/view/model/label_policy_query.go b/internal/iam/repository/view/model/label_policy_query.go new file mode 100644 index 0000000000..d12dcd2f78 --- /dev/null +++ b/internal/iam/repository/view/model/label_policy_query.go @@ -0,0 +1,59 @@ +package model + +import ( + iam_model "github.com/caos/zitadel/internal/iam/model" + global_model "github.com/caos/zitadel/internal/model" + "github.com/caos/zitadel/internal/view/repository" +) + +type LabelPolicySearchRequest iam_model.LabelPolicySearchRequest +type LabelPolicySearchQuery iam_model.LabelPolicySearchQuery +type LabelPolicySearchKey iam_model.LabelPolicySearchKey + +func (req LabelPolicySearchRequest) GetLimit() uint64 { + return req.Limit +} + +func (req LabelPolicySearchRequest) GetOffset() uint64 { + return req.Offset +} + +func (req LabelPolicySearchRequest) GetSortingColumn() repository.ColumnKey { + if req.SortingColumn == iam_model.LabelPolicySearchKeyUnspecified { + return nil + } + return LabelPolicySearchKey(req.SortingColumn) +} + +func (req LabelPolicySearchRequest) GetAsc() bool { + return req.Asc +} + +func (req LabelPolicySearchRequest) GetQueries() []repository.SearchQuery { + result := make([]repository.SearchQuery, len(req.Queries)) + for i, q := range req.Queries { + result[i] = LabelPolicySearchQuery{Key: q.Key, Value: q.Value, Method: q.Method} + } + return result +} + +func (req LabelPolicySearchQuery) GetKey() repository.ColumnKey { + return LabelPolicySearchKey(req.Key) +} + +func (req LabelPolicySearchQuery) GetMethod() global_model.SearchMethod { + return req.Method +} + +func (req LabelPolicySearchQuery) GetValue() interface{} { + return req.Value +} + +func (key LabelPolicySearchKey) ToColumnName() string { + switch iam_model.LabelPolicySearchKey(key) { + case iam_model.LabelPolicySearchKeyAggregateID: + return LabelPolicyKeyAggregateID + default: + return "" + } +} diff --git a/internal/management/repository/eventsourcing/eventstore/org.go b/internal/management/repository/eventsourcing/eventstore/org.go index f098ac780b..da580eed4d 100644 --- a/internal/management/repository/eventsourcing/eventstore/org.go +++ b/internal/management/repository/eventsourcing/eventstore/org.go @@ -2,25 +2,25 @@ package eventstore import ( "context" + "strings" + "github.com/caos/logging" + "github.com/caos/zitadel/internal/api/authz" "github.com/caos/zitadel/internal/config/systemdefaults" + "github.com/caos/zitadel/internal/errors" "github.com/caos/zitadel/internal/eventstore/models" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/eventstore/sdk" iam_model "github.com/caos/zitadel/internal/iam/model" iam_es_model "github.com/caos/zitadel/internal/iam/repository/view/model" iam_view_model "github.com/caos/zitadel/internal/iam/repository/view/model" - usr_model "github.com/caos/zitadel/internal/user/model" - "strings" - - "github.com/caos/zitadel/internal/api/authz" - "github.com/caos/zitadel/internal/errors" - es_models "github.com/caos/zitadel/internal/eventstore/models" - "github.com/caos/zitadel/internal/eventstore/sdk" mgmt_view "github.com/caos/zitadel/internal/management/repository/eventsourcing/view" global_model "github.com/caos/zitadel/internal/model" org_model "github.com/caos/zitadel/internal/org/model" org_es "github.com/caos/zitadel/internal/org/repository/eventsourcing" org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" "github.com/caos/zitadel/internal/org/repository/view/model" + usr_model "github.com/caos/zitadel/internal/user/model" usr_es "github.com/caos/zitadel/internal/user/repository/eventsourcing" ) @@ -302,6 +302,31 @@ func (repo *OrgRepository) SearchIDPConfigs(ctx context.Context, request *iam_mo return result, nil } +func (repo *OrgRepository) GetLabelPolicy(ctx context.Context) (*iam_model.LabelPolicyView, error) { + policy, err := repo.View.LabelPolicyByAggregateID(authz.GetCtxData(ctx).OrgID) + if errors.IsNotFound(err) { + policy, err = repo.View.LabelPolicyByAggregateID(repo.SystemDefaults.IamID) + if err != nil { + return nil, err + } + policy.Default = true + } + if err != nil { + return nil, err + } + return iam_es_model.LabelPolicyViewToModel(policy), err +} + +func (repo *OrgRepository) AddLabelPolicy(ctx context.Context, policy *iam_model.LabelPolicy) (*iam_model.LabelPolicy, error) { + policy.AggregateID = authz.GetCtxData(ctx).OrgID + return repo.OrgEventstore.AddLabelPolicy(ctx, policy) +} + +func (repo *OrgRepository) ChangeLabelPolicy(ctx context.Context, policy *iam_model.LabelPolicy) (*iam_model.LabelPolicy, error) { + policy.AggregateID = authz.GetCtxData(ctx).OrgID + return repo.OrgEventstore.ChangeLabelPolicy(ctx, policy) +} + func (repo *OrgRepository) GetLoginPolicy(ctx context.Context) (*iam_model.LoginPolicyView, error) { policy, err := repo.View.LoginPolicyByAggregateID(authz.GetCtxData(ctx).OrgID) if errors.IsNotFound(err) { diff --git a/internal/management/repository/eventsourcing/handler/handler.go b/internal/management/repository/eventsourcing/handler/handler.go index fecff808b7..531a9db468 100644 --- a/internal/management/repository/eventsourcing/handler/handler.go +++ b/internal/management/repository/eventsourcing/handler/handler.go @@ -61,6 +61,7 @@ func Register(configs Configs, bulkLimit, errorCount uint64, view *view.View, ev &MachineKeys{handler: handler{view, bulkLimit, configs.cycleDuration("MachineKeys"), errorCount}}, &IDPConfig{handler: handler{view, bulkLimit, configs.cycleDuration("IDPConfig"), errorCount}}, &LoginPolicy{handler: handler{view, bulkLimit, configs.cycleDuration("LoginPolicy"), errorCount}}, + &LabelPolicy{handler: handler{view, bulkLimit, configs.cycleDuration("LabelPolicy"), errorCount}}, &IDPProvider{handler: handler{view, bulkLimit, configs.cycleDuration("IDPProvider"), errorCount}, systemDefaults: defaults, iamEvents: repos.IamEvents, orgEvents: repos.OrgEvents}, &ExternalIDP{handler: handler{view, bulkLimit, configs.cycleDuration("ExternalIDP"), errorCount}, diff --git a/internal/management/repository/eventsourcing/handler/label_policy.go b/internal/management/repository/eventsourcing/handler/label_policy.go new file mode 100644 index 0000000000..8c3238159f --- /dev/null +++ b/internal/management/repository/eventsourcing/handler/label_policy.go @@ -0,0 +1,67 @@ +package handler + +import ( + "github.com/caos/logging" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + + "github.com/caos/zitadel/internal/eventstore/models" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/eventstore/spooler" + iam_model "github.com/caos/zitadel/internal/iam/repository/view/model" + "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" +) + +type LabelPolicy struct { + handler +} + +const ( + labelPolicyTable = "management.label_policies" +) + +func (m *LabelPolicy) ViewModel() string { + return labelPolicyTable +} + +func (m *LabelPolicy) EventQuery() (*models.SearchQuery, error) { + sequence, err := m.view.GetLatestLabelPolicySequence() + if err != nil { + return nil, err + } + return es_models.NewSearchQuery(). + AggregateTypeFilter(model.OrgAggregate, iam_es_model.IAMAggregate). + LatestSequenceFilter(sequence.CurrentSequence), nil +} + +func (m *LabelPolicy) Reduce(event *models.Event) (err error) { + switch event.AggregateType { + case model.OrgAggregate, iam_es_model.IAMAggregate: + err = m.processLabelPolicy(event) + } + return err +} + +func (m *LabelPolicy) processLabelPolicy(event *models.Event) (err error) { + policy := new(iam_model.LabelPolicyView) + switch event.Type { + case iam_es_model.LabelPolicyAdded, model.LabelPolicyAdded: + err = policy.AppendEvent(event) + case iam_es_model.LabelPolicyChanged, model.LabelPolicyChanged: + policy, err = m.view.LabelPolicyByAggregateID(event.AggregateID) + if err != nil { + return err + } + err = policy.AppendEvent(event) + default: + return m.view.ProcessedLabelPolicySequence(event.Sequence) + } + if err != nil { + return err + } + return m.view.PutLabelPolicy(policy, policy.Sequence) +} + +func (m *LabelPolicy) OnError(event *models.Event, err error) error { + logging.LogWithFields("SPOOL-4Djo9", "id", event.AggregateID).WithError(err).Warn("something went wrong in label policy handler") + return spooler.HandleError(event, err, m.view.GetLatestLabelPolicyFailedEvent, m.view.ProcessedLabelPolicyFailedEvent, m.view.ProcessedLabelPolicySequence, m.errorCountUntilSkip) +} diff --git a/internal/management/repository/eventsourcing/view/label_policies.go b/internal/management/repository/eventsourcing/view/label_policies.go new file mode 100644 index 0000000000..182ca4f368 --- /dev/null +++ b/internal/management/repository/eventsourcing/view/label_policies.go @@ -0,0 +1,48 @@ +package view + +import ( + "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/iam/repository/view" + "github.com/caos/zitadel/internal/iam/repository/view/model" + global_view "github.com/caos/zitadel/internal/view/repository" +) + +const ( + labelPolicyTable = "management.label_policies" +) + +func (v *View) LabelPolicyByAggregateID(aggregateID string) (*model.LabelPolicyView, error) { + return view.GetLabelPolicyByAggregateID(v.Db, labelPolicyTable, aggregateID) +} + +func (v *View) PutLabelPolicy(policy *model.LabelPolicyView, sequence uint64) error { + err := view.PutLabelPolicy(v.Db, labelPolicyTable, policy) + if err != nil { + return err + } + return v.ProcessedLabelPolicySequence(sequence) +} + +func (v *View) DeleteLabelPolicy(aggregateID string, eventSequence uint64) error { + err := view.DeleteLabelPolicy(v.Db, labelPolicyTable, aggregateID) + if err != nil && !errors.IsNotFound(err) { + return err + } + return v.ProcessedLabelPolicySequence(eventSequence) +} + +func (v *View) GetLatestLabelPolicySequence() (*global_view.CurrentSequence, error) { + return v.latestSequence(labelPolicyTable) +} + +func (v *View) ProcessedLabelPolicySequence(eventSequence uint64) error { + return v.saveCurrentSequence(labelPolicyTable, eventSequence) +} + +func (v *View) GetLatestLabelPolicyFailedEvent(sequence uint64) (*global_view.FailedEvent, error) { + return v.latestFailedEvent(labelPolicyTable, sequence) +} + +func (v *View) ProcessedLabelPolicyFailedEvent(failedEvent *global_view.FailedEvent) error { + return v.saveFailedEvent(failedEvent) +} diff --git a/internal/notification/repository/eventsourcing/handler/notification.go b/internal/notification/repository/eventsourcing/handler/notification.go index 9991e72773..99e79effa4 100644 --- a/internal/notification/repository/eventsourcing/handler/notification.go +++ b/internal/notification/repository/eventsourcing/handler/notification.go @@ -10,11 +10,14 @@ import ( "github.com/caos/zitadel/internal/api/authz" sd "github.com/caos/zitadel/internal/config/systemdefaults" "github.com/caos/zitadel/internal/crypto" + "github.com/caos/zitadel/internal/errors" caos_errs "github.com/caos/zitadel/internal/errors" "github.com/caos/zitadel/internal/eventstore" "github.com/caos/zitadel/internal/eventstore/models" "github.com/caos/zitadel/internal/eventstore/spooler" "github.com/caos/zitadel/internal/i18n" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/view/model" "github.com/caos/zitadel/internal/notification/types" "github.com/caos/zitadel/internal/user/repository/eventsourcing" usr_event "github.com/caos/zitadel/internal/user/repository/eventsourcing" @@ -32,8 +35,10 @@ type Notification struct { } const ( - notificationTable = "notification.notifications" - NotifyUserID = "NOTIFICATION" + notificationTable = "notification.notifications" + NotifyUserID = "NOTIFICATION" + labelPolicyTableOrg = "management.label_policies" + labelPolicyTableDef = "adminapi.label_policies" ) func (n *Notification) ViewModel() string { @@ -78,13 +83,19 @@ func (n *Notification) handleInitUserCode(event *models.Event) (err error) { if err != nil || alreadyHandled { return err } + + colors, err := n.getLabelPolicy(context.Background()) + if err != nil { + return err + } + initCode := new(es_model.InitUserCode) initCode.SetData(event) user, err := n.view.NotifyUserByID(event.AggregateID) if err != nil { return err } - err = types.SendUserInitCode(n.statikDir, n.i18n, user, initCode, n.systemDefaults, n.AesCrypto) + err = types.SendUserInitCode(n.statikDir, n.i18n, user, initCode, n.systemDefaults, n.AesCrypto, colors) if err != nil { return err } @@ -96,13 +107,19 @@ func (n *Notification) handlePasswordCode(event *models.Event) (err error) { if err != nil || alreadyHandled { return err } + + colors, err := n.getLabelPolicy(context.Background()) + if err != nil { + return err + } + pwCode := new(es_model.PasswordCode) pwCode.SetData(event) user, err := n.view.NotifyUserByID(event.AggregateID) if err != nil { return err } - err = types.SendPasswordCode(n.statikDir, n.i18n, user, pwCode, n.systemDefaults, n.AesCrypto) + err = types.SendPasswordCode(n.statikDir, n.i18n, user, pwCode, n.systemDefaults, n.AesCrypto, colors) if err != nil { return err } @@ -114,13 +131,19 @@ func (n *Notification) handleEmailVerificationCode(event *models.Event) (err err if err != nil || alreadyHandled { return nil } + + colors, err := n.getLabelPolicy(context.Background()) + if err != nil { + return err + } + emailCode := new(es_model.EmailCode) emailCode.SetData(event) user, err := n.view.NotifyUserByID(event.AggregateID) if err != nil { return err } - err = types.SendEmailVerificationCode(n.statikDir, n.i18n, user, emailCode, n.systemDefaults, n.AesCrypto) + err = types.SendEmailVerificationCode(n.statikDir, n.i18n, user, emailCode, n.systemDefaults, n.AesCrypto, colors) if err != nil { return err } @@ -196,3 +219,21 @@ func (n *Notification) OnError(event *models.Event, err error) error { func getSetNotifyContextData(orgID string) context.Context { return authz.SetCtxData(context.Background(), authz.CtxData{UserID: NotifyUserID, OrgID: orgID}) } + +// Read organization specific colors +func (n *Notification) getLabelPolicy(ctx context.Context) (*iam_model.LabelPolicyView, error) { + // read from Org + policy, err := n.view.LabelPolicyByAggregateID(authz.GetCtxData(ctx).OrgID, labelPolicyTableOrg) + if errors.IsNotFound(err) { + // read from default + policy, err = n.view.LabelPolicyByAggregateID(n.systemDefaults.IamID, labelPolicyTableDef) + if err != nil { + return nil, err + } + policy.Default = true + } + if err != nil { + return nil, err + } + return iam_es_model.LabelPolicyViewToModel(policy), err +} diff --git a/internal/notification/repository/eventsourcing/view/label_policies.go b/internal/notification/repository/eventsourcing/view/label_policies.go new file mode 100644 index 0000000000..a330d4ac84 --- /dev/null +++ b/internal/notification/repository/eventsourcing/view/label_policies.go @@ -0,0 +1,10 @@ +package view + +import ( + "github.com/caos/zitadel/internal/iam/repository/view" + "github.com/caos/zitadel/internal/iam/repository/view/model" +) + +func (v *View) LabelPolicyByAggregateID(aggregateID string, labelPolicyTableVar string) (*model.LabelPolicyView, error) { + return view.GetLabelPolicyByAggregateID(v.Db, labelPolicyTableVar, aggregateID) +} diff --git a/internal/notification/static/i18n/de.yaml b/internal/notification/static/i18n/de.yaml index 5435841b70..001c572dfb 100644 --- a/internal/notification/static/i18n/de.yaml +++ b/internal/notification/static/i18n/de.yaml @@ -3,28 +3,28 @@ InitCode: PreHeader: User initialisieren Subject: User initialisieren Greeting: Hallo {{.FirstName}} {{.LastName}}, - Text: Dieser Benutzer wurde soeben im Zitadel erstellt. Mit dem Benutzernamen {{.PreferredLoginName}} kannst du dich anmelden. Nutze den untenstehenden Button, um die Initialisierung abzuschliesen. (Code {{.Code}}) Falls du dieses Mail nicht angefordert hast, kannst du es einfach ignorieren. + Text: Dieser Benutzer wurde soeben im Zitadel erstellt. Mit dem Benutzernamen <br><strong>{{.PreferredLoginName}}</strong><br> kannst du dich anmelden. Nutze den untenstehenden Button, um die Initialisierung abzuschliessen <br>(Code <strong>{{.Code}}</strong>).<br> Falls du dieses Mail nicht angefordert hast, kannst du es einfach ignorieren. ButtonText: Initialisierung abschliessen PasswordReset: Title: Zitadel - Passwort zurücksetzen PreHeader: Passwort zurücksetzen Subject: Passwort zurücksetzen Greeting: Hallo {{.FirstName}} {{.LastName}}, - Text: Wir haben eine Anfrage für das Zurücksetzen deines Passwortes bekommen. Du kannst den untenstehenden Button verwenden, um dein Passwort zurückzusetzen. (Code {{.Code}}) Falls du dieses Mail nicht angefordert hast, kannst du es ignorieren. + Text: Wir haben eine Anfrage für das Zurücksetzen deines Passwortes bekommen. Du kannst den untenstehenden Button verwenden, um dein Passwort zurückzusetzen <br>(Code <strong>{{.Code}}</strong>).<br> Falls du dieses Mail nicht angefordert hast, kannst du es ignorieren. ButtonText: Passwort zurücksetzen VerifyEmail: Title: Zitadel - Email verifizieren PreHeader: Email verifizieren Subject: Email verifizieren Greeting: Hallo {{.FirstName}} {{.LastName}}, - Text: Eine neue E-Mail Adresse wurde hinzugefügt. Bitte verwende den untenstehenden Button um diese zu verifizieren. (Code {{.Code}}) Falls du deine E-Mail Adresse nicht selber hinzugefügt hast, kannst du dieses E-Mail ignorieren. + Text: Eine neue E-Mail Adresse wurde hinzugefügt. Bitte verwende den untenstehenden Button um diese zu verifizieren <br>(Code <strong>{{.Code}}</strong>).<br> Falls du deine E-Mail Adresse nicht selber hinzugefügt hast, kannst du dieses E-Mail ignorieren. ButtonText: Email verifizieren VerifyPhone: Title: Zitadel - Telefonnummer verifizieren PreHeader: Telefonnummer verifizieren Subject: Telefonnummer verifizieren Greeting: Hallo {{.FirstName}} {{.LastName}}, - Text: Eine Telefonnummer wurde hinzugefügt. Bitte verifiziere diese in dem du folgenden Code eingibst {{.Code}} + Text: Eine Telefonnummer wurde hinzugefügt. Bitte verifiziere diese in dem du folgenden Code eingibst<br>(Code <strong>{{.Code}}</strong>).<br> ButtonText: Telefon verifizieren DomainClaimed: Title: Zitadel - Domain wurde beansprucht diff --git a/internal/notification/static/templates/template 01 Tabelle black.mjml b/internal/notification/static/templates/template 01 Tabelle black.mjml new file mode 100644 index 0000000000..8d514752eb --- /dev/null +++ b/internal/notification/static/templates/template 01 Tabelle black.mjml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{.Greeting}} + {{.Text}} + {{.ButtonText}} + + CAOS AG | Teufener Strasse 19 | CH-9000 St. Gallen + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/internal/notification/static/templates/template 01 Tabelle.mjml b/internal/notification/static/templates/template 01 Tabelle.mjml new file mode 100644 index 0000000000..0fdb0466f1 --- /dev/null +++ b/internal/notification/static/templates/template 01 Tabelle.mjml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{.Greeting}} + {{.Text}} + {{.ButtonText}} + + CAOS AG | Teufener Strasse 19 | CH-9000 St. Gallen + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/internal/notification/static/templates/template 02 Absolut.mjml b/internal/notification/static/templates/template 02 Absolut.mjml new file mode 100644 index 0000000000..dc9646c1ae --- /dev/null +++ b/internal/notification/static/templates/template 02 Absolut.mjml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + {{.Greeting}} + {{.Text}} + {{.ButtonText}} + + CAOS AG | Teufener Strasse 19 | CH-9000 St. Gallen + + + + + + + \ No newline at end of file diff --git a/internal/notification/static/templates/template.html b/internal/notification/static/templates/template.html index 4ad75554d1..77319e45a0 100644 --- a/internal/notification/static/templates/template.html +++ b/internal/notification/static/templates/template.html @@ -1,508 +1,714 @@ - - - - - - {{.Title}} - + + + + + + + + + + + + - + + + + + + + + + +
+ + + + + + + +
+ + + + +
+
+ + + + + + +
+ + + + + + + + +
+ + + - - - - -
-

Zitadel

-
- - - - - - - - - - - - - - - - +
+ + + +
+ + + + + + + +
+ + +
+ + +
+ + + + + + + +
+ + + + + + + +
+ + + + + - + + +
+ + +  
+ +
+ +
+ +
+ + +
+ + +
+ +
+ + + + + +
+ + + + + + + + + +
+ + + + + +
+ + + + + + + +
+ + +
+ + +
+ + + + + + + +
+ + + + + + + +
+ + + + + + + +
+ + + +
+ +
+ +
+ +
+ + + +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
{{.Greeting}}
+ +
+ +
{{.Text}}
+ +
+ + + + + +
+ + {{.ButtonText}} + +
+ +
+ +
CAOS AG | Teufener Strasse 19 | CH-9000 St. Gallen
+ +
+ +
+ +
+ + + +
+ + + + + + + +
+ + + + + + + +
+ + + + + + + +
+ + + +
+ +
+ +
+ +
+ + +
+ + +
+ +
+ + + + + +
+ + + + + + + + + +
+ + + + + +
+ + + + + + + +
+ + +
+ + +
+ + + + + + + +
+ + + + + + + +
+ + + + + + + +
+ + + +
+ +
+ +
+ +
+ + +
+ + +
+ +
+ + + + + +
+ + +
+
+
+ + + + +
+ +
+ + + + \ No newline at end of file diff --git a/internal/notification/templates/templateData.go b/internal/notification/templates/templateData.go index a19aef9876..ee7b910709 100644 --- a/internal/notification/templates/templateData.go +++ b/internal/notification/templates/templateData.go @@ -1,17 +1,21 @@ package templates import ( + "html" + "github.com/caos/zitadel/internal/i18n" ) type TemplateData struct { - Title string - PreHeader string - Subject string - Greeting string - Text string - Href string - ButtonText string + Title string + PreHeader string + Subject string + Greeting string + Text string + Href string + ButtonText string + PrimaryColor string + SecondaryColor string } func (data *TemplateData) Translate(i18n *i18n.Translator, args map[string]interface{}, langs ...string) { @@ -19,7 +23,7 @@ func (data *TemplateData) Translate(i18n *i18n.Translator, args map[string]inter data.PreHeader = i18n.Localize(data.PreHeader, nil, langs...) data.Subject = i18n.Localize(data.Subject, nil, langs...) data.Greeting = i18n.Localize(data.Greeting, args, langs...) - data.Text = i18n.Localize(data.Text, args, langs...) + data.Text = html.UnescapeString(i18n.Localize(data.Text, args, langs...)) data.Href = i18n.Localize(data.Href, nil, langs...) data.ButtonText = i18n.Localize(data.ButtonText, nil, langs...) } diff --git a/internal/notification/types/email_verification_code.go b/internal/notification/types/email_verification_code.go index 9459f8cf61..77f5750e48 100644 --- a/internal/notification/types/email_verification_code.go +++ b/internal/notification/types/email_verification_code.go @@ -1,13 +1,15 @@ package types import ( + "net/http" + "github.com/caos/zitadel/internal/config/systemdefaults" "github.com/caos/zitadel/internal/crypto" "github.com/caos/zitadel/internal/i18n" + iam_model "github.com/caos/zitadel/internal/iam/model" "github.com/caos/zitadel/internal/notification/templates" es_model "github.com/caos/zitadel/internal/user/repository/eventsourcing/model" view_model "github.com/caos/zitadel/internal/user/repository/view/model" - "net/http" ) type EmailVerificationCodeData struct { @@ -15,7 +17,7 @@ type EmailVerificationCodeData struct { URL string } -func SendEmailVerificationCode(dir http.FileSystem, i18n *i18n.Translator, user *view_model.NotifyUser, code *es_model.EmailCode, systemDefaults systemdefaults.SystemDefaults, alg crypto.EncryptionAlgorithm) error { +func SendEmailVerificationCode(dir http.FileSystem, i18n *i18n.Translator, user *view_model.NotifyUser, code *es_model.EmailCode, systemDefaults systemdefaults.SystemDefaults, alg crypto.EncryptionAlgorithm, colors *iam_model.LabelPolicyView) error { codeString, err := crypto.DecryptString(code.Code, alg) if err != nil { return err @@ -32,6 +34,9 @@ func SendEmailVerificationCode(dir http.FileSystem, i18n *i18n.Translator, user systemDefaults.Notifications.TemplateData.VerifyEmail.Translate(i18n, args, user.PreferredLanguage) emailCodeData := &EmailVerificationCodeData{TemplateData: systemDefaults.Notifications.TemplateData.VerifyEmail, URL: url} + // Set the color in initCodeData + emailCodeData.PrimaryColor = colors.PrimaryColor + emailCodeData.SecondaryColor = colors.SecondaryColor template, err := templates.GetParsedTemplate(dir, emailCodeData) if err != nil { return err diff --git a/internal/notification/types/init_code.go b/internal/notification/types/init_code.go index 704aac23e4..86da8d3ccd 100644 --- a/internal/notification/types/init_code.go +++ b/internal/notification/types/init_code.go @@ -1,13 +1,15 @@ package types import ( + "net/http" + "github.com/caos/zitadel/internal/config/systemdefaults" "github.com/caos/zitadel/internal/crypto" "github.com/caos/zitadel/internal/i18n" + iam_model "github.com/caos/zitadel/internal/iam/model" "github.com/caos/zitadel/internal/notification/templates" es_model "github.com/caos/zitadel/internal/user/repository/eventsourcing/model" view_model "github.com/caos/zitadel/internal/user/repository/view/model" - "net/http" ) type InitCodeEmailData struct { @@ -21,7 +23,7 @@ type UrlData struct { PasswordSet bool } -func SendUserInitCode(dir http.FileSystem, i18n *i18n.Translator, user *view_model.NotifyUser, code *es_model.InitUserCode, systemDefaults systemdefaults.SystemDefaults, alg crypto.EncryptionAlgorithm) error { +func SendUserInitCode(dir http.FileSystem, i18n *i18n.Translator, user *view_model.NotifyUser, code *es_model.InitUserCode, systemDefaults systemdefaults.SystemDefaults, alg crypto.EncryptionAlgorithm, colors *iam_model.LabelPolicyView) error { codeString, err := crypto.DecryptString(code.Code, alg) if err != nil { return err @@ -39,6 +41,9 @@ func SendUserInitCode(dir http.FileSystem, i18n *i18n.Translator, user *view_mod systemDefaults.Notifications.TemplateData.InitCode.Translate(i18n, args, user.PreferredLanguage) initCodeData := &InitCodeEmailData{TemplateData: systemDefaults.Notifications.TemplateData.InitCode, URL: url} + // Set the color in initCodeData + initCodeData.PrimaryColor = colors.PrimaryColor + initCodeData.SecondaryColor = colors.SecondaryColor template, err := templates.GetParsedTemplate(dir, initCodeData) if err != nil { return err diff --git a/internal/notification/types/password_code.go b/internal/notification/types/password_code.go index 4ca8a16b5d..41f6a21dc6 100644 --- a/internal/notification/types/password_code.go +++ b/internal/notification/types/password_code.go @@ -1,13 +1,15 @@ package types import ( + "net/http" + "github.com/caos/zitadel/internal/config/systemdefaults" "github.com/caos/zitadel/internal/crypto" "github.com/caos/zitadel/internal/i18n" + iam_model "github.com/caos/zitadel/internal/iam/model" "github.com/caos/zitadel/internal/notification/templates" es_model "github.com/caos/zitadel/internal/user/repository/eventsourcing/model" view_model "github.com/caos/zitadel/internal/user/repository/view/model" - "net/http" ) type PasswordCodeData struct { @@ -17,7 +19,7 @@ type PasswordCodeData struct { URL string } -func SendPasswordCode(dir http.FileSystem, i18n *i18n.Translator, user *view_model.NotifyUser, code *es_model.PasswordCode, systemDefaults systemdefaults.SystemDefaults, alg crypto.EncryptionAlgorithm) error { +func SendPasswordCode(dir http.FileSystem, i18n *i18n.Translator, user *view_model.NotifyUser, code *es_model.PasswordCode, systemDefaults systemdefaults.SystemDefaults, alg crypto.EncryptionAlgorithm, colors *iam_model.LabelPolicyView) error { codeString, err := crypto.DecryptString(code.Code, alg) if err != nil { return err @@ -34,6 +36,9 @@ func SendPasswordCode(dir http.FileSystem, i18n *i18n.Translator, user *view_mod systemDefaults.Notifications.TemplateData.PasswordReset.Translate(i18n, args, user.PreferredLanguage) passwordCodeData := &PasswordCodeData{TemplateData: systemDefaults.Notifications.TemplateData.PasswordReset, FirstName: user.FirstName, LastName: user.LastName, URL: url} + // Set the color in initCodeData + passwordCodeData.PrimaryColor = colors.PrimaryColor + passwordCodeData.SecondaryColor = colors.SecondaryColor template, err := templates.GetParsedTemplate(dir, passwordCodeData) if err != nil { return err diff --git a/internal/notification/types/user_email.go b/internal/notification/types/user_email.go index d6b3928e2e..974aabc60c 100644 --- a/internal/notification/types/user_email.go +++ b/internal/notification/types/user_email.go @@ -1,6 +1,8 @@ package types import ( + "html" + "github.com/caos/zitadel/internal/config/systemdefaults" caos_errs "github.com/caos/zitadel/internal/errors" "github.com/caos/zitadel/internal/notification/providers" @@ -14,6 +16,7 @@ func generateEmail(user *view_model.NotifyUser, subject, content string, config if err != nil { return err } + content = html.UnescapeString(content) message := &email.EmailMessage{ SenderEmail: config.Providers.Email.From, Recipients: []string{user.VerifiedEmail}, diff --git a/internal/org/model/org.go b/internal/org/model/org.go index de08a14c81..c5ec7829a3 100644 --- a/internal/org/model/org.go +++ b/internal/org/model/org.go @@ -1,10 +1,11 @@ package model import ( + "strings" + es_models "github.com/caos/zitadel/internal/eventstore/models" iam_model "github.com/caos/zitadel/internal/iam/model" "github.com/golang/protobuf/ptypes/timestamp" - "strings" ) type Org struct { @@ -17,6 +18,7 @@ type Org struct { Members []*OrgMember OrgIamPolicy *iam_model.OrgIAMPolicy LoginPolicy *iam_model.LoginPolicy + LabelPolicy *iam_model.LabelPolicy PasswordComplexityPolicy *iam_model.PasswordComplexityPolicy PasswordAgePolicy *iam_model.PasswordAgePolicy PasswordLockoutPolicy *iam_model.PasswordLockoutPolicy diff --git a/internal/org/repository/eventsourcing/eventstore.go b/internal/org/repository/eventsourcing/eventstore.go index 494b5595f0..384d9e1fc3 100644 --- a/internal/org/repository/eventsourcing/eventstore.go +++ b/internal/org/repository/eventsourcing/eventstore.go @@ -705,6 +705,46 @@ func (es *OrgEventstore) ChangeIDPOIDCConfig(ctx context.Context, config *iam_mo return nil, errors.ThrowInternal(nil, "EVENT-Sldk8", "Errors.Internal") } +func (es *OrgEventstore) AddLabelPolicy(ctx context.Context, policy *iam_model.LabelPolicy) (*iam_model.LabelPolicy, error) { + if policy == nil || !policy.IsValid() { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-37rSC", "Errors.Org.LabelPolicyInvalid") + } + org, err := es.OrgByID(ctx, org_model.NewOrg(policy.AggregateID)) + if err != nil { + return nil, err + } + + repoOrg := model.OrgFromModel(org) + repoLabelPolicy := iam_es_model.LabelPolicyFromModel(policy) + + addAggregate := LabelPolicyAddedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoLabelPolicy) + err = es_sdk.Push(ctx, es.PushAggregates, repoOrg.AppendEvents, addAggregate) + if err != nil { + return nil, err + } + return iam_es_model.LabelPolicyToModel(repoOrg.LabelPolicy), nil +} + +func (es *OrgEventstore) ChangeLabelPolicy(ctx context.Context, policy *iam_model.LabelPolicy) (*iam_model.LabelPolicy, error) { + if policy == nil || !policy.IsValid() { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-0NBIw", "Errors.Org.LabelPolicyInvalid") + } + org, err := es.OrgByID(ctx, org_model.NewOrg(policy.AggregateID)) + if err != nil { + return nil, err + } + + repoOrg := model.OrgFromModel(org) + repoLabelPolicy := iam_es_model.LabelPolicyFromModel(policy) + + addAggregate := LabelPolicyChangedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoLabelPolicy) + err = es_sdk.Push(ctx, es.PushAggregates, repoOrg.AppendEvents, addAggregate) + if err != nil { + return nil, err + } + return iam_es_model.LabelPolicyToModel(repoOrg.LabelPolicy), nil +} + func (es *OrgEventstore) AddLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) { if policy == nil || !policy.IsValid() { return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Sjkl9", "Errors.Org.LoginPolicy.Invalid") diff --git a/internal/org/repository/eventsourcing/eventstore_mock_test.go b/internal/org/repository/eventsourcing/eventstore_mock_test.go index f5bd7360ff..5592ede9ca 100644 --- a/internal/org/repository/eventsourcing/eventstore_mock_test.go +++ b/internal/org/repository/eventsourcing/eventstore_mock_test.go @@ -2,6 +2,7 @@ package eventsourcing import ( "encoding/json" + "github.com/caos/zitadel/internal/crypto" iam_model "github.com/caos/zitadel/internal/iam/model" iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" @@ -157,3 +158,17 @@ func GetMockChangesOrgWithPasswordAgePolicy(ctrl *gomock.Controller) *OrgEventst mockEs.EXPECT().PushAggregates(gomock.Any(), gomock.Any()).Return(nil) return GetMockedEventstore(ctrl, mockEs) } + +func GetMockChangesOrgWithLabelPolicy(ctrl *gomock.Controller) *OrgEventstore { + orgData, _ := json.Marshal(model.Org{Name: "MusterOrg"}) + labelPolicy, _ := json.Marshal(iam_es_model.LabelPolicy{PrimaryColor: "000001", SecondaryColor: "FFFFF1"}) + events := []*es_models.Event{ + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.OrgAdded, Data: orgData}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.LabelPolicyAdded, Data: labelPolicy}, + } + mockEs := mock.NewMockEventstore(ctrl) + mockEs.EXPECT().FilterEvents(gomock.Any(), gomock.Any()).Return(events, nil) + mockEs.EXPECT().AggregateCreator().Return(es_models.NewAggregateCreator("TEST")) + mockEs.EXPECT().PushAggregates(gomock.Any(), gomock.Any()).Return(nil) + return GetMockedEventstore(ctrl, mockEs) +} diff --git a/internal/org/repository/eventsourcing/eventstore_test.go b/internal/org/repository/eventsourcing/eventstore_test.go index dbfceee8e0..78eb10acb4 100644 --- a/internal/org/repository/eventsourcing/eventstore_test.go +++ b/internal/org/repository/eventsourcing/eventstore_test.go @@ -3,10 +3,11 @@ package eventsourcing import ( "context" "encoding/json" - iam_model "github.com/caos/zitadel/internal/iam/model" "testing" "time" + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/golang/mock/gomock" "github.com/stretchr/testify/assert" @@ -2731,6 +2732,170 @@ func TestRemoveIdpProviderFromLoginPolicy(t *testing.T) { } } +func TestAddLabelPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + policy *iam_model.LabelPolicy + } + type res struct { + result *iam_model.LabelPolicy + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add label policy, ok", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + PrimaryColor: "000000", + }, + }, + res: res{ + result: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + PrimaryColor: "000000", + }, + }, + }, + { + name: "invalid policy", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing org not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.AddLabelPolicy(tt.args.ctx, tt.args.policy) + if (tt.res.wantErr && !tt.res.errFunc(err)) || (err != nil && !tt.res.wantErr) { + t.Errorf("got wrong err: %v ", err) + return + } + if tt.res.wantErr && tt.res.errFunc(err) { + return + } + if result.PrimaryColor != tt.res.result.PrimaryColor { + t.Errorf("got wrong result PrimaryColor: expected: %v, actual: %v ", tt.res.result.PrimaryColor, result.PrimaryColor) + } + }) + } +} + +func TestChangeLabelPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + policy *iam_model.LabelPolicy + } + type res struct { + result *iam_model.LabelPolicy + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add label policy, ok", + args: args{ + es: GetMockChangesOrgWithLabelPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + PrimaryColor: "000000", + SecondaryColor: "FFFFFF", + }, + }, + res: res{ + result: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + PrimaryColor: "000000", + SecondaryColor: "FFFFFF", + }, + }, + }, + { + name: "invalid policy", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LabelPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.ChangeLabelPolicy(tt.args.ctx, tt.args.policy) + if (tt.res.wantErr && !tt.res.errFunc(err)) || (err != nil && !tt.res.wantErr) { + t.Errorf("got wrong err: %v ", err) + return + } + if tt.res.wantErr && tt.res.errFunc(err) { + return + } + if result.PrimaryColor != tt.res.result.PrimaryColor { + t.Errorf("got wrong result PrimaryColor: expected: %v, actual: %v ", tt.res.result.PrimaryColor, result.PrimaryColor) + } + if result.SecondaryColor != tt.res.result.SecondaryColor { + t.Errorf("got wrong result SecondaryColor: expected: %v, actual: %v ", tt.res.result.SecondaryColor, result.SecondaryColor) + } + }) + } +} func TestAddPasswordComplexityPolicy(t *testing.T) { ctrl := gomock.NewController(t) type args struct { diff --git a/internal/org/repository/eventsourcing/label_policy.go b/internal/org/repository/eventsourcing/label_policy.go new file mode 100644 index 0000000000..051f5e025e --- /dev/null +++ b/internal/org/repository/eventsourcing/label_policy.go @@ -0,0 +1,77 @@ +package eventsourcing + +import ( + "context" + + "github.com/caos/zitadel/internal/errors" + es_models "github.com/caos/zitadel/internal/eventstore/models" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" +) + +func LabelPolicyAddedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, policy *iam_es_model.LabelPolicy) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if policy == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-TUWod", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + validationQuery := es_models.NewSearchQuery(). + AggregateTypeFilter(model.OrgAggregate). + AggregateIDFilter(existing.AggregateID) + + validation := checkExistingLabelPolicyValidation() + agg.SetPrecondition(validationQuery, validation) + return agg.AppendEvent(model.LabelPolicyAdded, policy) + } +} + +func LabelPolicyChangedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, policy *iam_es_model.LabelPolicy) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if policy == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-unRI2", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + changes := existing.LabelPolicy.Changes(policy) + if len(changes) == 0 { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Tz130", "Errors.NoChangesFound") + } + return agg.AppendEvent(model.LabelPolicyChanged, changes) + } +} + +func LabelPolicyRemovedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if existing == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-v7E9b", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + return agg.AppendEvent(model.LabelPolicyRemoved, nil) + } +} + +func checkExistingLabelPolicyValidation() func(...*es_models.Event) error { + return func(events ...*es_models.Event) error { + existing := false + for _, event := range events { + switch event.Type { + case model.LabelPolicyAdded: + existing = true + case model.LabelPolicyRemoved: + existing = false + } + } + if existing { + return errors.ThrowPreconditionFailed(nil, "EVENT-g9mCI", "Errors.Org.LabelPolicy.AlreadyExists") + } + return nil + } +} diff --git a/internal/org/repository/eventsourcing/label_policy_test.go b/internal/org/repository/eventsourcing/label_policy_test.go new file mode 100644 index 0000000000..ccd0c2a6ec --- /dev/null +++ b/internal/org/repository/eventsourcing/label_policy_test.go @@ -0,0 +1,186 @@ +package eventsourcing + +import ( + "context" + "testing" + + "github.com/caos/zitadel/internal/api/authz" + caos_errs "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/eventstore/models" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" +) + +func TestLabelPolicyAddedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + new *iam_es_model.LabelPolicy + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add label polciy", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + }, + new: &iam_es_model.LabelPolicy{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + PrimaryColor: "000000", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.LabelPolicyAdded}, + }, + }, + { + name: "existing org nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "label policy config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := LabelPolicyAddedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + if !tt.res.wantErr && len(agg.Events) != tt.res.eventLen { + t.Errorf("got wrong event len: expected: %v, actual: %v ", tt.res.eventLen, len(agg.Events)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestLabelPolicyChangedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + new *iam_es_model.LabelPolicy + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "change label policy", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + LabelPolicy: &iam_es_model.LabelPolicy{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + }, + }, + new: &iam_es_model.LabelPolicy{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + PrimaryColor: "000000", + SecondaryColor: "FFFFFF", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.LabelPolicyChanged}, + }, + }, + { + name: "existing org nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "label policy config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := LabelPolicyChangedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + if !tt.res.wantErr && len(agg.Events) != tt.res.eventLen { + t.Errorf("got wrong event len: expected: %v, actual: %v ", tt.res.eventLen, len(agg.Events)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} diff --git a/internal/org/repository/eventsourcing/model/label_policy.go b/internal/org/repository/eventsourcing/model/label_policy.go new file mode 100644 index 0000000000..13b281dd0f --- /dev/null +++ b/internal/org/repository/eventsourcing/model/label_policy.go @@ -0,0 +1,24 @@ +package model + +import ( + es_models "github.com/caos/zitadel/internal/eventstore/models" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" +) + +func (o *Org) appendAddLabelPolicyEvent(event *es_models.Event) error { + o.LabelPolicy = new(iam_es_model.LabelPolicy) + err := o.LabelPolicy.SetDataLabel(event) + if err != nil { + return err + } + o.LabelPolicy.ObjectRoot.CreationDate = event.CreationDate + return nil +} + +func (o *Org) appendChangeLabelPolicyEvent(event *es_models.Event) error { + return o.LabelPolicy.SetDataLabel(event) +} + +func (o *Org) appendRemoveLabelPolicyEvent(event *es_models.Event) { + o.LabelPolicy = nil +} diff --git a/internal/org/repository/eventsourcing/model/label_policy_test.go b/internal/org/repository/eventsourcing/model/label_policy_test.go new file mode 100644 index 0000000000..819d76996a --- /dev/null +++ b/internal/org/repository/eventsourcing/model/label_policy_test.go @@ -0,0 +1,91 @@ +package model + +import ( + "encoding/json" + "testing" + + es_models "github.com/caos/zitadel/internal/eventstore/models" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" +) + +func TestAppendAddLabelPolicyEvent(t *testing.T) { + type args struct { + org *Org + policy *iam_es_model.LabelPolicy + event *es_models.Event + } + tests := []struct { + name string + args args + result *Org + }{ + { + name: "append add label policy event", + args: args{ + org: &Org{}, + policy: &iam_es_model.LabelPolicy{PrimaryColor: "000000", SecondaryColor: "FFFFFF"}, + event: &es_models.Event{}, + }, + result: &Org{LabelPolicy: &iam_es_model.LabelPolicy{PrimaryColor: "000000", SecondaryColor: "FFFFFF"}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.policy != nil { + data, _ := json.Marshal(tt.args.policy) + tt.args.event.Data = data + } + tt.args.org.appendAddLabelPolicyEvent(tt.args.event) + if tt.result.LabelPolicy.PrimaryColor != tt.args.org.LabelPolicy.PrimaryColor { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.LabelPolicy.PrimaryColor, tt.args.org.LabelPolicy.PrimaryColor) + } + if tt.result.LabelPolicy.SecondaryColor != tt.args.org.LabelPolicy.SecondaryColor { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.LabelPolicy.SecondaryColor, tt.args.org.LabelPolicy.SecondaryColor) + } + }) + } +} + +func TestAppendChangeLabelPolicyEvent(t *testing.T) { + type args struct { + org *Org + policy *iam_es_model.LabelPolicy + event *es_models.Event + } + tests := []struct { + name string + args args + result *Org + }{ + { + name: "append change label policy event", + args: args{ + org: &Org{LabelPolicy: &iam_es_model.LabelPolicy{ + SecondaryColor: "FFFFF0", + PrimaryColor: "000001", + }}, + policy: &iam_es_model.LabelPolicy{PrimaryColor: "000000", SecondaryColor: "FFFFFF"}, + event: &es_models.Event{}, + }, + result: &Org{LabelPolicy: &iam_es_model.LabelPolicy{ + SecondaryColor: "FFFFFF", + PrimaryColor: "000000", + }}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.policy != nil { + data, _ := json.Marshal(tt.args.policy) + tt.args.event.Data = data + } + tt.args.org.appendChangeLabelPolicyEvent(tt.args.event) + if tt.result.LabelPolicy.PrimaryColor != tt.args.org.LabelPolicy.PrimaryColor { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.LabelPolicy.PrimaryColor, tt.args.org.LabelPolicy.PrimaryColor) + } + if tt.result.LabelPolicy.SecondaryColor != tt.args.org.LabelPolicy.SecondaryColor { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.LabelPolicy.SecondaryColor, tt.args.org.LabelPolicy.SecondaryColor) + } + }) + } +} diff --git a/internal/org/repository/eventsourcing/model/org.go b/internal/org/repository/eventsourcing/model/org.go index f0e3c83ce4..b5402385d2 100644 --- a/internal/org/repository/eventsourcing/model/org.go +++ b/internal/org/repository/eventsourcing/model/org.go @@ -2,6 +2,7 @@ package model import ( "encoding/json" + "github.com/caos/zitadel/internal/iam/model" iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" @@ -23,6 +24,7 @@ type Org struct { Domains []*OrgDomain `json:"-"` Members []*OrgMember `json:"-"` OrgIAMPolicy *iam_es_model.OrgIAMPolicy `json:"-"` + LabelPolicy *iam_es_model.LabelPolicy `json:"-"` IDPs []*iam_es_model.IDPConfig `json:"-"` LoginPolicy *iam_es_model.LoginPolicy `json:"-"` PasswordComplexityPolicy *iam_es_model.PasswordComplexityPolicy `json:"-"` @@ -48,6 +50,9 @@ func OrgFromModel(org *org_model.Org) *Org { if org.LoginPolicy != nil { converted.LoginPolicy = iam_es_model.LoginPolicyFromModel(org.LoginPolicy) } + if org.LabelPolicy != nil { + converted.LabelPolicy = iam_es_model.LabelPolicyFromModel(org.LabelPolicy) + } if org.PasswordComplexityPolicy != nil { converted.PasswordComplexityPolicy = iam_es_model.PasswordComplexityPolicyFromModel(org.PasswordComplexityPolicy) } @@ -75,6 +80,9 @@ func OrgToModel(org *Org) *org_model.Org { if org.LoginPolicy != nil { converted.LoginPolicy = iam_es_model.LoginPolicyToModel(org.LoginPolicy) } + if org.LabelPolicy != nil { + converted.LabelPolicy = iam_es_model.LabelPolicyToModel(org.LabelPolicy) + } if org.PasswordComplexityPolicy != nil { converted.PasswordComplexityPolicy = iam_es_model.PasswordComplexityPolicyToModel(org.PasswordComplexityPolicy) } @@ -175,6 +183,12 @@ func (o *Org) AppendEvent(event *es_models.Event) (err error) { err = o.appendAddOIDCIDPConfigEvent(event) case OIDCIDPConfigChanged: err = o.appendChangeOIDCIDPConfigEvent(event) + case LabelPolicyAdded: + err = o.appendAddLabelPolicyEvent(event) + case LabelPolicyChanged: + err = o.appendChangeLabelPolicyEvent(event) + case LabelPolicyRemoved: + o.appendRemoveLabelPolicyEvent(event) case LoginPolicyAdded: err = o.appendAddLoginPolicyEvent(event) case LoginPolicyChanged: diff --git a/internal/org/repository/eventsourcing/model/types.go b/internal/org/repository/eventsourcing/model/types.go index 18234b9d52..eb3c5d17b0 100644 --- a/internal/org/repository/eventsourcing/model/types.go +++ b/internal/org/repository/eventsourcing/model/types.go @@ -51,6 +51,9 @@ const ( LoginPolicyIDPProviderAdded models.EventType = "org.policy.login.idpprovider.added" LoginPolicyIDPProviderRemoved models.EventType = "org.policy.login.idpprovider.removed" LoginPolicyIDPProviderCascadeRemoved models.EventType = "org.policy.login.idpprovider.cascade.removed" + LabelPolicyAdded models.EventType = "org.policy.label.added" + LabelPolicyChanged models.EventType = "org.policy.label.changed" + LabelPolicyRemoved models.EventType = "org.policy.label.removed" PasswordComplexityPolicyAdded models.EventType = "org.policy.password.complexity.added" PasswordComplexityPolicyChanged models.EventType = "org.policy.password.complexity.changed" diff --git a/internal/setup/config.go b/internal/setup/config.go index 1c60d336df..9c8f56056f 100644 --- a/internal/setup/config.go +++ b/internal/setup/config.go @@ -11,6 +11,7 @@ type IAMSetUp struct { Step3 *Step3 Step4 *Step4 Step5 *Step5 + Step6 *Step6 } func (setup *IAMSetUp) steps(currentDone iam_model.Step) ([]step, error) { @@ -23,6 +24,7 @@ func (setup *IAMSetUp) steps(currentDone iam_model.Step) ([]step, error) { setup.Step3, setup.Step4, setup.Step5, + setup.Step6, } { if step.step() <= currentDone { continue diff --git a/internal/setup/step6.go b/internal/setup/step6.go new file mode 100644 index 0000000000..57d46ee31b --- /dev/null +++ b/internal/setup/step6.go @@ -0,0 +1,58 @@ +package setup + +import ( + "context" + + "github.com/caos/logging" + "github.com/caos/zitadel/internal/eventstore/models" + es_sdk "github.com/caos/zitadel/internal/eventstore/sdk" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" +) + +type Step6 struct { + DefaultLabelPolicy iam_model.LabelPolicy + + setup *Setup +} + +func (s *Step6) isNil() bool { + return s == nil +} + +func (step *Step6) step() iam_model.Step { + return iam_model.Step6 +} + +func (step *Step6) init(setup *Setup) { + step.setup = setup +} + +func (step *Step6) execute(ctx context.Context) (*iam_model.IAM, error) { + iam, agg, err := step.labelPolicy(ctx, &step.DefaultLabelPolicy) + if err != nil { + logging.Log("SETUP-ZTuS1").WithField("step", step.step()).WithError(err).Error("unable to finish setup (Label policy)") + return nil, err + } + iam, agg, push, err := step.setup.IamEvents.PrepareSetupDone(ctx, iam, agg, step.step()) + if err != nil { + logging.Log("SETUP-OkF8o").WithField("step", step.step()).WithError(err).Error("unable to finish setup (prepare setup done)") + return nil, err + } + err = es_sdk.PushAggregates(ctx, push, iam.AppendEvents, agg) + if err != nil { + logging.Log("SETUP-YbQ6T").WithField("step", step.step()).WithError(err).Error("unable to finish setup") + return nil, err + } + return iam_es_model.IAMToModel(iam), nil +} + +func (step *Step6) labelPolicy(ctx context.Context, policy *iam_model.LabelPolicy) (*iam_es_model.IAM, *models.Aggregate, error) { + logging.Log("SETUP-geMuZ").Info("setting up labelpolicy") + policy.AggregateID = step.setup.iamID + iam, aggregate, err := step.setup.IamEvents.PrepareAddLabelPolicy(ctx, policy) + if err != nil { + return nil, nil, err + } + return iam, aggregate, nil +} diff --git a/migrations/cockroach/V1.20__label_policies.sql b/migrations/cockroach/V1.20__label_policies.sql new file mode 100644 index 0000000000..3bbe42a04d --- /dev/null +++ b/migrations/cockroach/V1.20__label_policies.sql @@ -0,0 +1,31 @@ +CREATE TABLE adminapi.label_policies ( + aggregate_id TEXT, + + creation_date TIMESTAMPTZ, + change_date TIMESTAMPTZ, + label_policy_state SMALLINT, + sequence BIGINT, + + primary_color TEXT, + secondary_color TEXT, + + PRIMARY KEY (aggregate_id) +); + + +CREATE TABLE management.label_policies ( + aggregate_id TEXT, + + creation_date TIMESTAMPTZ, + change_date TIMESTAMPTZ, + label_policy_state SMALLINT, + sequence BIGINT, + + primary_color TEXT, + secondary_color TEXT, + + PRIMARY KEY (aggregate_id) +); + +GRANT SELECT ON TABLE adminapi.label_policies TO notification; +GRANT SELECT ON TABLE management.label_policies TO notification; \ No newline at end of file diff --git a/pkg/grpc/admin/admin.pb.authoptions.go b/pkg/grpc/admin/admin.pb.authoptions.go index 47d7236332..f8494f6081 100644 --- a/pkg/grpc/admin/admin.pb.authoptions.go +++ b/pkg/grpc/admin/admin.pb.authoptions.go @@ -149,6 +149,16 @@ var AdminService_AuthMethods = authz.MethodMapping{ CheckParam: "", }, + "/caos.zitadel.admin.api.v1.AdminService/GetDefaultLabelPolicy": authz.Option{ + Permission: "iam.policy.read", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/UpdateDefaultLabelPolicy": authz.Option{ + Permission: "iam.policy.write", + CheckParam: "", + }, + "/caos.zitadel.admin.api.v1.AdminService/GetDefaultLoginPolicy": authz.Option{ Permission: "iam.policy.read", CheckParam: "", diff --git a/pkg/grpc/admin/admin.pb.go b/pkg/grpc/admin/admin.pb.go index 89e36196e2..6a86f41b7a 100644 --- a/pkg/grpc/admin/admin.pb.go +++ b/pkg/grpc/admin/admin.pb.go @@ -4252,6 +4252,203 @@ func (x *IdpSearchQuery) GetValue() string { return "" } +type DefaultLabelPolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PrimaryColor string `protobuf:"bytes,1,opt,name=primary_color,json=primaryColor,proto3" json:"primary_color,omitempty"` + SecondaryColor string `protobuf:"bytes,2,opt,name=secondary_color,json=secondaryColor,proto3" json:"secondary_color,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` +} + +func (x *DefaultLabelPolicy) Reset() { + *x = DefaultLabelPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DefaultLabelPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DefaultLabelPolicy) ProtoMessage() {} + +func (x *DefaultLabelPolicy) ProtoReflect() protoreflect.Message { + mi := &file_admin_proto_msgTypes[47] + 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 DefaultLabelPolicy.ProtoReflect.Descriptor instead. +func (*DefaultLabelPolicy) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{47} +} + +func (x *DefaultLabelPolicy) GetPrimaryColor() string { + if x != nil { + return x.PrimaryColor + } + return "" +} + +func (x *DefaultLabelPolicy) GetSecondaryColor() string { + if x != nil { + return x.SecondaryColor + } + return "" +} + +func (x *DefaultLabelPolicy) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate + } + return nil +} + +func (x *DefaultLabelPolicy) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate + } + return nil +} + +type DefaultLabelPolicyUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PrimaryColor string `protobuf:"bytes,1,opt,name=primary_color,json=primaryColor,proto3" json:"primary_color,omitempty"` + SecondaryColor string `protobuf:"bytes,2,opt,name=secondary_color,json=secondaryColor,proto3" json:"secondary_color,omitempty"` +} + +func (x *DefaultLabelPolicyUpdate) Reset() { + *x = DefaultLabelPolicyUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DefaultLabelPolicyUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DefaultLabelPolicyUpdate) ProtoMessage() {} + +func (x *DefaultLabelPolicyUpdate) ProtoReflect() protoreflect.Message { + mi := &file_admin_proto_msgTypes[48] + 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 DefaultLabelPolicyUpdate.ProtoReflect.Descriptor instead. +func (*DefaultLabelPolicyUpdate) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{48} +} + +func (x *DefaultLabelPolicyUpdate) GetPrimaryColor() string { + if x != nil { + return x.PrimaryColor + } + return "" +} + +func (x *DefaultLabelPolicyUpdate) GetSecondaryColor() string { + if x != nil { + return x.SecondaryColor + } + return "" +} + +type DefaultLabelPolicyView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PrimaryColor string `protobuf:"bytes,1,opt,name=primary_color,json=primaryColor,proto3" json:"primary_color,omitempty"` + SecondaryColor string `protobuf:"bytes,2,opt,name=secondary_color,json=secondaryColor,proto3" json:"secondary_color,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` +} + +func (x *DefaultLabelPolicyView) Reset() { + *x = DefaultLabelPolicyView{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DefaultLabelPolicyView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DefaultLabelPolicyView) ProtoMessage() {} + +func (x *DefaultLabelPolicyView) ProtoReflect() protoreflect.Message { + mi := &file_admin_proto_msgTypes[49] + 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 DefaultLabelPolicyView.ProtoReflect.Descriptor instead. +func (*DefaultLabelPolicyView) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{49} +} + +func (x *DefaultLabelPolicyView) GetPrimaryColor() string { + if x != nil { + return x.PrimaryColor + } + return "" +} + +func (x *DefaultLabelPolicyView) GetSecondaryColor() string { + if x != nil { + return x.SecondaryColor + } + return "" +} + +func (x *DefaultLabelPolicyView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate + } + return nil +} + +func (x *DefaultLabelPolicyView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate + } + return nil +} + type DefaultLoginPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4267,7 +4464,7 @@ type DefaultLoginPolicy struct { func (x *DefaultLoginPolicy) Reset() { *x = DefaultLoginPolicy{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[47] + mi := &file_admin_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4280,7 +4477,7 @@ func (x *DefaultLoginPolicy) String() string { func (*DefaultLoginPolicy) ProtoMessage() {} func (x *DefaultLoginPolicy) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[47] + mi := &file_admin_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4293,7 +4490,7 @@ func (x *DefaultLoginPolicy) ProtoReflect() protoreflect.Message { // Deprecated: Use DefaultLoginPolicy.ProtoReflect.Descriptor instead. func (*DefaultLoginPolicy) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{47} + return file_admin_proto_rawDescGZIP(), []int{50} } func (x *DefaultLoginPolicy) GetAllowUsernamePassword() bool { @@ -4344,7 +4541,7 @@ type DefaultLoginPolicyRequest struct { func (x *DefaultLoginPolicyRequest) Reset() { *x = DefaultLoginPolicyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[48] + mi := &file_admin_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4357,7 +4554,7 @@ func (x *DefaultLoginPolicyRequest) String() string { func (*DefaultLoginPolicyRequest) ProtoMessage() {} func (x *DefaultLoginPolicyRequest) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[48] + mi := &file_admin_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4370,7 +4567,7 @@ func (x *DefaultLoginPolicyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DefaultLoginPolicyRequest.ProtoReflect.Descriptor instead. func (*DefaultLoginPolicyRequest) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{48} + return file_admin_proto_rawDescGZIP(), []int{51} } func (x *DefaultLoginPolicyRequest) GetAllowUsernamePassword() bool { @@ -4405,7 +4602,7 @@ type IdpProviderID struct { func (x *IdpProviderID) Reset() { *x = IdpProviderID{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[49] + mi := &file_admin_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4418,7 +4615,7 @@ func (x *IdpProviderID) String() string { func (*IdpProviderID) ProtoMessage() {} func (x *IdpProviderID) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[49] + mi := &file_admin_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4431,7 +4628,7 @@ func (x *IdpProviderID) ProtoReflect() protoreflect.Message { // Deprecated: Use IdpProviderID.ProtoReflect.Descriptor instead. func (*IdpProviderID) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{49} + return file_admin_proto_rawDescGZIP(), []int{52} } func (x *IdpProviderID) GetIdpConfigId() string { @@ -4456,7 +4653,7 @@ type DefaultLoginPolicyView struct { func (x *DefaultLoginPolicyView) Reset() { *x = DefaultLoginPolicyView{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[50] + mi := &file_admin_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4469,7 +4666,7 @@ func (x *DefaultLoginPolicyView) String() string { func (*DefaultLoginPolicyView) ProtoMessage() {} func (x *DefaultLoginPolicyView) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[50] + mi := &file_admin_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4482,7 +4679,7 @@ func (x *DefaultLoginPolicyView) ProtoReflect() protoreflect.Message { // Deprecated: Use DefaultLoginPolicyView.ProtoReflect.Descriptor instead. func (*DefaultLoginPolicyView) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{50} + return file_admin_proto_rawDescGZIP(), []int{53} } func (x *DefaultLoginPolicyView) GetAllowUsernamePassword() bool { @@ -4533,7 +4730,7 @@ type IdpProviderView struct { func (x *IdpProviderView) Reset() { *x = IdpProviderView{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[51] + mi := &file_admin_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4546,7 +4743,7 @@ func (x *IdpProviderView) String() string { func (*IdpProviderView) ProtoMessage() {} func (x *IdpProviderView) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[51] + mi := &file_admin_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4559,7 +4756,7 @@ func (x *IdpProviderView) ProtoReflect() protoreflect.Message { // Deprecated: Use IdpProviderView.ProtoReflect.Descriptor instead. func (*IdpProviderView) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{51} + return file_admin_proto_rawDescGZIP(), []int{54} } func (x *IdpProviderView) GetIdpConfigId() string { @@ -4599,7 +4796,7 @@ type IdpProviderSearchResponse struct { func (x *IdpProviderSearchResponse) Reset() { *x = IdpProviderSearchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[52] + mi := &file_admin_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4612,7 +4809,7 @@ func (x *IdpProviderSearchResponse) String() string { func (*IdpProviderSearchResponse) ProtoMessage() {} func (x *IdpProviderSearchResponse) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[52] + mi := &file_admin_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4625,7 +4822,7 @@ func (x *IdpProviderSearchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IdpProviderSearchResponse.ProtoReflect.Descriptor instead. func (*IdpProviderSearchResponse) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{52} + return file_admin_proto_rawDescGZIP(), []int{55} } func (x *IdpProviderSearchResponse) GetOffset() uint64 { @@ -4682,7 +4879,7 @@ type IdpProviderSearchRequest struct { func (x *IdpProviderSearchRequest) Reset() { *x = IdpProviderSearchRequest{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[53] + mi := &file_admin_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4695,7 +4892,7 @@ func (x *IdpProviderSearchRequest) String() string { func (*IdpProviderSearchRequest) ProtoMessage() {} func (x *IdpProviderSearchRequest) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[53] + mi := &file_admin_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4708,7 +4905,7 @@ func (x *IdpProviderSearchRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IdpProviderSearchRequest.ProtoReflect.Descriptor instead. func (*IdpProviderSearchRequest) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{53} + return file_admin_proto_rawDescGZIP(), []int{56} } func (x *IdpProviderSearchRequest) GetOffset() uint64 { @@ -4742,7 +4939,7 @@ type DefaultPasswordComplexityPolicy struct { func (x *DefaultPasswordComplexityPolicy) Reset() { *x = DefaultPasswordComplexityPolicy{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[54] + mi := &file_admin_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4755,7 +4952,7 @@ func (x *DefaultPasswordComplexityPolicy) String() string { func (*DefaultPasswordComplexityPolicy) ProtoMessage() {} func (x *DefaultPasswordComplexityPolicy) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[54] + mi := &file_admin_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4768,7 +4965,7 @@ func (x *DefaultPasswordComplexityPolicy) ProtoReflect() protoreflect.Message { // Deprecated: Use DefaultPasswordComplexityPolicy.ProtoReflect.Descriptor instead. func (*DefaultPasswordComplexityPolicy) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{54} + return file_admin_proto_rawDescGZIP(), []int{57} } func (x *DefaultPasswordComplexityPolicy) GetMinLength() uint64 { @@ -4835,7 +5032,7 @@ type DefaultPasswordComplexityPolicyRequest struct { func (x *DefaultPasswordComplexityPolicyRequest) Reset() { *x = DefaultPasswordComplexityPolicyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[55] + mi := &file_admin_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4848,7 +5045,7 @@ func (x *DefaultPasswordComplexityPolicyRequest) String() string { func (*DefaultPasswordComplexityPolicyRequest) ProtoMessage() {} func (x *DefaultPasswordComplexityPolicyRequest) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[55] + mi := &file_admin_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4861,7 +5058,7 @@ func (x *DefaultPasswordComplexityPolicyRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use DefaultPasswordComplexityPolicyRequest.ProtoReflect.Descriptor instead. func (*DefaultPasswordComplexityPolicyRequest) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{55} + return file_admin_proto_rawDescGZIP(), []int{58} } func (x *DefaultPasswordComplexityPolicyRequest) GetMinLength() uint64 { @@ -4916,7 +5113,7 @@ type DefaultPasswordComplexityPolicyView struct { func (x *DefaultPasswordComplexityPolicyView) Reset() { *x = DefaultPasswordComplexityPolicyView{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[56] + mi := &file_admin_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4929,7 +5126,7 @@ func (x *DefaultPasswordComplexityPolicyView) String() string { func (*DefaultPasswordComplexityPolicyView) ProtoMessage() {} func (x *DefaultPasswordComplexityPolicyView) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[56] + mi := &file_admin_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4942,7 +5139,7 @@ func (x *DefaultPasswordComplexityPolicyView) ProtoReflect() protoreflect.Messag // Deprecated: Use DefaultPasswordComplexityPolicyView.ProtoReflect.Descriptor instead. func (*DefaultPasswordComplexityPolicyView) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{56} + return file_admin_proto_rawDescGZIP(), []int{59} } func (x *DefaultPasswordComplexityPolicyView) GetMinLength() uint64 { @@ -5008,7 +5205,7 @@ type DefaultPasswordAgePolicy struct { func (x *DefaultPasswordAgePolicy) Reset() { *x = DefaultPasswordAgePolicy{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[57] + mi := &file_admin_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5021,7 +5218,7 @@ func (x *DefaultPasswordAgePolicy) String() string { func (*DefaultPasswordAgePolicy) ProtoMessage() {} func (x *DefaultPasswordAgePolicy) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[57] + mi := &file_admin_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5034,7 +5231,7 @@ func (x *DefaultPasswordAgePolicy) ProtoReflect() protoreflect.Message { // Deprecated: Use DefaultPasswordAgePolicy.ProtoReflect.Descriptor instead. func (*DefaultPasswordAgePolicy) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{57} + return file_admin_proto_rawDescGZIP(), []int{60} } func (x *DefaultPasswordAgePolicy) GetMaxAgeDays() uint64 { @@ -5077,7 +5274,7 @@ type DefaultPasswordAgePolicyRequest struct { func (x *DefaultPasswordAgePolicyRequest) Reset() { *x = DefaultPasswordAgePolicyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[58] + mi := &file_admin_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5090,7 +5287,7 @@ func (x *DefaultPasswordAgePolicyRequest) String() string { func (*DefaultPasswordAgePolicyRequest) ProtoMessage() {} func (x *DefaultPasswordAgePolicyRequest) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[58] + mi := &file_admin_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5103,7 +5300,7 @@ func (x *DefaultPasswordAgePolicyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DefaultPasswordAgePolicyRequest.ProtoReflect.Descriptor instead. func (*DefaultPasswordAgePolicyRequest) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{58} + return file_admin_proto_rawDescGZIP(), []int{61} } func (x *DefaultPasswordAgePolicyRequest) GetMaxAgeDays() uint64 { @@ -5134,7 +5331,7 @@ type DefaultPasswordAgePolicyView struct { func (x *DefaultPasswordAgePolicyView) Reset() { *x = DefaultPasswordAgePolicyView{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[59] + mi := &file_admin_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5147,7 +5344,7 @@ func (x *DefaultPasswordAgePolicyView) String() string { func (*DefaultPasswordAgePolicyView) ProtoMessage() {} func (x *DefaultPasswordAgePolicyView) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[59] + mi := &file_admin_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5160,7 +5357,7 @@ func (x *DefaultPasswordAgePolicyView) ProtoReflect() protoreflect.Message { // Deprecated: Use DefaultPasswordAgePolicyView.ProtoReflect.Descriptor instead. func (*DefaultPasswordAgePolicyView) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{59} + return file_admin_proto_rawDescGZIP(), []int{62} } func (x *DefaultPasswordAgePolicyView) GetMaxAgeDays() uint64 { @@ -5205,7 +5402,7 @@ type DefaultPasswordLockoutPolicy struct { func (x *DefaultPasswordLockoutPolicy) Reset() { *x = DefaultPasswordLockoutPolicy{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[60] + mi := &file_admin_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5218,7 +5415,7 @@ func (x *DefaultPasswordLockoutPolicy) String() string { func (*DefaultPasswordLockoutPolicy) ProtoMessage() {} func (x *DefaultPasswordLockoutPolicy) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[60] + mi := &file_admin_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5231,7 +5428,7 @@ func (x *DefaultPasswordLockoutPolicy) ProtoReflect() protoreflect.Message { // Deprecated: Use DefaultPasswordLockoutPolicy.ProtoReflect.Descriptor instead. func (*DefaultPasswordLockoutPolicy) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{60} + return file_admin_proto_rawDescGZIP(), []int{63} } func (x *DefaultPasswordLockoutPolicy) GetMaxAttempts() uint64 { @@ -5274,7 +5471,7 @@ type DefaultPasswordLockoutPolicyRequest struct { func (x *DefaultPasswordLockoutPolicyRequest) Reset() { *x = DefaultPasswordLockoutPolicyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[61] + mi := &file_admin_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5287,7 +5484,7 @@ func (x *DefaultPasswordLockoutPolicyRequest) String() string { func (*DefaultPasswordLockoutPolicyRequest) ProtoMessage() {} func (x *DefaultPasswordLockoutPolicyRequest) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[61] + mi := &file_admin_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5300,7 +5497,7 @@ func (x *DefaultPasswordLockoutPolicyRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use DefaultPasswordLockoutPolicyRequest.ProtoReflect.Descriptor instead. func (*DefaultPasswordLockoutPolicyRequest) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{61} + return file_admin_proto_rawDescGZIP(), []int{64} } func (x *DefaultPasswordLockoutPolicyRequest) GetMaxAttempts() uint64 { @@ -5331,7 +5528,7 @@ type DefaultPasswordLockoutPolicyView struct { func (x *DefaultPasswordLockoutPolicyView) Reset() { *x = DefaultPasswordLockoutPolicyView{} if protoimpl.UnsafeEnabled { - mi := &file_admin_proto_msgTypes[62] + mi := &file_admin_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5344,7 +5541,7 @@ func (x *DefaultPasswordLockoutPolicyView) String() string { func (*DefaultPasswordLockoutPolicyView) ProtoMessage() {} func (x *DefaultPasswordLockoutPolicyView) ProtoReflect() protoreflect.Message { - mi := &file_admin_proto_msgTypes[62] + mi := &file_admin_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5357,7 +5554,7 @@ func (x *DefaultPasswordLockoutPolicyView) ProtoReflect() protoreflect.Message { // Deprecated: Use DefaultPasswordLockoutPolicyView.ProtoReflect.Descriptor instead. func (*DefaultPasswordLockoutPolicyView) Descriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{62} + return file_admin_proto_rawDescGZIP(), []int{65} } func (x *DefaultPasswordLockoutPolicyView) GetMaxAttempts() uint64 { @@ -6014,150 +6211,13 @@ var file_admin_proto_rawDesc = []byte{ 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9f, 0x02, 0x0a, 0x12, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x36, - 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, - 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, - 0x69, 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x70, 0x12, 0x3f, 0x0a, 0x0d, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 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, 0x0c, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x19, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, - 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, - 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x49, 0x64, 0x70, 0x22, 0x3c, 0x0a, 0x0d, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2b, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x49, 0x64, 0x22, 0xa3, 0x02, 0x0a, 0x16, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, - 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, 0x36, 0x0a, - 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, - 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x70, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 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, 0x0c, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x0f, 0x49, 0x64, 0x70, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0d, - 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, - 0x64, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa2, 0x02, 0x0a, - 0x19, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x61, - 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, - 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x22, 0x48, 0x0a, 0x18, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xc6, 0x02, 0x0a, 0x1f, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, - 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x23, - 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x63, - 0x61, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, - 0x63, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x4c, - 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, - 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x73, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, - 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x44, 0x61, 0x74, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x26, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, - 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x23, - 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x63, - 0x61, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, - 0x63, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x4c, - 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, - 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x73, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, - 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0xca, 0x02, 0x0a, 0x23, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1d, - 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x23, 0x0a, - 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, - 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, - 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x4c, 0x6f, - 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x79, - 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x53, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, - 0x61, 0x74, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x44, 0x61, - 0x79, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x72, - 0x6e, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x57, 0x61, 0x72, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x0d, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe0, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x23, + 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, + 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, @@ -6165,36 +6225,193 @@ var file_admin_proto_rawDesc = []byte{ 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 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, 0x0a, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x6d, 0x0a, 0x1f, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, - 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x44, 0x61, 0x79, 0x73, 0x12, - 0x28, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x5f, 0x64, - 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x57, 0x61, 0x72, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x22, 0xe8, 0x01, 0x0a, 0x1c, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x61, - 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x44, 0x61, 0x79, 0x73, 0x12, 0x28, 0x0a, 0x10, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x61, 0x79, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x57, 0x61, - 0x72, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x44, 0x61, 0x74, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x1c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74, 0x74, - 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x78, - 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x68, 0x6f, 0x77, - 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, - 0x6f, 0x75, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x68, 0x0a, 0x18, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0xe4, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, + 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, + 0x79, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x3f, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 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, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x9f, 0x02, 0x0a, 0x12, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x70, 0x12, + 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x04, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xa8, 0x01, + 0x0a, 0x19, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x70, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x70, 0x22, 0x3c, 0x0a, 0x0d, 0x49, 0x64, 0x70, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2b, 0x0a, 0x0d, 0x69, 0x64, 0x70, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x22, 0xa3, 0x02, 0x0a, 0x16, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, + 0x77, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x70, 0x12, 0x3f, + 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x04, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x81, 0x01, 0x0a, + 0x0f, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, + 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x22, 0xa2, 0x02, 0x0a, 0x19, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x42, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, + 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x48, 0x0a, 0x18, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, + 0xc6, 0x02, 0x0a, 0x1f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, + 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x55, 0x70, + 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x6c, + 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x68, 0x61, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x68, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x68, + 0x61, 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x68, 0x61, 0x73, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 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, 0x0a, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x26, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, + 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x55, 0x70, + 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x6c, + 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x68, 0x61, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x68, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x68, + 0x61, 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x68, 0x61, 0x73, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0xca, 0x02, 0x0a, 0x23, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, + 0x65, 0x77, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, + 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x55, 0x70, 0x70, + 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6f, + 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, + 0x61, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, + 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x68, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, + 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x68, 0x61, 0x73, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 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, 0x0a, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, + 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x41, + 0x67, 0x65, 0x44, 0x61, 0x79, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x57, 0x61, 0x72, 0x6e, 0x44, 0x61, 0x79, 0x73, + 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x04, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x6d, + 0x0a, 0x1f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x79, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x44, + 0x61, 0x79, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x77, 0x61, + 0x72, 0x6e, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x57, 0x61, 0x72, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x22, 0xe8, 0x01, + 0x0a, 0x1c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, 0x20, + 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x44, 0x61, 0x79, 0x73, + 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x5f, + 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x57, 0x61, 0x72, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, @@ -6202,17 +6419,9 @@ var file_admin_proto_rawDesc = []byte{ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 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, 0x0a, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x7a, 0x0a, 0x23, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, - 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, - 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x6f, - 0x75, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x12, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x46, 0x61, 0x69, - 0x6c, 0x75, 0x72, 0x65, 0x22, 0xf5, 0x01, 0x0a, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, + 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x1c, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, + 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x69, @@ -6225,518 +6434,562 @@ var file_admin_proto_rawDesc = []byte{ 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x2a, 0x50, 0x0a, 0x08, - 0x4f, 0x72, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x52, 0x47, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x52, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x47, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x2a, 0x74, - 0x0a, 0x0c, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, - 0x0a, 0x18, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4e, 0x41, 0x4d, - 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, - 0x4b, 0x45, 0x59, 0x5f, 0x44, 0x4f, 0x4d, 0x41, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, - 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x10, 0x03, 0x2a, 0x6c, 0x0a, 0x0f, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x52, 0x47, 0x53, 0x45, - 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, - 0x53, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, - 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x53, 0x5f, 0x57, 0x49, - 0x54, 0x48, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, - 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, - 0x10, 0x02, 0x2a, 0xaf, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x19, 0x0a, 0x15, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x55, - 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, - 0x01, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, - 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, - 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, - 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, - 0x43, 0x4b, 0x45, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, 0x05, 0x12, 0x15, 0x0a, - 0x11, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, - 0x41, 0x4c, 0x10, 0x06, 0x2a, 0x58, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, - 0x0a, 0x12, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, - 0x5f, 0x46, 0x45, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x45, 0x4e, - 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x47, 0x45, - 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x49, 0x56, 0x45, 0x52, 0x53, 0x45, 0x10, 0x03, 0x2a, 0x41, - 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x4b, 0x45, 0x59, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, - 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x4b, 0x45, 0x59, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x10, - 0x01, 0x2a, 0xbb, 0x01, 0x0a, 0x12, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x41, 0x4d, 0x4d, - 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, + 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x7a, 0x0a, 0x23, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, + 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, + 0x70, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x74, + 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6c, + 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, + 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x22, 0xf5, 0x01, 0x0a, 0x20, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, + 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, 0x21, 0x0a, + 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, + 0x12, 0x30, 0x0a, 0x14, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, + 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, + 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, + 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, + 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x04, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x2a, 0x50, 0x0a, 0x08, 0x4f, 0x72, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, + 0x4f, 0x52, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x52, 0x47, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4f, + 0x52, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, + 0x10, 0x02, 0x2a, 0x74, 0x0a, 0x0c, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, + 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, + 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, + 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x52, 0x47, 0x53, 0x45, + 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x44, 0x4f, 0x4d, 0x41, 0x49, 0x4e, 0x10, 0x02, + 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x03, 0x2a, 0x6c, 0x0a, 0x0f, 0x4f, 0x72, 0x67, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x16, 0x4f, + 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, + 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x52, 0x47, 0x53, 0x45, + 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, + 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x52, 0x47, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x41, 0x49, 0x4e, 0x53, 0x10, 0x02, 0x2a, 0xaf, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, + 0x11, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, + 0x45, 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, + 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, + 0x05, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, + 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x06, 0x2a, 0x58, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x16, 0x0a, 0x12, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x45, + 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x46, 0x45, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0f, 0x0a, + 0x0b, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x12, + 0x0a, 0x0e, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x49, 0x56, 0x45, 0x52, 0x53, 0x45, + 0x10, 0x03, 0x2a, 0x41, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x4b, + 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x4b, 0x45, 0x59, 0x5f, 0x4a, + 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x2a, 0xbb, 0x01, 0x0a, 0x12, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, - 0x45, 0x59, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, - 0x20, 0x0a, 0x1c, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, - 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, - 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, - 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x03, 0x12, - 0x1e, 0x0a, 0x1a, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, - 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x2a, - 0xea, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, - 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x45, 0x41, - 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x53, - 0x5f, 0x57, 0x49, 0x54, 0x48, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x45, 0x41, 0x52, 0x43, - 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, - 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, - 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, - 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x45, 0x41, 0x52, 0x43, - 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x53, 0x5f, 0x57, - 0x49, 0x54, 0x48, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, - 0x04, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, - 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, - 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x45, 0x41, 0x52, - 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, - 0x41, 0x4c, 0x53, 0x10, 0x06, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, - 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, - 0x41, 0x4e, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, - 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x08, - 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, - 0x5f, 0x49, 0x53, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x46, 0x10, 0x09, 0x12, 0x1e, 0x0a, 0x1a, - 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4c, 0x49, 0x53, - 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x10, 0x0a, 0x2a, 0x4b, 0x0a, 0x0e, - 0x49, 0x64, 0x70, 0x53, 0x74, 0x79, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, - 0x0a, 0x1a, 0x49, 0x44, 0x50, 0x53, 0x54, 0x59, 0x4c, 0x49, 0x4e, 0x47, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, - 0x0a, 0x15, 0x49, 0x44, 0x50, 0x53, 0x54, 0x59, 0x4c, 0x49, 0x4e, 0x47, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x10, 0x01, 0x2a, 0x62, 0x0a, 0x08, 0x49, 0x64, 0x70, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x44, 0x50, 0x43, 0x4f, 0x4e, 0x46, - 0x49, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x44, 0x50, 0x43, 0x4f, 0x4e, 0x46, - 0x49, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, - 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x44, 0x50, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x2a, 0x79, 0x0a, - 0x10, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x41, 0x50, 0x50, 0x49, - 0x4e, 0x47, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x52, 0x45, - 0x44, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, - 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x02, 0x2a, 0x63, 0x0a, 0x0c, 0x49, 0x64, 0x70, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x44, 0x50, 0x53, - 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x44, 0x50, 0x53, 0x45, 0x41, - 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x49, 0x44, 0x50, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, - 0x47, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x44, 0x50, 0x53, 0x45, 0x41, - 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x02, 0x2a, 0x46, 0x0a, - 0x07, 0x49, 0x64, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x44, 0x50, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x44, 0x50, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x49, 0x44, - 0x43, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x44, 0x50, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, - 0x41, 0x4d, 0x4c, 0x10, 0x02, 0x32, 0x9f, 0x31, 0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x7a, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x7a, 0x12, 0x47, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x0e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x08, 0x12, 0x06, 0x2f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x4e, 0x0a, 0x08, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, + 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, + 0x45, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4e, + 0x41, 0x4d, 0x45, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, + 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x4d, 0x41, 0x49, + 0x4c, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x49, + 0x44, 0x10, 0x04, 0x2a, 0xea, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, + 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x00, 0x12, 0x1c, 0x0a, + 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, + 0x41, 0x52, 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x41, 0x49, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, + 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x5f, 0x49, 0x47, + 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, + 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, + 0x41, 0x53, 0x45, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, + 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x5f, 0x49, + 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4e, 0x4f, 0x54, + 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x06, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x45, 0x41, + 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x41, 0x52, + 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, + 0x41, 0x4e, 0x10, 0x08, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, + 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x49, 0x53, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x46, 0x10, 0x09, + 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, + 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x10, 0x0a, + 0x2a, 0x4b, 0x0a, 0x0e, 0x49, 0x64, 0x70, 0x53, 0x74, 0x79, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x44, 0x50, 0x53, 0x54, 0x59, 0x4c, 0x49, 0x4e, 0x47, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x44, 0x50, 0x53, 0x54, 0x59, 0x4c, 0x49, 0x4e, 0x47, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x10, 0x01, 0x2a, 0x62, 0x0a, + 0x08, 0x49, 0x64, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x44, 0x50, + 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x44, 0x50, + 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x56, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x44, 0x50, 0x43, 0x4f, 0x4e, 0x46, 0x49, + 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, + 0x02, 0x2a, 0x79, 0x0a, 0x10, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x41, 0x50, + 0x50, 0x49, 0x4e, 0x47, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x4f, 0x49, 0x44, 0x43, 0x4d, + 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x46, + 0x45, 0x52, 0x52, 0x45, 0x44, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, + 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x02, 0x2a, 0x63, 0x0a, 0x0c, + 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x18, + 0x49, 0x44, 0x50, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x44, + 0x50, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x49, 0x44, 0x50, 0x5f, 0x43, + 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x44, + 0x50, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, + 0x02, 0x2a, 0x46, 0x0a, 0x07, 0x49, 0x64, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, + 0x49, 0x44, 0x50, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x44, 0x50, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4f, 0x49, 0x44, 0x43, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x44, 0x50, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x41, 0x4d, 0x4c, 0x10, 0x02, 0x32, 0xe5, 0x33, 0x0a, 0x0c, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x07, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x47, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x22, 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x8f, 0x01, 0x0a, - 0x0b, 0x49, 0x73, 0x4f, 0x72, 0x67, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x2b, 0x2e, 0x63, - 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4f, - 0x72, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, - 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4f, 0x72, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, - 0x0f, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x5f, 0x69, 0x73, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x70, - 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x42, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x63, - 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x44, 0x1a, 0x1e, - 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x22, 0x20, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x69, - 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, - 0x12, 0x8f, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x72, 0x67, 0x73, 0x12, + 0x22, 0x0e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x08, 0x12, 0x06, 0x2f, 0x72, 0x65, 0x61, 0x64, 0x79, + 0x12, 0x4e, 0x0a, 0x08, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x22, 0x11, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x8f, 0x01, 0x0a, 0x0b, 0x49, 0x73, 0x4f, 0x72, 0x67, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x4f, 0x72, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x4f, 0x72, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x5f, 0x69, 0x73, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, + 0x61, 0x64, 0x12, 0x70, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x42, 0x79, 0x49, 0x44, + 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, + 0x49, 0x44, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, + 0x72, 0x67, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x6f, 0x72, 0x67, + 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, + 0x72, 0x65, 0x61, 0x64, 0x12, 0x8f, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, + 0x72, 0x67, 0x73, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x5f, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, + 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x8b, 0x01, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x55, 0x70, + 0x4f, 0x72, 0x67, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x72, 0x67, 0x53, 0x65, 0x74, 0x55, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, - 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, - 0x61, 0x64, 0x12, 0x8b, 0x01, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x55, 0x70, 0x4f, 0x72, 0x67, 0x12, - 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x53, - 0x65, 0x74, 0x55, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, - 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x74, 0x55, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, - 0x22, 0x0c, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x3a, 0x01, - 0x2a, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x69, 0x61, 0x6d, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x12, 0x99, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4f, - 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, - 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x2f, 0x6f, 0x72, 0x67, 0x69, 0x61, 0x6d, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, - 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xb4, 0x01, 0x0a, - 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4f, 0x72, - 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, - 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, - 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x1a, 0x1d, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x69, 0x65, 0x73, 0x2f, 0x6f, 0x72, 0x67, 0x69, 0x61, 0x6d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, - 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x12, 0xa6, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x49, 0x61, - 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x65, 0x74, 0x55, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x11, 0x22, 0x0c, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x74, + 0x75, 0x70, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x69, 0x61, 0x6d, 0x2e, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x12, 0x99, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x49, 0x44, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, - 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x22, - 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, - 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x2f, 0x6f, 0x72, 0x67, 0x69, 0x61, 0x6d, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, - 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xae, 0x01, 0x0a, - 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x3f, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6f, 0x72, - 0x67, 0x69, 0x61, 0x6d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, - 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xae, 0x01, - 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, - 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, - 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x3f, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x1a, 0x1e, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, - 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6f, - 0x72, 0x67, 0x69, 0x61, 0x6d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, - 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x96, - 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, - 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x44, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, - 0x2a, 0x1e, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6f, 0x72, 0x67, 0x69, 0x61, 0x6d, - 0x82, 0xb5, 0x18, 0x13, 0x0a, 0x11, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49, - 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, - 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, - 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, - 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x8f, 0x01, - 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, + 0x56, 0x69, 0x65, 0x77, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x6f, + 0x72, 0x67, 0x73, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6f, 0x72, 0x67, 0x69, 0x61, 0x6d, 0x82, 0xb5, 0x18, 0x11, 0x0a, + 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, + 0x12, 0xb4, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x61, - 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, + 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, + 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x22, 0x08, 0x2f, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, - 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, - 0x9f, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x33, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x17, 0x1a, 0x12, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, - 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x61, 0x6d, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, - 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x2a, 0x12, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x13, - 0x0a, 0x11, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x12, 0xab, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x61, - 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, - 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, + 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, + 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x1a, + 0x1d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2f, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6f, 0x72, 0x67, 0x69, 0x61, 0x6d, 0x3a, 0x01, + 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xa6, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4f, + 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x11, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x49, 0x44, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, + 0x69, 0x65, 0x77, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x6f, 0x72, + 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6f, 0x72, 0x67, 0x69, 0x61, 0x6d, 0x82, 0xb5, 0x18, 0x11, 0x0a, + 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, + 0x12, 0xae, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x49, 0x61, + 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x2f, 0x6f, 0x72, 0x67, 0x69, 0x61, 0x6d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, + 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x12, 0xae, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x49, + 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x1a, 0x1e, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, + 0x65, 0x73, 0x2f, 0x6f, 0x72, 0x67, 0x69, 0x61, 0x6d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, + 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, + 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3d, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6f, 0x72, + 0x67, 0x69, 0x61, 0x6d, 0x82, 0xb5, 0x18, 0x13, 0x0a, 0x11, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, + 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x61, - 0x64, 0x12, 0x62, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, - 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x73, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x08, 0x12, - 0x06, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, - 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x7c, 0x0a, 0x09, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x56, 0x69, - 0x65, 0x77, 0x12, 0x21, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, - 0x69, 0x65, 0x77, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x34, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x7b, 0x64, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x7b, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x69, 0x61, 0x6d, 0x2e, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x12, 0x77, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, - 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, - 0x0d, 0x2f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xb5, - 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xa4, 0x01, 0x0a, - 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x2a, 0x36, 0x2f, 0x66, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x7b, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x7b, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x7d, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x69, 0x61, 0x6d, 0x2e, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x12, 0x75, 0x0a, 0x07, 0x49, 0x64, 0x70, 0x42, 0x79, 0x49, 0x44, 0x12, 0x20, - 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x49, 0x44, - 0x1a, 0x22, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, - 0x56, 0x69, 0x65, 0x77, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x69, - 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x69, 0x61, - 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x89, 0x01, 0x0a, 0x0d, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x12, 0x2e, 0x2e, 0x63, - 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x1e, 0x2e, 0x63, - 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x22, 0x28, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x6f, 0x69, 0x64, 0x63, - 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, - 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x6f, + 0x64, 0x12, 0x8f, 0x01, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, + 0x22, 0x08, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, + 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x61, + 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x1a, 0x12, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, + 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x61, 0x6d, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x2a, 0x12, 0x2f, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, + 0x82, 0xb5, 0x18, 0x13, 0x0a, 0x11, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xab, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x31, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, + 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x62, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x73, 0x22, 0x1c, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x08, 0x12, 0x06, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x82, 0xb5, 0x18, 0x0a, 0x0a, + 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x7c, 0x0a, 0x09, 0x43, 0x6c, 0x65, + 0x61, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x21, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1d, 0x2f, 0x76, 0x69, 0x65, 0x77, + 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x7b, 0x76, 0x69, + 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x69, 0x61, + 0x6d, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x77, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x23, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, + 0x12, 0xa4, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x44, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, + 0x2a, 0x36, 0x2f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x7b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x7b, 0x76, 0x69, 0x65, 0x77, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x7d, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x69, 0x61, + 0x6d, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x75, 0x0a, 0x07, 0x49, 0x64, 0x70, 0x42, 0x79, + 0x49, 0x44, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x64, 0x70, 0x49, 0x44, 0x1a, 0x22, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x64, 0x70, 0x56, 0x69, 0x65, 0x77, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, + 0x12, 0x0a, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0e, + 0x0a, 0x0c, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x89, + 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, + 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, + 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, - 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x1a, 0x0a, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, - 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, - 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x13, 0x44, - 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, - 0x64, 0x70, 0x49, 0x44, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, + 0x6f, 0x69, 0x64, 0x63, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, + 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x64, 0x70, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x1a, 0x16, 0x2f, 0x69, - 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, - 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x13, 0x52, - 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, - 0x64, 0x70, 0x49, 0x44, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, - 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x64, 0x70, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x1a, 0x16, 0x2f, 0x69, - 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, - 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, - 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x49, 0x44, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x2a, - 0x0a, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0f, 0x0a, - 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xa8, - 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x2e, 0x49, 0x64, 0x70, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x1a, 0x0a, 0x2f, 0x69, + 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, + 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x8d, + 0x01, 0x0a, 0x13, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x49, 0x64, 0x70, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x1a, 0x19, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, - 0x7b, 0x69, 0x64, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x69, 0x64, 0x63, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, 0x2e, - 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x0a, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x49, 0x64, 0x70, 0x73, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x49, 0x44, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, - 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x69, 0x64, - 0x70, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, - 0x0e, 0x0a, 0x0c, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, - 0x90, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, - 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x56, 0x69, 0x65, 0x77, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x82, 0xb5, 0x18, - 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, - 0x61, 0x64, 0x12, 0xb1, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, - 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, - 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x1a, 0x0f, 0x2f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x3a, 0x01, 0x2a, - 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xd4, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x33, 0x2e, 0x63, - 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, + 0x1a, 0x16, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x64, 0x65, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, + 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x8d, + 0x01, 0x0a, 0x13, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x49, 0x64, 0x70, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x49, 0x44, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, + 0x1a, 0x16, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x72, 0x65, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, + 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x72, + 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, - 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, - 0x24, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, - 0x2f, 0x69, 0x64, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x5f, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, - 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xb7, 0x01, - 0x0a, 0x22, 0x41, 0x64, 0x64, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x54, 0x6f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, - 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x28, + 0x70, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x0c, 0x2a, 0x0a, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, + 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x12, 0xa8, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x69, 0x64, + 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x28, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x1a, 0x19, 0x2f, 0x69, + 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x69, 0x64, + 0x63, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, + 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x93, 0x01, + 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x64, 0x70, 0x73, 0x12, 0x2b, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, + 0x0d, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, + 0x2a, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x72, + 0x65, 0x61, 0x64, 0x12, 0x90, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, + 0x12, 0x0f, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xb0, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x1a, + 0x0f, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x31, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x22, 0x2c, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, + 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xb1, 0x01, 0x0a, + 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x30, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x1a, 0x0f, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, + 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x12, 0xd4, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x24, 0x2f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x69, 0x64, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, + 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xb7, 0x01, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x49, + 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, - 0x22, 0x1c, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, - 0x6e, 0x2f, 0x69, 0x64, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x01, - 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xb7, 0x01, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x46, 0x72, 0x6f, - 0x6d, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x2a, 0x2c, 0x2f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x69, - 0x64, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x70, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x12, 0x0a, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x49, 0x44, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x69, 0x64, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x12, 0xb8, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, - 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x3e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, - 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, - 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xe6, 0x01, 0x0a, - 0x25, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x41, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x63, 0x61, 0x6f, 0x73, - 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x1a, 0x1d, 0x2f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x3a, 0x01, 0x2a, 0x82, - 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xa3, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x37, 0x2e, + 0x65, 0x12, 0xb7, 0x01, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x64, 0x70, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, - 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x2f, 0x61, 0x67, 0x65, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xca, 0x01, 0x0a, 0x1e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3a, - 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6f, + 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x2a, 0x2c, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, + 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x69, 0x64, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xb8, 0x01, 0x0a, 0x22, + 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x3e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, - 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x1a, 0x16, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x61, 0x67, 0x65, 0x3a, - 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xaf, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, - 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x3b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, + 0x79, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xe6, 0x01, 0x0a, 0x25, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x12, 0x41, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, + 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x1a, 0x1d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, + 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, + 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, + 0xa3, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, + 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x61, 0x67, 0x65, + 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xca, 0x01, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, + 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, - 0x77, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x6c, 0x6f, - 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xda, 0x01, 0x0a, 0x22, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x12, 0x3e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, - 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, - 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1f, 0x1a, 0x1a, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x6c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x3a, 0x01, - 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0xba, 0x01, 0x5a, 0x26, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, 0x61, - 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x92, 0x41, 0x8e, 0x01, 0x12, 0x41, 0x0a, 0x0d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x20, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x2b, 0x12, 0x29, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, - 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x2a, 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x32, 0x10, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, - 0x3a, 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, - 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1b, 0x1a, 0x16, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x61, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, + 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x12, 0xaf, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x3b, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, + 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x22, 0x37, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x6c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x82, + 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, + 0x72, 0x65, 0x61, 0x64, 0x12, 0xda, 0x01, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, + 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3e, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x1a, 0x1a, 0x2f, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x2f, 0x6c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, + 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x42, 0xba, 0x01, 0x5a, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x61, 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x92, 0x41, 0x8e, 0x01, + 0x12, 0x41, 0x0a, 0x0d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x22, 0x2b, 0x12, 0x29, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x32, 0x03, + 0x30, 0x2e, 0x31, 0x2a, 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3a, 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, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -6752,7 +7005,7 @@ func file_admin_proto_rawDescGZIP() []byte { } var file_admin_proto_enumTypes = make([]protoimpl.EnumInfo, 13) -var file_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 63) +var file_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 66) var file_admin_proto_goTypes = []interface{}{ (OrgState)(0), // 0: caos.zitadel.admin.api.v1.OrgState (OrgSearchKey)(0), // 1: caos.zitadel.admin.api.v1.OrgSearchKey @@ -6814,36 +7067,39 @@ var file_admin_proto_goTypes = []interface{}{ (*OidcIdpConfigView)(nil), // 57: caos.zitadel.admin.api.v1.OidcIdpConfigView (*IdpSearchRequest)(nil), // 58: caos.zitadel.admin.api.v1.IdpSearchRequest (*IdpSearchQuery)(nil), // 59: caos.zitadel.admin.api.v1.IdpSearchQuery - (*DefaultLoginPolicy)(nil), // 60: caos.zitadel.admin.api.v1.DefaultLoginPolicy - (*DefaultLoginPolicyRequest)(nil), // 61: caos.zitadel.admin.api.v1.DefaultLoginPolicyRequest - (*IdpProviderID)(nil), // 62: caos.zitadel.admin.api.v1.IdpProviderID - (*DefaultLoginPolicyView)(nil), // 63: caos.zitadel.admin.api.v1.DefaultLoginPolicyView - (*IdpProviderView)(nil), // 64: caos.zitadel.admin.api.v1.IdpProviderView - (*IdpProviderSearchResponse)(nil), // 65: caos.zitadel.admin.api.v1.IdpProviderSearchResponse - (*IdpProviderSearchRequest)(nil), // 66: caos.zitadel.admin.api.v1.IdpProviderSearchRequest - (*DefaultPasswordComplexityPolicy)(nil), // 67: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicy - (*DefaultPasswordComplexityPolicyRequest)(nil), // 68: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicyRequest - (*DefaultPasswordComplexityPolicyView)(nil), // 69: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicyView - (*DefaultPasswordAgePolicy)(nil), // 70: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicy - (*DefaultPasswordAgePolicyRequest)(nil), // 71: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicyRequest - (*DefaultPasswordAgePolicyView)(nil), // 72: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicyView - (*DefaultPasswordLockoutPolicy)(nil), // 73: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicy - (*DefaultPasswordLockoutPolicyRequest)(nil), // 74: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicyRequest - (*DefaultPasswordLockoutPolicyView)(nil), // 75: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicyView - (*timestamp.Timestamp)(nil), // 76: google.protobuf.Timestamp - (*empty.Empty)(nil), // 77: google.protobuf.Empty - (*_struct.Struct)(nil), // 78: google.protobuf.Struct + (*DefaultLabelPolicy)(nil), // 60: caos.zitadel.admin.api.v1.DefaultLabelPolicy + (*DefaultLabelPolicyUpdate)(nil), // 61: caos.zitadel.admin.api.v1.DefaultLabelPolicyUpdate + (*DefaultLabelPolicyView)(nil), // 62: caos.zitadel.admin.api.v1.DefaultLabelPolicyView + (*DefaultLoginPolicy)(nil), // 63: caos.zitadel.admin.api.v1.DefaultLoginPolicy + (*DefaultLoginPolicyRequest)(nil), // 64: caos.zitadel.admin.api.v1.DefaultLoginPolicyRequest + (*IdpProviderID)(nil), // 65: caos.zitadel.admin.api.v1.IdpProviderID + (*DefaultLoginPolicyView)(nil), // 66: caos.zitadel.admin.api.v1.DefaultLoginPolicyView + (*IdpProviderView)(nil), // 67: caos.zitadel.admin.api.v1.IdpProviderView + (*IdpProviderSearchResponse)(nil), // 68: caos.zitadel.admin.api.v1.IdpProviderSearchResponse + (*IdpProviderSearchRequest)(nil), // 69: caos.zitadel.admin.api.v1.IdpProviderSearchRequest + (*DefaultPasswordComplexityPolicy)(nil), // 70: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicy + (*DefaultPasswordComplexityPolicyRequest)(nil), // 71: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicyRequest + (*DefaultPasswordComplexityPolicyView)(nil), // 72: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicyView + (*DefaultPasswordAgePolicy)(nil), // 73: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicy + (*DefaultPasswordAgePolicyRequest)(nil), // 74: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicyRequest + (*DefaultPasswordAgePolicyView)(nil), // 75: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicyView + (*DefaultPasswordLockoutPolicy)(nil), // 76: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicy + (*DefaultPasswordLockoutPolicyRequest)(nil), // 77: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicyRequest + (*DefaultPasswordLockoutPolicyView)(nil), // 78: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicyView + (*timestamp.Timestamp)(nil), // 79: google.protobuf.Timestamp + (*empty.Empty)(nil), // 80: google.protobuf.Empty + (*_struct.Struct)(nil), // 81: google.protobuf.Struct } var file_admin_proto_depIdxs = []int32{ 0, // 0: caos.zitadel.admin.api.v1.Org.state:type_name -> caos.zitadel.admin.api.v1.OrgState - 76, // 1: caos.zitadel.admin.api.v1.Org.creation_date:type_name -> google.protobuf.Timestamp - 76, // 2: caos.zitadel.admin.api.v1.Org.change_date:type_name -> google.protobuf.Timestamp + 79, // 1: caos.zitadel.admin.api.v1.Org.creation_date:type_name -> google.protobuf.Timestamp + 79, // 2: caos.zitadel.admin.api.v1.Org.change_date:type_name -> google.protobuf.Timestamp 1, // 3: caos.zitadel.admin.api.v1.OrgSearchRequest.sorting_column:type_name -> caos.zitadel.admin.api.v1.OrgSearchKey 18, // 4: caos.zitadel.admin.api.v1.OrgSearchRequest.queries:type_name -> caos.zitadel.admin.api.v1.OrgSearchQuery 1, // 5: caos.zitadel.admin.api.v1.OrgSearchQuery.key:type_name -> caos.zitadel.admin.api.v1.OrgSearchKey 2, // 6: caos.zitadel.admin.api.v1.OrgSearchQuery.method:type_name -> caos.zitadel.admin.api.v1.OrgSearchMethod 16, // 7: caos.zitadel.admin.api.v1.OrgSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.Org - 76, // 8: caos.zitadel.admin.api.v1.OrgSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 79, // 8: caos.zitadel.admin.api.v1.OrgSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp 29, // 9: caos.zitadel.admin.api.v1.OrgSetUpRequest.org:type_name -> caos.zitadel.admin.api.v1.CreateOrgRequest 22, // 10: caos.zitadel.admin.api.v1.OrgSetUpRequest.user:type_name -> caos.zitadel.admin.api.v1.CreateUserRequest 16, // 11: caos.zitadel.admin.api.v1.OrgSetUpResponse.org:type_name -> caos.zitadel.admin.api.v1.Org @@ -6852,34 +7108,34 @@ var file_admin_proto_depIdxs = []int32{ 24, // 14: caos.zitadel.admin.api.v1.CreateUserRequest.machine:type_name -> caos.zitadel.admin.api.v1.CreateMachineRequest 4, // 15: caos.zitadel.admin.api.v1.CreateHumanRequest.gender:type_name -> caos.zitadel.admin.api.v1.Gender 3, // 16: caos.zitadel.admin.api.v1.UserResponse.state:type_name -> caos.zitadel.admin.api.v1.UserState - 76, // 17: caos.zitadel.admin.api.v1.UserResponse.creation_date:type_name -> google.protobuf.Timestamp - 76, // 18: caos.zitadel.admin.api.v1.UserResponse.change_date:type_name -> google.protobuf.Timestamp + 79, // 17: caos.zitadel.admin.api.v1.UserResponse.creation_date:type_name -> google.protobuf.Timestamp + 79, // 18: caos.zitadel.admin.api.v1.UserResponse.change_date:type_name -> google.protobuf.Timestamp 26, // 19: caos.zitadel.admin.api.v1.UserResponse.human:type_name -> caos.zitadel.admin.api.v1.HumanResponse 27, // 20: caos.zitadel.admin.api.v1.UserResponse.machine:type_name -> caos.zitadel.admin.api.v1.MachineResponse 4, // 21: caos.zitadel.admin.api.v1.HumanResponse.gender:type_name -> caos.zitadel.admin.api.v1.Gender 28, // 22: caos.zitadel.admin.api.v1.MachineResponse.keys:type_name -> caos.zitadel.admin.api.v1.MachineKeyResponse 5, // 23: caos.zitadel.admin.api.v1.MachineKeyResponse.type:type_name -> caos.zitadel.admin.api.v1.MachineKeyType - 76, // 24: caos.zitadel.admin.api.v1.MachineKeyResponse.creation_date:type_name -> google.protobuf.Timestamp - 76, // 25: caos.zitadel.admin.api.v1.MachineKeyResponse.expiration_date:type_name -> google.protobuf.Timestamp - 76, // 26: caos.zitadel.admin.api.v1.OrgIamPolicy.creation_date:type_name -> google.protobuf.Timestamp - 76, // 27: caos.zitadel.admin.api.v1.OrgIamPolicy.change_date:type_name -> google.protobuf.Timestamp - 76, // 28: caos.zitadel.admin.api.v1.OrgIamPolicyView.creation_date:type_name -> google.protobuf.Timestamp - 76, // 29: caos.zitadel.admin.api.v1.OrgIamPolicyView.change_date:type_name -> google.protobuf.Timestamp - 76, // 30: caos.zitadel.admin.api.v1.IamMember.change_date:type_name -> google.protobuf.Timestamp - 76, // 31: caos.zitadel.admin.api.v1.IamMember.creation_date:type_name -> google.protobuf.Timestamp + 79, // 24: caos.zitadel.admin.api.v1.MachineKeyResponse.creation_date:type_name -> google.protobuf.Timestamp + 79, // 25: caos.zitadel.admin.api.v1.MachineKeyResponse.expiration_date:type_name -> google.protobuf.Timestamp + 79, // 26: caos.zitadel.admin.api.v1.OrgIamPolicy.creation_date:type_name -> google.protobuf.Timestamp + 79, // 27: caos.zitadel.admin.api.v1.OrgIamPolicy.change_date:type_name -> google.protobuf.Timestamp + 79, // 28: caos.zitadel.admin.api.v1.OrgIamPolicyView.creation_date:type_name -> google.protobuf.Timestamp + 79, // 29: caos.zitadel.admin.api.v1.OrgIamPolicyView.change_date:type_name -> google.protobuf.Timestamp + 79, // 30: caos.zitadel.admin.api.v1.IamMember.change_date:type_name -> google.protobuf.Timestamp + 79, // 31: caos.zitadel.admin.api.v1.IamMember.creation_date:type_name -> google.protobuf.Timestamp 40, // 32: caos.zitadel.admin.api.v1.IamMemberSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IamMemberView - 76, // 33: caos.zitadel.admin.api.v1.IamMemberSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp - 76, // 34: caos.zitadel.admin.api.v1.IamMemberView.change_date:type_name -> google.protobuf.Timestamp - 76, // 35: caos.zitadel.admin.api.v1.IamMemberView.creation_date:type_name -> google.protobuf.Timestamp + 79, // 33: caos.zitadel.admin.api.v1.IamMemberSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 79, // 34: caos.zitadel.admin.api.v1.IamMemberView.change_date:type_name -> google.protobuf.Timestamp + 79, // 35: caos.zitadel.admin.api.v1.IamMemberView.creation_date:type_name -> google.protobuf.Timestamp 42, // 36: caos.zitadel.admin.api.v1.IamMemberSearchRequest.queries:type_name -> caos.zitadel.admin.api.v1.IamMemberSearchQuery 6, // 37: caos.zitadel.admin.api.v1.IamMemberSearchQuery.key:type_name -> caos.zitadel.admin.api.v1.IamMemberSearchKey 7, // 38: caos.zitadel.admin.api.v1.IamMemberSearchQuery.method:type_name -> caos.zitadel.admin.api.v1.SearchMethod 45, // 39: caos.zitadel.admin.api.v1.FailedEvents.failed_events:type_name -> caos.zitadel.admin.api.v1.FailedEvent 48, // 40: caos.zitadel.admin.api.v1.Views.views:type_name -> caos.zitadel.admin.api.v1.View - 76, // 41: caos.zitadel.admin.api.v1.View.view_timestamp:type_name -> google.protobuf.Timestamp + 79, // 41: caos.zitadel.admin.api.v1.View.view_timestamp:type_name -> google.protobuf.Timestamp 9, // 42: caos.zitadel.admin.api.v1.Idp.state:type_name -> caos.zitadel.admin.api.v1.IdpState - 76, // 43: caos.zitadel.admin.api.v1.Idp.creation_date:type_name -> google.protobuf.Timestamp - 76, // 44: caos.zitadel.admin.api.v1.Idp.change_date:type_name -> google.protobuf.Timestamp + 79, // 43: caos.zitadel.admin.api.v1.Idp.creation_date:type_name -> google.protobuf.Timestamp + 79, // 44: caos.zitadel.admin.api.v1.Idp.change_date:type_name -> google.protobuf.Timestamp 8, // 45: caos.zitadel.admin.api.v1.Idp.styling_type:type_name -> caos.zitadel.admin.api.v1.IdpStylingType 52, // 46: caos.zitadel.admin.api.v1.Idp.oidc_config:type_name -> caos.zitadel.admin.api.v1.OidcIdpConfig 8, // 47: caos.zitadel.admin.api.v1.IdpUpdate.styling_type:type_name -> caos.zitadel.admin.api.v1.IdpStylingType @@ -6889,10 +7145,10 @@ var file_admin_proto_depIdxs = []int32{ 10, // 51: caos.zitadel.admin.api.v1.OidcIdpConfigUpdate.idp_display_name_mapping:type_name -> caos.zitadel.admin.api.v1.OIDCMappingField 10, // 52: caos.zitadel.admin.api.v1.OidcIdpConfigUpdate.username_mapping:type_name -> caos.zitadel.admin.api.v1.OIDCMappingField 56, // 53: caos.zitadel.admin.api.v1.IdpSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IdpView - 76, // 54: caos.zitadel.admin.api.v1.IdpSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 79, // 54: caos.zitadel.admin.api.v1.IdpSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp 9, // 55: caos.zitadel.admin.api.v1.IdpView.state:type_name -> caos.zitadel.admin.api.v1.IdpState - 76, // 56: caos.zitadel.admin.api.v1.IdpView.creation_date:type_name -> google.protobuf.Timestamp - 76, // 57: caos.zitadel.admin.api.v1.IdpView.change_date:type_name -> google.protobuf.Timestamp + 79, // 56: caos.zitadel.admin.api.v1.IdpView.creation_date:type_name -> google.protobuf.Timestamp + 79, // 57: caos.zitadel.admin.api.v1.IdpView.change_date:type_name -> google.protobuf.Timestamp 8, // 58: caos.zitadel.admin.api.v1.IdpView.styling_type:type_name -> caos.zitadel.admin.api.v1.IdpStylingType 57, // 59: caos.zitadel.admin.api.v1.IdpView.oidc_config:type_name -> caos.zitadel.admin.api.v1.OidcIdpConfigView 10, // 60: caos.zitadel.admin.api.v1.OidcIdpConfigView.idp_display_name_mapping:type_name -> caos.zitadel.admin.api.v1.OIDCMappingField @@ -6900,112 +7156,120 @@ var file_admin_proto_depIdxs = []int32{ 59, // 62: caos.zitadel.admin.api.v1.IdpSearchRequest.queries:type_name -> caos.zitadel.admin.api.v1.IdpSearchQuery 11, // 63: caos.zitadel.admin.api.v1.IdpSearchQuery.key:type_name -> caos.zitadel.admin.api.v1.IdpSearchKey 7, // 64: caos.zitadel.admin.api.v1.IdpSearchQuery.method:type_name -> caos.zitadel.admin.api.v1.SearchMethod - 76, // 65: caos.zitadel.admin.api.v1.DefaultLoginPolicy.creation_date:type_name -> google.protobuf.Timestamp - 76, // 66: caos.zitadel.admin.api.v1.DefaultLoginPolicy.change_date:type_name -> google.protobuf.Timestamp - 76, // 67: caos.zitadel.admin.api.v1.DefaultLoginPolicyView.creation_date:type_name -> google.protobuf.Timestamp - 76, // 68: caos.zitadel.admin.api.v1.DefaultLoginPolicyView.change_date:type_name -> google.protobuf.Timestamp - 12, // 69: caos.zitadel.admin.api.v1.IdpProviderView.type:type_name -> caos.zitadel.admin.api.v1.IdpType - 64, // 70: caos.zitadel.admin.api.v1.IdpProviderSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IdpProviderView - 76, // 71: caos.zitadel.admin.api.v1.IdpProviderSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp - 76, // 72: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicy.creation_date:type_name -> google.protobuf.Timestamp - 76, // 73: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicy.change_date:type_name -> google.protobuf.Timestamp - 76, // 74: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicyView.creation_date:type_name -> google.protobuf.Timestamp - 76, // 75: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicyView.change_date:type_name -> google.protobuf.Timestamp - 76, // 76: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicy.creation_date:type_name -> google.protobuf.Timestamp - 76, // 77: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicy.change_date:type_name -> google.protobuf.Timestamp - 76, // 78: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicyView.creation_date:type_name -> google.protobuf.Timestamp - 76, // 79: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicyView.change_date:type_name -> google.protobuf.Timestamp - 76, // 80: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicy.creation_date:type_name -> google.protobuf.Timestamp - 76, // 81: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicy.change_date:type_name -> google.protobuf.Timestamp - 76, // 82: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicyView.creation_date:type_name -> google.protobuf.Timestamp - 76, // 83: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicyView.change_date:type_name -> google.protobuf.Timestamp - 77, // 84: caos.zitadel.admin.api.v1.AdminService.Healthz:input_type -> google.protobuf.Empty - 77, // 85: caos.zitadel.admin.api.v1.AdminService.Ready:input_type -> google.protobuf.Empty - 77, // 86: caos.zitadel.admin.api.v1.AdminService.Validate:input_type -> google.protobuf.Empty - 14, // 87: caos.zitadel.admin.api.v1.AdminService.IsOrgUnique:input_type -> caos.zitadel.admin.api.v1.UniqueOrgRequest - 13, // 88: caos.zitadel.admin.api.v1.AdminService.GetOrgByID:input_type -> caos.zitadel.admin.api.v1.OrgID - 17, // 89: caos.zitadel.admin.api.v1.AdminService.SearchOrgs:input_type -> caos.zitadel.admin.api.v1.OrgSearchRequest - 20, // 90: caos.zitadel.admin.api.v1.AdminService.SetUpOrg:input_type -> caos.zitadel.admin.api.v1.OrgSetUpRequest - 77, // 91: caos.zitadel.admin.api.v1.AdminService.GetDefaultOrgIamPolicy:input_type -> google.protobuf.Empty - 32, // 92: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyRequest - 33, // 93: caos.zitadel.admin.api.v1.AdminService.GetOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyID - 32, // 94: caos.zitadel.admin.api.v1.AdminService.CreateOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyRequest - 32, // 95: caos.zitadel.admin.api.v1.AdminService.UpdateOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyRequest - 33, // 96: caos.zitadel.admin.api.v1.AdminService.RemoveOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyID - 77, // 97: caos.zitadel.admin.api.v1.AdminService.GetIamMemberRoles:input_type -> google.protobuf.Empty - 36, // 98: caos.zitadel.admin.api.v1.AdminService.AddIamMember:input_type -> caos.zitadel.admin.api.v1.AddIamMemberRequest - 37, // 99: caos.zitadel.admin.api.v1.AdminService.ChangeIamMember:input_type -> caos.zitadel.admin.api.v1.ChangeIamMemberRequest - 38, // 100: caos.zitadel.admin.api.v1.AdminService.RemoveIamMember:input_type -> caos.zitadel.admin.api.v1.RemoveIamMemberRequest - 41, // 101: caos.zitadel.admin.api.v1.AdminService.SearchIamMembers:input_type -> caos.zitadel.admin.api.v1.IamMemberSearchRequest - 77, // 102: caos.zitadel.admin.api.v1.AdminService.GetViews:input_type -> google.protobuf.Empty - 46, // 103: caos.zitadel.admin.api.v1.AdminService.ClearView:input_type -> caos.zitadel.admin.api.v1.ViewID - 77, // 104: caos.zitadel.admin.api.v1.AdminService.GetFailedEvents:input_type -> google.protobuf.Empty - 43, // 105: caos.zitadel.admin.api.v1.AdminService.RemoveFailedEvent:input_type -> caos.zitadel.admin.api.v1.FailedEventID - 49, // 106: caos.zitadel.admin.api.v1.AdminService.IdpByID:input_type -> caos.zitadel.admin.api.v1.IdpID - 53, // 107: caos.zitadel.admin.api.v1.AdminService.CreateOidcIdp:input_type -> caos.zitadel.admin.api.v1.OidcIdpConfigCreate - 51, // 108: caos.zitadel.admin.api.v1.AdminService.UpdateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpUpdate - 49, // 109: caos.zitadel.admin.api.v1.AdminService.DeactivateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID - 49, // 110: caos.zitadel.admin.api.v1.AdminService.ReactivateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID - 49, // 111: caos.zitadel.admin.api.v1.AdminService.RemoveIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID - 54, // 112: caos.zitadel.admin.api.v1.AdminService.UpdateOidcIdpConfig:input_type -> caos.zitadel.admin.api.v1.OidcIdpConfigUpdate - 58, // 113: caos.zitadel.admin.api.v1.AdminService.SearchIdps:input_type -> caos.zitadel.admin.api.v1.IdpSearchRequest - 77, // 114: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicy:input_type -> google.protobuf.Empty - 61, // 115: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicyRequest - 66, // 116: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicyIdpProviders:input_type -> caos.zitadel.admin.api.v1.IdpProviderSearchRequest - 62, // 117: caos.zitadel.admin.api.v1.AdminService.AddIdpProviderToDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.IdpProviderID - 62, // 118: caos.zitadel.admin.api.v1.AdminService.RemoveIdpProviderFromDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.IdpProviderID - 77, // 119: caos.zitadel.admin.api.v1.AdminService.GetDefaultPasswordComplexityPolicy:input_type -> google.protobuf.Empty - 68, // 120: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultPasswordComplexityPolicy:input_type -> caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicyRequest - 77, // 121: caos.zitadel.admin.api.v1.AdminService.GetDefaultPasswordAgePolicy:input_type -> google.protobuf.Empty - 71, // 122: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultPasswordAgePolicy:input_type -> caos.zitadel.admin.api.v1.DefaultPasswordAgePolicyRequest - 77, // 123: caos.zitadel.admin.api.v1.AdminService.GetDefaultPasswordLockoutPolicy:input_type -> google.protobuf.Empty - 74, // 124: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultPasswordLockoutPolicy:input_type -> caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicyRequest - 77, // 125: caos.zitadel.admin.api.v1.AdminService.Healthz:output_type -> google.protobuf.Empty - 77, // 126: caos.zitadel.admin.api.v1.AdminService.Ready:output_type -> google.protobuf.Empty - 78, // 127: caos.zitadel.admin.api.v1.AdminService.Validate:output_type -> google.protobuf.Struct - 15, // 128: caos.zitadel.admin.api.v1.AdminService.IsOrgUnique:output_type -> caos.zitadel.admin.api.v1.UniqueOrgResponse - 16, // 129: caos.zitadel.admin.api.v1.AdminService.GetOrgByID:output_type -> caos.zitadel.admin.api.v1.Org - 19, // 130: caos.zitadel.admin.api.v1.AdminService.SearchOrgs:output_type -> caos.zitadel.admin.api.v1.OrgSearchResponse - 21, // 131: caos.zitadel.admin.api.v1.AdminService.SetUpOrg:output_type -> caos.zitadel.admin.api.v1.OrgSetUpResponse - 31, // 132: caos.zitadel.admin.api.v1.AdminService.GetDefaultOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicyView - 30, // 133: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy - 31, // 134: caos.zitadel.admin.api.v1.AdminService.GetOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicyView - 30, // 135: caos.zitadel.admin.api.v1.AdminService.CreateOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy - 30, // 136: caos.zitadel.admin.api.v1.AdminService.UpdateOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy - 77, // 137: caos.zitadel.admin.api.v1.AdminService.RemoveOrgIamPolicy:output_type -> google.protobuf.Empty - 34, // 138: caos.zitadel.admin.api.v1.AdminService.GetIamMemberRoles:output_type -> caos.zitadel.admin.api.v1.IamMemberRoles - 35, // 139: caos.zitadel.admin.api.v1.AdminService.AddIamMember:output_type -> caos.zitadel.admin.api.v1.IamMember - 35, // 140: caos.zitadel.admin.api.v1.AdminService.ChangeIamMember:output_type -> caos.zitadel.admin.api.v1.IamMember - 77, // 141: caos.zitadel.admin.api.v1.AdminService.RemoveIamMember:output_type -> google.protobuf.Empty - 39, // 142: caos.zitadel.admin.api.v1.AdminService.SearchIamMembers:output_type -> caos.zitadel.admin.api.v1.IamMemberSearchResponse - 47, // 143: caos.zitadel.admin.api.v1.AdminService.GetViews:output_type -> caos.zitadel.admin.api.v1.Views - 77, // 144: caos.zitadel.admin.api.v1.AdminService.ClearView:output_type -> google.protobuf.Empty - 44, // 145: caos.zitadel.admin.api.v1.AdminService.GetFailedEvents:output_type -> caos.zitadel.admin.api.v1.FailedEvents - 77, // 146: caos.zitadel.admin.api.v1.AdminService.RemoveFailedEvent:output_type -> google.protobuf.Empty - 56, // 147: caos.zitadel.admin.api.v1.AdminService.IdpByID:output_type -> caos.zitadel.admin.api.v1.IdpView - 50, // 148: caos.zitadel.admin.api.v1.AdminService.CreateOidcIdp:output_type -> caos.zitadel.admin.api.v1.Idp - 50, // 149: caos.zitadel.admin.api.v1.AdminService.UpdateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp - 50, // 150: caos.zitadel.admin.api.v1.AdminService.DeactivateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp - 50, // 151: caos.zitadel.admin.api.v1.AdminService.ReactivateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp - 77, // 152: caos.zitadel.admin.api.v1.AdminService.RemoveIdpConfig:output_type -> google.protobuf.Empty - 52, // 153: caos.zitadel.admin.api.v1.AdminService.UpdateOidcIdpConfig:output_type -> caos.zitadel.admin.api.v1.OidcIdpConfig - 55, // 154: caos.zitadel.admin.api.v1.AdminService.SearchIdps:output_type -> caos.zitadel.admin.api.v1.IdpSearchResponse - 63, // 155: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicyView - 60, // 156: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicy - 65, // 157: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicyIdpProviders:output_type -> caos.zitadel.admin.api.v1.IdpProviderSearchResponse - 62, // 158: caos.zitadel.admin.api.v1.AdminService.AddIdpProviderToDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.IdpProviderID - 77, // 159: caos.zitadel.admin.api.v1.AdminService.RemoveIdpProviderFromDefaultLoginPolicy:output_type -> google.protobuf.Empty - 69, // 160: caos.zitadel.admin.api.v1.AdminService.GetDefaultPasswordComplexityPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicyView - 67, // 161: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultPasswordComplexityPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicy - 72, // 162: caos.zitadel.admin.api.v1.AdminService.GetDefaultPasswordAgePolicy:output_type -> caos.zitadel.admin.api.v1.DefaultPasswordAgePolicyView - 70, // 163: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultPasswordAgePolicy:output_type -> caos.zitadel.admin.api.v1.DefaultPasswordAgePolicy - 75, // 164: caos.zitadel.admin.api.v1.AdminService.GetDefaultPasswordLockoutPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicyView - 73, // 165: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultPasswordLockoutPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicy - 125, // [125:166] is the sub-list for method output_type - 84, // [84:125] is the sub-list for method input_type - 84, // [84:84] is the sub-list for extension type_name - 84, // [84:84] is the sub-list for extension extendee - 0, // [0:84] is the sub-list for field type_name + 79, // 65: caos.zitadel.admin.api.v1.DefaultLabelPolicy.creation_date:type_name -> google.protobuf.Timestamp + 79, // 66: caos.zitadel.admin.api.v1.DefaultLabelPolicy.change_date:type_name -> google.protobuf.Timestamp + 79, // 67: caos.zitadel.admin.api.v1.DefaultLabelPolicyView.creation_date:type_name -> google.protobuf.Timestamp + 79, // 68: caos.zitadel.admin.api.v1.DefaultLabelPolicyView.change_date:type_name -> google.protobuf.Timestamp + 79, // 69: caos.zitadel.admin.api.v1.DefaultLoginPolicy.creation_date:type_name -> google.protobuf.Timestamp + 79, // 70: caos.zitadel.admin.api.v1.DefaultLoginPolicy.change_date:type_name -> google.protobuf.Timestamp + 79, // 71: caos.zitadel.admin.api.v1.DefaultLoginPolicyView.creation_date:type_name -> google.protobuf.Timestamp + 79, // 72: caos.zitadel.admin.api.v1.DefaultLoginPolicyView.change_date:type_name -> google.protobuf.Timestamp + 12, // 73: caos.zitadel.admin.api.v1.IdpProviderView.type:type_name -> caos.zitadel.admin.api.v1.IdpType + 67, // 74: caos.zitadel.admin.api.v1.IdpProviderSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IdpProviderView + 79, // 75: caos.zitadel.admin.api.v1.IdpProviderSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 79, // 76: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicy.creation_date:type_name -> google.protobuf.Timestamp + 79, // 77: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicy.change_date:type_name -> google.protobuf.Timestamp + 79, // 78: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicyView.creation_date:type_name -> google.protobuf.Timestamp + 79, // 79: caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicyView.change_date:type_name -> google.protobuf.Timestamp + 79, // 80: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicy.creation_date:type_name -> google.protobuf.Timestamp + 79, // 81: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicy.change_date:type_name -> google.protobuf.Timestamp + 79, // 82: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicyView.creation_date:type_name -> google.protobuf.Timestamp + 79, // 83: caos.zitadel.admin.api.v1.DefaultPasswordAgePolicyView.change_date:type_name -> google.protobuf.Timestamp + 79, // 84: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicy.creation_date:type_name -> google.protobuf.Timestamp + 79, // 85: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicy.change_date:type_name -> google.protobuf.Timestamp + 79, // 86: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicyView.creation_date:type_name -> google.protobuf.Timestamp + 79, // 87: caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicyView.change_date:type_name -> google.protobuf.Timestamp + 80, // 88: caos.zitadel.admin.api.v1.AdminService.Healthz:input_type -> google.protobuf.Empty + 80, // 89: caos.zitadel.admin.api.v1.AdminService.Ready:input_type -> google.protobuf.Empty + 80, // 90: caos.zitadel.admin.api.v1.AdminService.Validate:input_type -> google.protobuf.Empty + 14, // 91: caos.zitadel.admin.api.v1.AdminService.IsOrgUnique:input_type -> caos.zitadel.admin.api.v1.UniqueOrgRequest + 13, // 92: caos.zitadel.admin.api.v1.AdminService.GetOrgByID:input_type -> caos.zitadel.admin.api.v1.OrgID + 17, // 93: caos.zitadel.admin.api.v1.AdminService.SearchOrgs:input_type -> caos.zitadel.admin.api.v1.OrgSearchRequest + 20, // 94: caos.zitadel.admin.api.v1.AdminService.SetUpOrg:input_type -> caos.zitadel.admin.api.v1.OrgSetUpRequest + 80, // 95: caos.zitadel.admin.api.v1.AdminService.GetDefaultOrgIamPolicy:input_type -> google.protobuf.Empty + 32, // 96: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyRequest + 33, // 97: caos.zitadel.admin.api.v1.AdminService.GetOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyID + 32, // 98: caos.zitadel.admin.api.v1.AdminService.CreateOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyRequest + 32, // 99: caos.zitadel.admin.api.v1.AdminService.UpdateOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyRequest + 33, // 100: caos.zitadel.admin.api.v1.AdminService.RemoveOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyID + 80, // 101: caos.zitadel.admin.api.v1.AdminService.GetIamMemberRoles:input_type -> google.protobuf.Empty + 36, // 102: caos.zitadel.admin.api.v1.AdminService.AddIamMember:input_type -> caos.zitadel.admin.api.v1.AddIamMemberRequest + 37, // 103: caos.zitadel.admin.api.v1.AdminService.ChangeIamMember:input_type -> caos.zitadel.admin.api.v1.ChangeIamMemberRequest + 38, // 104: caos.zitadel.admin.api.v1.AdminService.RemoveIamMember:input_type -> caos.zitadel.admin.api.v1.RemoveIamMemberRequest + 41, // 105: caos.zitadel.admin.api.v1.AdminService.SearchIamMembers:input_type -> caos.zitadel.admin.api.v1.IamMemberSearchRequest + 80, // 106: caos.zitadel.admin.api.v1.AdminService.GetViews:input_type -> google.protobuf.Empty + 46, // 107: caos.zitadel.admin.api.v1.AdminService.ClearView:input_type -> caos.zitadel.admin.api.v1.ViewID + 80, // 108: caos.zitadel.admin.api.v1.AdminService.GetFailedEvents:input_type -> google.protobuf.Empty + 43, // 109: caos.zitadel.admin.api.v1.AdminService.RemoveFailedEvent:input_type -> caos.zitadel.admin.api.v1.FailedEventID + 49, // 110: caos.zitadel.admin.api.v1.AdminService.IdpByID:input_type -> caos.zitadel.admin.api.v1.IdpID + 53, // 111: caos.zitadel.admin.api.v1.AdminService.CreateOidcIdp:input_type -> caos.zitadel.admin.api.v1.OidcIdpConfigCreate + 51, // 112: caos.zitadel.admin.api.v1.AdminService.UpdateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpUpdate + 49, // 113: caos.zitadel.admin.api.v1.AdminService.DeactivateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID + 49, // 114: caos.zitadel.admin.api.v1.AdminService.ReactivateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID + 49, // 115: caos.zitadel.admin.api.v1.AdminService.RemoveIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID + 54, // 116: caos.zitadel.admin.api.v1.AdminService.UpdateOidcIdpConfig:input_type -> caos.zitadel.admin.api.v1.OidcIdpConfigUpdate + 58, // 117: caos.zitadel.admin.api.v1.AdminService.SearchIdps:input_type -> caos.zitadel.admin.api.v1.IdpSearchRequest + 80, // 118: caos.zitadel.admin.api.v1.AdminService.GetDefaultLabelPolicy:input_type -> google.protobuf.Empty + 61, // 119: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultLabelPolicy:input_type -> caos.zitadel.admin.api.v1.DefaultLabelPolicyUpdate + 80, // 120: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicy:input_type -> google.protobuf.Empty + 64, // 121: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicyRequest + 69, // 122: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicyIdpProviders:input_type -> caos.zitadel.admin.api.v1.IdpProviderSearchRequest + 65, // 123: caos.zitadel.admin.api.v1.AdminService.AddIdpProviderToDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.IdpProviderID + 65, // 124: caos.zitadel.admin.api.v1.AdminService.RemoveIdpProviderFromDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.IdpProviderID + 80, // 125: caos.zitadel.admin.api.v1.AdminService.GetDefaultPasswordComplexityPolicy:input_type -> google.protobuf.Empty + 71, // 126: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultPasswordComplexityPolicy:input_type -> caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicyRequest + 80, // 127: caos.zitadel.admin.api.v1.AdminService.GetDefaultPasswordAgePolicy:input_type -> google.protobuf.Empty + 74, // 128: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultPasswordAgePolicy:input_type -> caos.zitadel.admin.api.v1.DefaultPasswordAgePolicyRequest + 80, // 129: caos.zitadel.admin.api.v1.AdminService.GetDefaultPasswordLockoutPolicy:input_type -> google.protobuf.Empty + 77, // 130: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultPasswordLockoutPolicy:input_type -> caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicyRequest + 80, // 131: caos.zitadel.admin.api.v1.AdminService.Healthz:output_type -> google.protobuf.Empty + 80, // 132: caos.zitadel.admin.api.v1.AdminService.Ready:output_type -> google.protobuf.Empty + 81, // 133: caos.zitadel.admin.api.v1.AdminService.Validate:output_type -> google.protobuf.Struct + 15, // 134: caos.zitadel.admin.api.v1.AdminService.IsOrgUnique:output_type -> caos.zitadel.admin.api.v1.UniqueOrgResponse + 16, // 135: caos.zitadel.admin.api.v1.AdminService.GetOrgByID:output_type -> caos.zitadel.admin.api.v1.Org + 19, // 136: caos.zitadel.admin.api.v1.AdminService.SearchOrgs:output_type -> caos.zitadel.admin.api.v1.OrgSearchResponse + 21, // 137: caos.zitadel.admin.api.v1.AdminService.SetUpOrg:output_type -> caos.zitadel.admin.api.v1.OrgSetUpResponse + 31, // 138: caos.zitadel.admin.api.v1.AdminService.GetDefaultOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicyView + 30, // 139: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy + 31, // 140: caos.zitadel.admin.api.v1.AdminService.GetOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicyView + 30, // 141: caos.zitadel.admin.api.v1.AdminService.CreateOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy + 30, // 142: caos.zitadel.admin.api.v1.AdminService.UpdateOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy + 80, // 143: caos.zitadel.admin.api.v1.AdminService.RemoveOrgIamPolicy:output_type -> google.protobuf.Empty + 34, // 144: caos.zitadel.admin.api.v1.AdminService.GetIamMemberRoles:output_type -> caos.zitadel.admin.api.v1.IamMemberRoles + 35, // 145: caos.zitadel.admin.api.v1.AdminService.AddIamMember:output_type -> caos.zitadel.admin.api.v1.IamMember + 35, // 146: caos.zitadel.admin.api.v1.AdminService.ChangeIamMember:output_type -> caos.zitadel.admin.api.v1.IamMember + 80, // 147: caos.zitadel.admin.api.v1.AdminService.RemoveIamMember:output_type -> google.protobuf.Empty + 39, // 148: caos.zitadel.admin.api.v1.AdminService.SearchIamMembers:output_type -> caos.zitadel.admin.api.v1.IamMemberSearchResponse + 47, // 149: caos.zitadel.admin.api.v1.AdminService.GetViews:output_type -> caos.zitadel.admin.api.v1.Views + 80, // 150: caos.zitadel.admin.api.v1.AdminService.ClearView:output_type -> google.protobuf.Empty + 44, // 151: caos.zitadel.admin.api.v1.AdminService.GetFailedEvents:output_type -> caos.zitadel.admin.api.v1.FailedEvents + 80, // 152: caos.zitadel.admin.api.v1.AdminService.RemoveFailedEvent:output_type -> google.protobuf.Empty + 56, // 153: caos.zitadel.admin.api.v1.AdminService.IdpByID:output_type -> caos.zitadel.admin.api.v1.IdpView + 50, // 154: caos.zitadel.admin.api.v1.AdminService.CreateOidcIdp:output_type -> caos.zitadel.admin.api.v1.Idp + 50, // 155: caos.zitadel.admin.api.v1.AdminService.UpdateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp + 50, // 156: caos.zitadel.admin.api.v1.AdminService.DeactivateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp + 50, // 157: caos.zitadel.admin.api.v1.AdminService.ReactivateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp + 80, // 158: caos.zitadel.admin.api.v1.AdminService.RemoveIdpConfig:output_type -> google.protobuf.Empty + 52, // 159: caos.zitadel.admin.api.v1.AdminService.UpdateOidcIdpConfig:output_type -> caos.zitadel.admin.api.v1.OidcIdpConfig + 55, // 160: caos.zitadel.admin.api.v1.AdminService.SearchIdps:output_type -> caos.zitadel.admin.api.v1.IdpSearchResponse + 62, // 161: caos.zitadel.admin.api.v1.AdminService.GetDefaultLabelPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultLabelPolicyView + 60, // 162: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultLabelPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultLabelPolicy + 66, // 163: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicyView + 63, // 164: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicy + 68, // 165: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicyIdpProviders:output_type -> caos.zitadel.admin.api.v1.IdpProviderSearchResponse + 65, // 166: caos.zitadel.admin.api.v1.AdminService.AddIdpProviderToDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.IdpProviderID + 80, // 167: caos.zitadel.admin.api.v1.AdminService.RemoveIdpProviderFromDefaultLoginPolicy:output_type -> google.protobuf.Empty + 72, // 168: caos.zitadel.admin.api.v1.AdminService.GetDefaultPasswordComplexityPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicyView + 70, // 169: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultPasswordComplexityPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultPasswordComplexityPolicy + 75, // 170: caos.zitadel.admin.api.v1.AdminService.GetDefaultPasswordAgePolicy:output_type -> caos.zitadel.admin.api.v1.DefaultPasswordAgePolicyView + 73, // 171: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultPasswordAgePolicy:output_type -> caos.zitadel.admin.api.v1.DefaultPasswordAgePolicy + 78, // 172: caos.zitadel.admin.api.v1.AdminService.GetDefaultPasswordLockoutPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicyView + 76, // 173: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultPasswordLockoutPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultPasswordLockoutPolicy + 131, // [131:174] is the sub-list for method output_type + 88, // [88:131] is the sub-list for method input_type + 88, // [88:88] is the sub-list for extension type_name + 88, // [88:88] is the sub-list for extension extendee + 0, // [0:88] is the sub-list for field type_name } func init() { file_admin_proto_init() } @@ -7579,7 +7843,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultLoginPolicy); i { + switch v := v.(*DefaultLabelPolicy); i { case 0: return &v.state case 1: @@ -7591,7 +7855,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultLoginPolicyRequest); i { + switch v := v.(*DefaultLabelPolicyUpdate); i { case 0: return &v.state case 1: @@ -7603,7 +7867,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IdpProviderID); i { + switch v := v.(*DefaultLabelPolicyView); i { case 0: return &v.state case 1: @@ -7615,7 +7879,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultLoginPolicyView); i { + switch v := v.(*DefaultLoginPolicy); i { case 0: return &v.state case 1: @@ -7627,7 +7891,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IdpProviderView); i { + switch v := v.(*DefaultLoginPolicyRequest); i { case 0: return &v.state case 1: @@ -7639,7 +7903,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IdpProviderSearchResponse); i { + switch v := v.(*IdpProviderID); i { case 0: return &v.state case 1: @@ -7651,7 +7915,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IdpProviderSearchRequest); i { + switch v := v.(*DefaultLoginPolicyView); i { case 0: return &v.state case 1: @@ -7663,7 +7927,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultPasswordComplexityPolicy); i { + switch v := v.(*IdpProviderView); i { case 0: return &v.state case 1: @@ -7675,7 +7939,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultPasswordComplexityPolicyRequest); i { + switch v := v.(*IdpProviderSearchResponse); i { case 0: return &v.state case 1: @@ -7687,7 +7951,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultPasswordComplexityPolicyView); i { + switch v := v.(*IdpProviderSearchRequest); i { case 0: return &v.state case 1: @@ -7699,7 +7963,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultPasswordAgePolicy); i { + switch v := v.(*DefaultPasswordComplexityPolicy); i { case 0: return &v.state case 1: @@ -7711,7 +7975,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultPasswordAgePolicyRequest); i { + switch v := v.(*DefaultPasswordComplexityPolicyRequest); i { case 0: return &v.state case 1: @@ -7723,7 +7987,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultPasswordAgePolicyView); i { + switch v := v.(*DefaultPasswordComplexityPolicyView); i { case 0: return &v.state case 1: @@ -7735,7 +7999,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultPasswordLockoutPolicy); i { + switch v := v.(*DefaultPasswordAgePolicy); i { case 0: return &v.state case 1: @@ -7747,7 +8011,7 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultPasswordLockoutPolicyRequest); i { + switch v := v.(*DefaultPasswordAgePolicyRequest); i { case 0: return &v.state case 1: @@ -7759,6 +8023,42 @@ func file_admin_proto_init() { } } file_admin_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DefaultPasswordAgePolicyView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DefaultPasswordLockoutPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DefaultPasswordLockoutPolicyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DefaultPasswordLockoutPolicyView); i { case 0: return &v.state @@ -7791,7 +8091,7 @@ func file_admin_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_admin_proto_rawDesc, NumEnums: 13, - NumMessages: 63, + NumMessages: 66, NumExtensions: 0, NumServices: 1, }, @@ -7852,6 +8152,8 @@ type AdminServiceClient interface { RemoveIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*empty.Empty, error) UpdateOidcIdpConfig(ctx context.Context, in *OidcIdpConfigUpdate, opts ...grpc.CallOption) (*OidcIdpConfig, error) SearchIdps(ctx context.Context, in *IdpSearchRequest, opts ...grpc.CallOption) (*IdpSearchResponse, error) + GetDefaultLabelPolicy(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*DefaultLabelPolicyView, error) + UpdateDefaultLabelPolicy(ctx context.Context, in *DefaultLabelPolicyUpdate, opts ...grpc.CallOption) (*DefaultLabelPolicy, error) GetDefaultLoginPolicy(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*DefaultLoginPolicyView, error) UpdateDefaultLoginPolicy(ctx context.Context, in *DefaultLoginPolicyRequest, opts ...grpc.CallOption) (*DefaultLoginPolicy, error) GetDefaultLoginPolicyIdpProviders(ctx context.Context, in *IdpProviderSearchRequest, opts ...grpc.CallOption) (*IdpProviderSearchResponse, error) @@ -8143,6 +8445,24 @@ func (c *adminServiceClient) SearchIdps(ctx context.Context, in *IdpSearchReques return out, nil } +func (c *adminServiceClient) GetDefaultLabelPolicy(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*DefaultLabelPolicyView, error) { + out := new(DefaultLabelPolicyView) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/GetDefaultLabelPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) UpdateDefaultLabelPolicy(ctx context.Context, in *DefaultLabelPolicyUpdate, opts ...grpc.CallOption) (*DefaultLabelPolicy, error) { + out := new(DefaultLabelPolicy) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/UpdateDefaultLabelPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *adminServiceClient) GetDefaultLoginPolicy(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*DefaultLoginPolicyView, error) { out := new(DefaultLoginPolicyView) err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/GetDefaultLoginPolicy", in, out, opts...) @@ -8278,6 +8598,8 @@ type AdminServiceServer interface { RemoveIdpConfig(context.Context, *IdpID) (*empty.Empty, error) UpdateOidcIdpConfig(context.Context, *OidcIdpConfigUpdate) (*OidcIdpConfig, error) SearchIdps(context.Context, *IdpSearchRequest) (*IdpSearchResponse, error) + GetDefaultLabelPolicy(context.Context, *empty.Empty) (*DefaultLabelPolicyView, error) + UpdateDefaultLabelPolicy(context.Context, *DefaultLabelPolicyUpdate) (*DefaultLabelPolicy, error) GetDefaultLoginPolicy(context.Context, *empty.Empty) (*DefaultLoginPolicyView, error) UpdateDefaultLoginPolicy(context.Context, *DefaultLoginPolicyRequest) (*DefaultLoginPolicy, error) GetDefaultLoginPolicyIdpProviders(context.Context, *IdpProviderSearchRequest) (*IdpProviderSearchResponse, error) @@ -8385,6 +8707,12 @@ func (*UnimplementedAdminServiceServer) UpdateOidcIdpConfig(context.Context, *Oi func (*UnimplementedAdminServiceServer) SearchIdps(context.Context, *IdpSearchRequest) (*IdpSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchIdps not implemented") } +func (*UnimplementedAdminServiceServer) GetDefaultLabelPolicy(context.Context, *empty.Empty) (*DefaultLabelPolicyView, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDefaultLabelPolicy not implemented") +} +func (*UnimplementedAdminServiceServer) UpdateDefaultLabelPolicy(context.Context, *DefaultLabelPolicyUpdate) (*DefaultLabelPolicy, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDefaultLabelPolicy not implemented") +} func (*UnimplementedAdminServiceServer) GetDefaultLoginPolicy(context.Context, *empty.Empty) (*DefaultLoginPolicyView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDefaultLoginPolicy not implemented") } @@ -8963,6 +9291,42 @@ func _AdminService_SearchIdps_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _AdminService_GetDefaultLabelPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(empty.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).GetDefaultLabelPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/GetDefaultLabelPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).GetDefaultLabelPolicy(ctx, req.(*empty.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_UpdateDefaultLabelPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DefaultLabelPolicyUpdate) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).UpdateDefaultLabelPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/UpdateDefaultLabelPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).UpdateDefaultLabelPolicy(ctx, req.(*DefaultLabelPolicyUpdate)) + } + return interceptor(ctx, in, info, handler) +} + func _AdminService_GetDefaultLoginPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(empty.Empty) if err := dec(in); err != nil { @@ -9285,6 +9649,14 @@ var _AdminService_serviceDesc = grpc.ServiceDesc{ MethodName: "SearchIdps", Handler: _AdminService_SearchIdps_Handler, }, + { + MethodName: "GetDefaultLabelPolicy", + Handler: _AdminService_GetDefaultLabelPolicy_Handler, + }, + { + MethodName: "UpdateDefaultLabelPolicy", + Handler: _AdminService_UpdateDefaultLabelPolicy_Handler, + }, { MethodName: "GetDefaultLoginPolicy", Handler: _AdminService_GetDefaultLoginPolicy_Handler, diff --git a/pkg/grpc/admin/admin.pb.gw.go b/pkg/grpc/admin/admin.pb.gw.go index 515520c710..7a0f6a7554 100644 --- a/pkg/grpc/admin/admin.pb.gw.go +++ b/pkg/grpc/admin/admin.pb.gw.go @@ -1420,6 +1420,58 @@ func local_request_AdminService_SearchIdps_0(ctx context.Context, marshaler runt } +func request_AdminService_GetDefaultLabelPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := client.GetDefaultLabelPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AdminService_GetDefaultLabelPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server AdminServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := server.GetDefaultLabelPolicy(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AdminService_UpdateDefaultLabelPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DefaultLabelPolicyUpdate + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateDefaultLabelPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AdminService_UpdateDefaultLabelPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server AdminServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DefaultLabelPolicyUpdate + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateDefaultLabelPolicy(ctx, &protoReq) + return msg, metadata, err + +} + func request_AdminService_GetDefaultLoginPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -2355,6 +2407,46 @@ func RegisterAdminServiceHandlerServer(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("GET", pattern_AdminService_GetDefaultLabelPolicy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AdminService_GetDefaultLabelPolicy_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetDefaultLabelPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_AdminService_UpdateDefaultLabelPolicy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AdminService_UpdateDefaultLabelPolicy_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_UpdateDefaultLabelPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_GetDefaultLoginPolicy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -3216,6 +3308,46 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("GET", pattern_AdminService_GetDefaultLabelPolicy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetDefaultLabelPolicy_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetDefaultLabelPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_AdminService_UpdateDefaultLabelPolicy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_UpdateDefaultLabelPolicy_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_UpdateDefaultLabelPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_GetDefaultLoginPolicy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -3500,6 +3632,10 @@ var ( pattern_AdminService_SearchIdps_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"idps", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_GetDefaultLabelPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"policies", "label"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_AdminService_UpdateDefaultLabelPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"policies", "label"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_GetDefaultLoginPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"policies", "login"}, "", runtime.AssumeColonVerbOpt(true))) pattern_AdminService_UpdateDefaultLoginPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"policies", "login"}, "", runtime.AssumeColonVerbOpt(true))) @@ -3584,6 +3720,10 @@ var ( forward_AdminService_SearchIdps_0 = runtime.ForwardResponseMessage + forward_AdminService_GetDefaultLabelPolicy_0 = runtime.ForwardResponseMessage + + forward_AdminService_UpdateDefaultLabelPolicy_0 = runtime.ForwardResponseMessage + forward_AdminService_GetDefaultLoginPolicy_0 = runtime.ForwardResponseMessage forward_AdminService_UpdateDefaultLoginPolicy_0 = runtime.ForwardResponseMessage diff --git a/pkg/grpc/admin/admin.pb.validate.go b/pkg/grpc/admin/admin.pb.validate.go index 50a6f88cbf..2dbe519cdc 100644 --- a/pkg/grpc/admin/admin.pb.validate.go +++ b/pkg/grpc/admin/admin.pb.validate.go @@ -4209,6 +4209,259 @@ var _IdpSearchQuery_Key_NotInLookup = map[IdpSearchKey]struct{}{ 0: {}, } +// Validate checks the field values on DefaultLabelPolicy with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *DefaultLabelPolicy) Validate() error { + if m == nil { + return nil + } + + // no validation rules for PrimaryColor + + // no validation rules for SecondaryColor + + if v, ok := interface{}(m.GetCreationDate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DefaultLabelPolicyValidationError{ + field: "CreationDate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetChangeDate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DefaultLabelPolicyValidationError{ + field: "ChangeDate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// DefaultLabelPolicyValidationError is the validation error returned by +// DefaultLabelPolicy.Validate if the designated constraints aren't met. +type DefaultLabelPolicyValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DefaultLabelPolicyValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DefaultLabelPolicyValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DefaultLabelPolicyValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DefaultLabelPolicyValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DefaultLabelPolicyValidationError) ErrorName() string { + return "DefaultLabelPolicyValidationError" +} + +// Error satisfies the builtin error interface +func (e DefaultLabelPolicyValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDefaultLabelPolicy.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DefaultLabelPolicyValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DefaultLabelPolicyValidationError{} + +// Validate checks the field values on DefaultLabelPolicyUpdate with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *DefaultLabelPolicyUpdate) Validate() error { + if m == nil { + return nil + } + + // no validation rules for PrimaryColor + + // no validation rules for SecondaryColor + + return nil +} + +// DefaultLabelPolicyUpdateValidationError is the validation error returned by +// DefaultLabelPolicyUpdate.Validate if the designated constraints aren't met. +type DefaultLabelPolicyUpdateValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DefaultLabelPolicyUpdateValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DefaultLabelPolicyUpdateValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DefaultLabelPolicyUpdateValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DefaultLabelPolicyUpdateValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DefaultLabelPolicyUpdateValidationError) ErrorName() string { + return "DefaultLabelPolicyUpdateValidationError" +} + +// Error satisfies the builtin error interface +func (e DefaultLabelPolicyUpdateValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDefaultLabelPolicyUpdate.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DefaultLabelPolicyUpdateValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DefaultLabelPolicyUpdateValidationError{} + +// Validate checks the field values on DefaultLabelPolicyView with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *DefaultLabelPolicyView) Validate() error { + if m == nil { + return nil + } + + // no validation rules for PrimaryColor + + // no validation rules for SecondaryColor + + if v, ok := interface{}(m.GetCreationDate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DefaultLabelPolicyViewValidationError{ + field: "CreationDate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetChangeDate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DefaultLabelPolicyViewValidationError{ + field: "ChangeDate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// DefaultLabelPolicyViewValidationError is the validation error returned by +// DefaultLabelPolicyView.Validate if the designated constraints aren't met. +type DefaultLabelPolicyViewValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DefaultLabelPolicyViewValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DefaultLabelPolicyViewValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DefaultLabelPolicyViewValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DefaultLabelPolicyViewValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DefaultLabelPolicyViewValidationError) ErrorName() string { + return "DefaultLabelPolicyViewValidationError" +} + +// Error satisfies the builtin error interface +func (e DefaultLabelPolicyViewValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDefaultLabelPolicyView.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DefaultLabelPolicyViewValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DefaultLabelPolicyViewValidationError{} + // Validate checks the field values on DefaultLoginPolicy with the rules // defined in the proto definition for this message. If any rules are // violated, an error is returned. diff --git a/pkg/grpc/admin/admin.swagger.json b/pkg/grpc/admin/admin.swagger.json index 1ba8ee8fa8..d7f286179a 100644 --- a/pkg/grpc/admin/admin.swagger.json +++ b/pkg/grpc/admin/admin.swagger.json @@ -845,6 +845,58 @@ ] } }, + "/policies/label": { + "get": { + "operationId": "AdminService_GetDefaultLabelPolicy", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DefaultLabelPolicyView" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + }, + "tags": [ + "AdminService" + ] + }, + "put": { + "operationId": "AdminService_UpdateDefaultLabelPolicy", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DefaultLabelPolicy" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1DefaultLabelPolicyUpdate" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, "/policies/login": { "get": { "operationId": "AdminService_GetDefaultLoginPolicy", @@ -1412,6 +1464,55 @@ } } }, + "v1DefaultLabelPolicy": { + "type": "object", + "properties": { + "primary_color": { + "type": "string" + }, + "secondary_color": { + "type": "string" + }, + "creation_date": { + "type": "string", + "format": "date-time" + }, + "change_date": { + "type": "string", + "format": "date-time" + } + } + }, + "v1DefaultLabelPolicyUpdate": { + "type": "object", + "properties": { + "primary_color": { + "type": "string" + }, + "secondary_color": { + "type": "string" + } + } + }, + "v1DefaultLabelPolicyView": { + "type": "object", + "properties": { + "primary_color": { + "type": "string" + }, + "secondary_color": { + "type": "string" + }, + "creation_date": { + "type": "string", + "format": "date-time" + }, + "change_date": { + "type": "string", + "format": "date-time" + } + } + }, "v1DefaultLoginPolicy": { "type": "object", "properties": { diff --git a/pkg/grpc/admin/mock/admin.proto.mock.go b/pkg/grpc/admin/mock/admin.proto.mock.go index 3922ef580c..3b9cc99dd2 100644 --- a/pkg/grpc/admin/mock/admin.proto.mock.go +++ b/pkg/grpc/admin/mock/admin.proto.mock.go @@ -177,6 +177,26 @@ func (mr *MockAdminServiceClientMockRecorder) DeactivateIdpConfig(arg0, arg1 int return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeactivateIdpConfig", reflect.TypeOf((*MockAdminServiceClient)(nil).DeactivateIdpConfig), varargs...) } +// GetDefaultLabelPolicy mocks base method +func (m *MockAdminServiceClient) GetDefaultLabelPolicy(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc.CallOption) (*admin.DefaultLabelPolicyView, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetDefaultLabelPolicy", varargs...) + ret0, _ := ret[0].(*admin.DefaultLabelPolicyView) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDefaultLabelPolicy indicates an expected call of GetDefaultLabelPolicy +func (mr *MockAdminServiceClientMockRecorder) GetDefaultLabelPolicy(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDefaultLabelPolicy", reflect.TypeOf((*MockAdminServiceClient)(nil).GetDefaultLabelPolicy), varargs...) +} + // GetDefaultLoginPolicy mocks base method func (m *MockAdminServiceClient) GetDefaultLoginPolicy(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc.CallOption) (*admin.DefaultLoginPolicyView, error) { m.ctrl.T.Helper() @@ -677,6 +697,26 @@ func (mr *MockAdminServiceClientMockRecorder) SetUpOrg(arg0, arg1 interface{}, a return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpOrg", reflect.TypeOf((*MockAdminServiceClient)(nil).SetUpOrg), varargs...) } +// UpdateDefaultLabelPolicy mocks base method +func (m *MockAdminServiceClient) UpdateDefaultLabelPolicy(arg0 context.Context, arg1 *admin.DefaultLabelPolicyUpdate, arg2 ...grpc.CallOption) (*admin.DefaultLabelPolicy, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "UpdateDefaultLabelPolicy", varargs...) + ret0, _ := ret[0].(*admin.DefaultLabelPolicy) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateDefaultLabelPolicy indicates an expected call of UpdateDefaultLabelPolicy +func (mr *MockAdminServiceClientMockRecorder) UpdateDefaultLabelPolicy(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDefaultLabelPolicy", reflect.TypeOf((*MockAdminServiceClient)(nil).UpdateDefaultLabelPolicy), varargs...) +} + // UpdateDefaultLoginPolicy mocks base method func (m *MockAdminServiceClient) UpdateDefaultLoginPolicy(arg0 context.Context, arg1 *admin.DefaultLoginPolicyRequest, arg2 ...grpc.CallOption) (*admin.DefaultLoginPolicy, error) { m.ctrl.T.Helper() diff --git a/pkg/grpc/admin/proto/admin.proto b/pkg/grpc/admin/proto/admin.proto index 635238443d..8dc4514ec5 100644 --- a/pkg/grpc/admin/proto/admin.proto +++ b/pkg/grpc/admin/proto/admin.proto @@ -342,6 +342,27 @@ service AdminService { }; } + rpc GetDefaultLabelPolicy(google.protobuf.Empty) returns (DefaultLabelPolicyView) { + option (google.api.http) = { + get: "/policies/label" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.policy.read" + }; + } + + rpc UpdateDefaultLabelPolicy(DefaultLabelPolicyUpdate) returns (DefaultLabelPolicy) { + option (google.api.http) = { + put: "/policies/label" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.policy.write" + }; + } + rpc GetDefaultLoginPolicy(google.protobuf.Empty) returns (DefaultLoginPolicyView) { option (google.api.http) = { get: "/policies/login" @@ -903,6 +924,25 @@ enum IdpSearchKey { IDPSEARCHKEY_NAME = 2; } +message DefaultLabelPolicy { + string primary_color = 1; + string secondary_color = 2; + google.protobuf.Timestamp creation_date = 3; + google.protobuf.Timestamp change_date = 4; +} + +message DefaultLabelPolicyUpdate { + string primary_color = 1; + string secondary_color = 2; +} + +message DefaultLabelPolicyView { + string primary_color = 1; + string secondary_color = 2; + google.protobuf.Timestamp creation_date = 3; + google.protobuf.Timestamp change_date = 4; +} + message DefaultLoginPolicy { bool allow_username_password = 1; bool allow_register = 2; diff --git a/pkg/grpc/auth/auth.pb.go b/pkg/grpc/auth/auth.pb.go index e5442d37f8..3c8db6e1ec 100644 --- a/pkg/grpc/auth/auth.pb.go +++ b/pkg/grpc/auth/auth.pb.go @@ -1,13 +1,11 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.25.0 -// protoc v3.11.3 // source: auth.proto package auth import ( context "context" + fmt "fmt" _ "github.com/caos/zitadel/internal/protoc/protoc-gen-authoption/authoption" message "github.com/caos/zitadel/pkg/grpc/message" _ "github.com/envoyproxy/protoc-gen-validate/validate" @@ -20,22 +18,19 @@ import ( grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" + math "math" ) -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf -// This is a compile-time assertion that a sufficiently up-to-date version -// of the legacy proto package is being used. -const _ = proto.ProtoPackageIsVersion4 +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package type UserSessionState int32 @@ -45,45 +40,24 @@ const ( UserSessionState_USERSESSIONSTATE_TERMINATED UserSessionState = 2 ) -// Enum value maps for UserSessionState. -var ( - UserSessionState_name = map[int32]string{ - 0: "USERSESSIONSTATE_UNSPECIFIED", - 1: "USERSESSIONSTATE_ACTIVE", - 2: "USERSESSIONSTATE_TERMINATED", - } - UserSessionState_value = map[string]int32{ - "USERSESSIONSTATE_UNSPECIFIED": 0, - "USERSESSIONSTATE_ACTIVE": 1, - "USERSESSIONSTATE_TERMINATED": 2, - } -) +var UserSessionState_name = map[int32]string{ + 0: "USERSESSIONSTATE_UNSPECIFIED", + 1: "USERSESSIONSTATE_ACTIVE", + 2: "USERSESSIONSTATE_TERMINATED", +} -func (x UserSessionState) Enum() *UserSessionState { - p := new(UserSessionState) - *p = x - return p +var UserSessionState_value = map[string]int32{ + "USERSESSIONSTATE_UNSPECIFIED": 0, + "USERSESSIONSTATE_ACTIVE": 1, + "USERSESSIONSTATE_TERMINATED": 2, } func (x UserSessionState) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) + return proto.EnumName(UserSessionState_name, int32(x)) } -func (UserSessionState) Descriptor() protoreflect.EnumDescriptor { - return file_auth_proto_enumTypes[0].Descriptor() -} - -func (UserSessionState) Type() protoreflect.EnumType { - return &file_auth_proto_enumTypes[0] -} - -func (x UserSessionState) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use UserSessionState.Descriptor instead. func (UserSessionState) EnumDescriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{0} + return fileDescriptor_8bbd6f3875b0e874, []int{0} } type MachineKeyType int32 @@ -93,43 +67,22 @@ const ( MachineKeyType_MACHINEKEY_JSON MachineKeyType = 1 ) -// Enum value maps for MachineKeyType. -var ( - MachineKeyType_name = map[int32]string{ - 0: "MACHINEKEY_UNSPECIFIED", - 1: "MACHINEKEY_JSON", - } - MachineKeyType_value = map[string]int32{ - "MACHINEKEY_UNSPECIFIED": 0, - "MACHINEKEY_JSON": 1, - } -) +var MachineKeyType_name = map[int32]string{ + 0: "MACHINEKEY_UNSPECIFIED", + 1: "MACHINEKEY_JSON", +} -func (x MachineKeyType) Enum() *MachineKeyType { - p := new(MachineKeyType) - *p = x - return p +var MachineKeyType_value = map[string]int32{ + "MACHINEKEY_UNSPECIFIED": 0, + "MACHINEKEY_JSON": 1, } func (x MachineKeyType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) + return proto.EnumName(MachineKeyType_name, int32(x)) } -func (MachineKeyType) Descriptor() protoreflect.EnumDescriptor { - return file_auth_proto_enumTypes[1].Descriptor() -} - -func (MachineKeyType) Type() protoreflect.EnumType { - return &file_auth_proto_enumTypes[1] -} - -func (x MachineKeyType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use MachineKeyType.Descriptor instead. func (MachineKeyType) EnumDescriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{1} + return fileDescriptor_8bbd6f3875b0e874, []int{1} } type UserState int32 @@ -144,53 +97,32 @@ const ( UserState_USERSTATE_INITIAL UserState = 6 ) -// Enum value maps for UserState. -var ( - UserState_name = map[int32]string{ - 0: "USERSTATE_UNSPECIFIED", - 1: "USERSTATE_ACTIVE", - 2: "USERSTATE_INACTIVE", - 3: "USERSTATE_DELETED", - 4: "USERSTATE_LOCKED", - 5: "USERSTATE_SUSPEND", - 6: "USERSTATE_INITIAL", - } - UserState_value = map[string]int32{ - "USERSTATE_UNSPECIFIED": 0, - "USERSTATE_ACTIVE": 1, - "USERSTATE_INACTIVE": 2, - "USERSTATE_DELETED": 3, - "USERSTATE_LOCKED": 4, - "USERSTATE_SUSPEND": 5, - "USERSTATE_INITIAL": 6, - } -) +var UserState_name = map[int32]string{ + 0: "USERSTATE_UNSPECIFIED", + 1: "USERSTATE_ACTIVE", + 2: "USERSTATE_INACTIVE", + 3: "USERSTATE_DELETED", + 4: "USERSTATE_LOCKED", + 5: "USERSTATE_SUSPEND", + 6: "USERSTATE_INITIAL", +} -func (x UserState) Enum() *UserState { - p := new(UserState) - *p = x - return p +var UserState_value = map[string]int32{ + "USERSTATE_UNSPECIFIED": 0, + "USERSTATE_ACTIVE": 1, + "USERSTATE_INACTIVE": 2, + "USERSTATE_DELETED": 3, + "USERSTATE_LOCKED": 4, + "USERSTATE_SUSPEND": 5, + "USERSTATE_INITIAL": 6, } func (x UserState) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) + return proto.EnumName(UserState_name, int32(x)) } -func (UserState) Descriptor() protoreflect.EnumDescriptor { - return file_auth_proto_enumTypes[2].Descriptor() -} - -func (UserState) Type() protoreflect.EnumType { - return &file_auth_proto_enumTypes[2] -} - -func (x UserState) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use UserState.Descriptor instead. func (UserState) EnumDescriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{2} + return fileDescriptor_8bbd6f3875b0e874, []int{2} } type Gender int32 @@ -202,47 +134,26 @@ const ( Gender_GENDER_DIVERSE Gender = 3 ) -// Enum value maps for Gender. -var ( - Gender_name = map[int32]string{ - 0: "GENDER_UNSPECIFIED", - 1: "GENDER_FEMALE", - 2: "GENDER_MALE", - 3: "GENDER_DIVERSE", - } - Gender_value = map[string]int32{ - "GENDER_UNSPECIFIED": 0, - "GENDER_FEMALE": 1, - "GENDER_MALE": 2, - "GENDER_DIVERSE": 3, - } -) +var Gender_name = map[int32]string{ + 0: "GENDER_UNSPECIFIED", + 1: "GENDER_FEMALE", + 2: "GENDER_MALE", + 3: "GENDER_DIVERSE", +} -func (x Gender) Enum() *Gender { - p := new(Gender) - *p = x - return p +var Gender_value = map[string]int32{ + "GENDER_UNSPECIFIED": 0, + "GENDER_FEMALE": 1, + "GENDER_MALE": 2, + "GENDER_DIVERSE": 3, } func (x Gender) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) + return proto.EnumName(Gender_name, int32(x)) } -func (Gender) Descriptor() protoreflect.EnumDescriptor { - return file_auth_proto_enumTypes[3].Descriptor() -} - -func (Gender) Type() protoreflect.EnumType { - return &file_auth_proto_enumTypes[3] -} - -func (x Gender) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use Gender.Descriptor instead. func (Gender) EnumDescriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{3} + return fileDescriptor_8bbd6f3875b0e874, []int{3} } type MfaType int32 @@ -253,45 +164,24 @@ const ( MfaType_MFATYPE_OTP MfaType = 2 ) -// Enum value maps for MfaType. -var ( - MfaType_name = map[int32]string{ - 0: "MFATYPE_UNSPECIFIED", - 1: "MFATYPE_SMS", - 2: "MFATYPE_OTP", - } - MfaType_value = map[string]int32{ - "MFATYPE_UNSPECIFIED": 0, - "MFATYPE_SMS": 1, - "MFATYPE_OTP": 2, - } -) +var MfaType_name = map[int32]string{ + 0: "MFATYPE_UNSPECIFIED", + 1: "MFATYPE_SMS", + 2: "MFATYPE_OTP", +} -func (x MfaType) Enum() *MfaType { - p := new(MfaType) - *p = x - return p +var MfaType_value = map[string]int32{ + "MFATYPE_UNSPECIFIED": 0, + "MFATYPE_SMS": 1, + "MFATYPE_OTP": 2, } func (x MfaType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) + return proto.EnumName(MfaType_name, int32(x)) } -func (MfaType) Descriptor() protoreflect.EnumDescriptor { - return file_auth_proto_enumTypes[4].Descriptor() -} - -func (MfaType) Type() protoreflect.EnumType { - return &file_auth_proto_enumTypes[4] -} - -func (x MfaType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use MfaType.Descriptor instead. func (MfaType) EnumDescriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{4} + return fileDescriptor_8bbd6f3875b0e874, []int{4} } type MFAState int32 @@ -303,47 +193,26 @@ const ( MFAState_MFASTATE_REMOVED MFAState = 3 ) -// Enum value maps for MFAState. -var ( - MFAState_name = map[int32]string{ - 0: "MFASTATE_UNSPECIFIED", - 1: "MFASTATE_NOT_READY", - 2: "MFASTATE_READY", - 3: "MFASTATE_REMOVED", - } - MFAState_value = map[string]int32{ - "MFASTATE_UNSPECIFIED": 0, - "MFASTATE_NOT_READY": 1, - "MFASTATE_READY": 2, - "MFASTATE_REMOVED": 3, - } -) +var MFAState_name = map[int32]string{ + 0: "MFASTATE_UNSPECIFIED", + 1: "MFASTATE_NOT_READY", + 2: "MFASTATE_READY", + 3: "MFASTATE_REMOVED", +} -func (x MFAState) Enum() *MFAState { - p := new(MFAState) - *p = x - return p +var MFAState_value = map[string]int32{ + "MFASTATE_UNSPECIFIED": 0, + "MFASTATE_NOT_READY": 1, + "MFASTATE_READY": 2, + "MFASTATE_REMOVED": 3, } func (x MFAState) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) + return proto.EnumName(MFAState_name, int32(x)) } -func (MFAState) Descriptor() protoreflect.EnumDescriptor { - return file_auth_proto_enumTypes[5].Descriptor() -} - -func (MFAState) Type() protoreflect.EnumType { - return &file_auth_proto_enumTypes[5] -} - -func (x MFAState) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use MFAState.Descriptor instead. func (MFAState) EnumDescriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{5} + return fileDescriptor_8bbd6f3875b0e874, []int{5} } type UserGrantSearchKey int32 @@ -354,45 +223,24 @@ const ( UserGrantSearchKey_UserGrantSearchKey_PROJECT_ID UserGrantSearchKey = 2 ) -// Enum value maps for UserGrantSearchKey. -var ( - UserGrantSearchKey_name = map[int32]string{ - 0: "UserGrantSearchKey_UNKNOWN", - 1: "UserGrantSearchKey_ORG_ID", - 2: "UserGrantSearchKey_PROJECT_ID", - } - UserGrantSearchKey_value = map[string]int32{ - "UserGrantSearchKey_UNKNOWN": 0, - "UserGrantSearchKey_ORG_ID": 1, - "UserGrantSearchKey_PROJECT_ID": 2, - } -) +var UserGrantSearchKey_name = map[int32]string{ + 0: "UserGrantSearchKey_UNKNOWN", + 1: "UserGrantSearchKey_ORG_ID", + 2: "UserGrantSearchKey_PROJECT_ID", +} -func (x UserGrantSearchKey) Enum() *UserGrantSearchKey { - p := new(UserGrantSearchKey) - *p = x - return p +var UserGrantSearchKey_value = map[string]int32{ + "UserGrantSearchKey_UNKNOWN": 0, + "UserGrantSearchKey_ORG_ID": 1, + "UserGrantSearchKey_PROJECT_ID": 2, } func (x UserGrantSearchKey) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) + return proto.EnumName(UserGrantSearchKey_name, int32(x)) } -func (UserGrantSearchKey) Descriptor() protoreflect.EnumDescriptor { - return file_auth_proto_enumTypes[6].Descriptor() -} - -func (UserGrantSearchKey) Type() protoreflect.EnumType { - return &file_auth_proto_enumTypes[6] -} - -func (x UserGrantSearchKey) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use UserGrantSearchKey.Descriptor instead. func (UserGrantSearchKey) EnumDescriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{6} + return fileDescriptor_8bbd6f3875b0e874, []int{6} } type MyProjectOrgSearchKey int32 @@ -402,43 +250,22 @@ const ( MyProjectOrgSearchKey_MYPROJECTORGSEARCHKEY_ORG_NAME MyProjectOrgSearchKey = 1 ) -// Enum value maps for MyProjectOrgSearchKey. -var ( - MyProjectOrgSearchKey_name = map[int32]string{ - 0: "MYPROJECTORGSEARCHKEY_UNSPECIFIED", - 1: "MYPROJECTORGSEARCHKEY_ORG_NAME", - } - MyProjectOrgSearchKey_value = map[string]int32{ - "MYPROJECTORGSEARCHKEY_UNSPECIFIED": 0, - "MYPROJECTORGSEARCHKEY_ORG_NAME": 1, - } -) +var MyProjectOrgSearchKey_name = map[int32]string{ + 0: "MYPROJECTORGSEARCHKEY_UNSPECIFIED", + 1: "MYPROJECTORGSEARCHKEY_ORG_NAME", +} -func (x MyProjectOrgSearchKey) Enum() *MyProjectOrgSearchKey { - p := new(MyProjectOrgSearchKey) - *p = x - return p +var MyProjectOrgSearchKey_value = map[string]int32{ + "MYPROJECTORGSEARCHKEY_UNSPECIFIED": 0, + "MYPROJECTORGSEARCHKEY_ORG_NAME": 1, } func (x MyProjectOrgSearchKey) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) + return proto.EnumName(MyProjectOrgSearchKey_name, int32(x)) } -func (MyProjectOrgSearchKey) Descriptor() protoreflect.EnumDescriptor { - return file_auth_proto_enumTypes[7].Descriptor() -} - -func (MyProjectOrgSearchKey) Type() protoreflect.EnumType { - return &file_auth_proto_enumTypes[7] -} - -func (x MyProjectOrgSearchKey) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use MyProjectOrgSearchKey.Descriptor instead. func (MyProjectOrgSearchKey) EnumDescriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{7} + return fileDescriptor_8bbd6f3875b0e874, []int{7} } type SearchMethod int32 @@ -452,208 +279,167 @@ const ( SearchMethod_SEARCHMETHOD_CONTAINS_IGNORE_CASE SearchMethod = 5 ) -// Enum value maps for SearchMethod. -var ( - SearchMethod_name = map[int32]string{ - 0: "SEARCHMETHOD_EQUALS", - 1: "SEARCHMETHOD_STARTS_WITH", - 2: "SEARCHMETHOD_CONTAINS", - 3: "SEARCHMETHOD_EQUALS_IGNORE_CASE", - 4: "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE", - 5: "SEARCHMETHOD_CONTAINS_IGNORE_CASE", - } - SearchMethod_value = map[string]int32{ - "SEARCHMETHOD_EQUALS": 0, - "SEARCHMETHOD_STARTS_WITH": 1, - "SEARCHMETHOD_CONTAINS": 2, - "SEARCHMETHOD_EQUALS_IGNORE_CASE": 3, - "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE": 4, - "SEARCHMETHOD_CONTAINS_IGNORE_CASE": 5, - } -) +var SearchMethod_name = map[int32]string{ + 0: "SEARCHMETHOD_EQUALS", + 1: "SEARCHMETHOD_STARTS_WITH", + 2: "SEARCHMETHOD_CONTAINS", + 3: "SEARCHMETHOD_EQUALS_IGNORE_CASE", + 4: "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE", + 5: "SEARCHMETHOD_CONTAINS_IGNORE_CASE", +} -func (x SearchMethod) Enum() *SearchMethod { - p := new(SearchMethod) - *p = x - return p +var SearchMethod_value = map[string]int32{ + "SEARCHMETHOD_EQUALS": 0, + "SEARCHMETHOD_STARTS_WITH": 1, + "SEARCHMETHOD_CONTAINS": 2, + "SEARCHMETHOD_EQUALS_IGNORE_CASE": 3, + "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE": 4, + "SEARCHMETHOD_CONTAINS_IGNORE_CASE": 5, } func (x SearchMethod) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) + return proto.EnumName(SearchMethod_name, int32(x)) } -func (SearchMethod) Descriptor() protoreflect.EnumDescriptor { - return file_auth_proto_enumTypes[8].Descriptor() -} - -func (SearchMethod) Type() protoreflect.EnumType { - return &file_auth_proto_enumTypes[8] -} - -func (x SearchMethod) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use SearchMethod.Descriptor instead. func (SearchMethod) EnumDescriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{8} + return fileDescriptor_8bbd6f3875b0e874, []int{8} } type UserSessionViews struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserSessions []*UserSessionView `protobuf:"bytes,1,rep,name=user_sessions,json=userSessions,proto3" json:"user_sessions,omitempty"` + UserSessions []*UserSessionView `protobuf:"bytes,1,rep,name=user_sessions,json=userSessions,proto3" json:"user_sessions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserSessionViews) Reset() { - *x = UserSessionViews{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserSessionViews) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserSessionViews) ProtoMessage() {} - -func (x *UserSessionViews) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[0] - 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 UserSessionViews.ProtoReflect.Descriptor instead. +func (m *UserSessionViews) Reset() { *m = UserSessionViews{} } +func (m *UserSessionViews) String() string { return proto.CompactTextString(m) } +func (*UserSessionViews) ProtoMessage() {} func (*UserSessionViews) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{0} + return fileDescriptor_8bbd6f3875b0e874, []int{0} } -func (x *UserSessionViews) GetUserSessions() []*UserSessionView { - if x != nil { - return x.UserSessions +func (m *UserSessionViews) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserSessionViews.Unmarshal(m, b) +} +func (m *UserSessionViews) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserSessionViews.Marshal(b, m, deterministic) +} +func (m *UserSessionViews) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserSessionViews.Merge(m, src) +} +func (m *UserSessionViews) XXX_Size() int { + return xxx_messageInfo_UserSessionViews.Size(m) +} +func (m *UserSessionViews) XXX_DiscardUnknown() { + xxx_messageInfo_UserSessionViews.DiscardUnknown(m) +} + +var xxx_messageInfo_UserSessionViews proto.InternalMessageInfo + +func (m *UserSessionViews) GetUserSessions() []*UserSessionView { + if m != nil { + return m.UserSessions } return nil } type UserSessionView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - AgentId string `protobuf:"bytes,2,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` - AuthState UserSessionState `protobuf:"varint,3,opt,name=auth_state,json=authState,proto3,enum=caos.zitadel.auth.api.v1.UserSessionState" json:"auth_state,omitempty"` - UserId string `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - UserName string `protobuf:"bytes,5,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty"` - LoginName string `protobuf:"bytes,7,opt,name=login_name,json=loginName,proto3" json:"login_name,omitempty"` - DisplayName string `protobuf:"bytes,8,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + AgentId string `protobuf:"bytes,2,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + AuthState UserSessionState `protobuf:"varint,3,opt,name=auth_state,json=authState,proto3,enum=caos.zitadel.auth.api.v1.UserSessionState" json:"auth_state,omitempty"` + UserId string `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserName string `protobuf:"bytes,5,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty"` + LoginName string `protobuf:"bytes,7,opt,name=login_name,json=loginName,proto3" json:"login_name,omitempty"` + DisplayName string `protobuf:"bytes,8,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserSessionView) Reset() { - *x = UserSessionView{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserSessionView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserSessionView) ProtoMessage() {} - -func (x *UserSessionView) ProtoReflect() protoreflect.Message { - mi := &file_auth_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 UserSessionView.ProtoReflect.Descriptor instead. +func (m *UserSessionView) Reset() { *m = UserSessionView{} } +func (m *UserSessionView) String() string { return proto.CompactTextString(m) } +func (*UserSessionView) ProtoMessage() {} func (*UserSessionView) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{1} + return fileDescriptor_8bbd6f3875b0e874, []int{1} } -func (x *UserSessionView) GetId() string { - if x != nil { - return x.Id +func (m *UserSessionView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserSessionView.Unmarshal(m, b) +} +func (m *UserSessionView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserSessionView.Marshal(b, m, deterministic) +} +func (m *UserSessionView) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserSessionView.Merge(m, src) +} +func (m *UserSessionView) XXX_Size() int { + return xxx_messageInfo_UserSessionView.Size(m) +} +func (m *UserSessionView) XXX_DiscardUnknown() { + xxx_messageInfo_UserSessionView.DiscardUnknown(m) +} + +var xxx_messageInfo_UserSessionView proto.InternalMessageInfo + +func (m *UserSessionView) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *UserSessionView) GetAgentId() string { - if x != nil { - return x.AgentId +func (m *UserSessionView) GetAgentId() string { + if m != nil { + return m.AgentId } return "" } -func (x *UserSessionView) GetAuthState() UserSessionState { - if x != nil { - return x.AuthState +func (m *UserSessionView) GetAuthState() UserSessionState { + if m != nil { + return m.AuthState } return UserSessionState_USERSESSIONSTATE_UNSPECIFIED } -func (x *UserSessionView) GetUserId() string { - if x != nil { - return x.UserId +func (m *UserSessionView) GetUserId() string { + if m != nil { + return m.UserId } return "" } -func (x *UserSessionView) GetUserName() string { - if x != nil { - return x.UserName +func (m *UserSessionView) GetUserName() string { + if m != nil { + return m.UserName } return "" } -func (x *UserSessionView) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *UserSessionView) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *UserSessionView) GetLoginName() string { - if x != nil { - return x.LoginName +func (m *UserSessionView) GetLoginName() string { + if m != nil { + return m.LoginName } return "" } -func (x *UserSessionView) GetDisplayName() string { - if x != nil { - return x.DisplayName +func (m *UserSessionView) GetDisplayName() string { + if m != nil { + return m.DisplayName } return "" } type UserView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` State UserState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.auth.api.v1.UserState" json:"state,omitempty"` CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` @@ -664,133 +450,108 @@ type UserView struct { LastLogin *timestamp.Timestamp `protobuf:"bytes,8,opt,name=last_login,json=lastLogin,proto3" json:"last_login,omitempty"` ResourceOwner string `protobuf:"bytes,9,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` UserName string `protobuf:"bytes,10,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - // Types that are assignable to User: + // Types that are valid to be assigned to User: // *UserView_Human // *UserView_Machine - User isUserView_User `protobuf_oneof:"user"` + User isUserView_User `protobuf_oneof:"user"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserView) Reset() { - *x = UserView{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserView) ProtoMessage() {} - -func (x *UserView) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[2] - 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 UserView.ProtoReflect.Descriptor instead. +func (m *UserView) Reset() { *m = UserView{} } +func (m *UserView) String() string { return proto.CompactTextString(m) } +func (*UserView) ProtoMessage() {} func (*UserView) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{2} + return fileDescriptor_8bbd6f3875b0e874, []int{2} } -func (x *UserView) GetId() string { - if x != nil { - return x.Id +func (m *UserView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserView.Unmarshal(m, b) +} +func (m *UserView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserView.Marshal(b, m, deterministic) +} +func (m *UserView) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserView.Merge(m, src) +} +func (m *UserView) XXX_Size() int { + return xxx_messageInfo_UserView.Size(m) +} +func (m *UserView) XXX_DiscardUnknown() { + xxx_messageInfo_UserView.DiscardUnknown(m) +} + +var xxx_messageInfo_UserView proto.InternalMessageInfo + +func (m *UserView) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *UserView) GetState() UserState { - if x != nil { - return x.State +func (m *UserView) GetState() UserState { + if m != nil { + return m.State } return UserState_USERSTATE_UNSPECIFIED } -func (x *UserView) GetCreationDate() *timestamp.Timestamp { - if x != nil { - return x.CreationDate +func (m *UserView) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate } return nil } -func (x *UserView) GetChangeDate() *timestamp.Timestamp { - if x != nil { - return x.ChangeDate +func (m *UserView) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate } return nil } -func (x *UserView) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *UserView) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *UserView) GetLoginNames() []string { - if x != nil { - return x.LoginNames - } - return nil -} - -func (x *UserView) GetPreferredLoginName() string { - if x != nil { - return x.PreferredLoginName - } - return "" -} - -func (x *UserView) GetLastLogin() *timestamp.Timestamp { - if x != nil { - return x.LastLogin - } - return nil -} - -func (x *UserView) GetResourceOwner() string { - if x != nil { - return x.ResourceOwner - } - return "" -} - -func (x *UserView) GetUserName() string { - if x != nil { - return x.UserName - } - return "" -} - -func (m *UserView) GetUser() isUserView_User { +func (m *UserView) GetLoginNames() []string { if m != nil { - return m.User + return m.LoginNames } return nil } -func (x *UserView) GetHuman() *HumanView { - if x, ok := x.GetUser().(*UserView_Human); ok { - return x.Human +func (m *UserView) GetPreferredLoginName() string { + if m != nil { + return m.PreferredLoginName + } + return "" +} + +func (m *UserView) GetLastLogin() *timestamp.Timestamp { + if m != nil { + return m.LastLogin } return nil } -func (x *UserView) GetMachine() *MachineView { - if x, ok := x.GetUser().(*UserView_Machine); ok { - return x.Machine +func (m *UserView) GetResourceOwner() string { + if m != nil { + return m.ResourceOwner } - return nil + return "" +} + +func (m *UserView) GetUserName() string { + if m != nil { + return m.UserName + } + return "" } type isUserView_User interface { @@ -809,3035 +570,2740 @@ func (*UserView_Human) isUserView_User() {} func (*UserView_Machine) isUserView_User() {} -type MachineView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - LastKeyAdded *timestamp.Timestamp `protobuf:"bytes,1,opt,name=last_key_added,json=lastKeyAdded,proto3" json:"last_key_added,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` -} - -func (x *MachineView) Reset() { - *x = MachineView{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MachineView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MachineView) ProtoMessage() {} - -func (x *MachineView) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[3] - 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 MachineView.ProtoReflect.Descriptor instead. -func (*MachineView) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{3} -} - -func (x *MachineView) GetLastKeyAdded() *timestamp.Timestamp { - if x != nil { - return x.LastKeyAdded +func (m *UserView) GetUser() isUserView_User { + if m != nil { + return m.User } return nil } -func (x *MachineView) GetName() string { - if x != nil { - return x.Name +func (m *UserView) GetHuman() *HumanView { + if x, ok := m.GetUser().(*UserView_Human); ok { + return x.Human + } + return nil +} + +func (m *UserView) GetMachine() *MachineView { + if x, ok := m.GetUser().(*UserView_Machine); ok { + return x.Machine + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*UserView) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*UserView_Human)(nil), + (*UserView_Machine)(nil), + } +} + +type MachineView struct { + LastKeyAdded *timestamp.Timestamp `protobuf:"bytes,1,opt,name=last_key_added,json=lastKeyAdded,proto3" json:"last_key_added,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MachineView) Reset() { *m = MachineView{} } +func (m *MachineView) String() string { return proto.CompactTextString(m) } +func (*MachineView) ProtoMessage() {} +func (*MachineView) Descriptor() ([]byte, []int) { + return fileDescriptor_8bbd6f3875b0e874, []int{3} +} + +func (m *MachineView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MachineView.Unmarshal(m, b) +} +func (m *MachineView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MachineView.Marshal(b, m, deterministic) +} +func (m *MachineView) XXX_Merge(src proto.Message) { + xxx_messageInfo_MachineView.Merge(m, src) +} +func (m *MachineView) XXX_Size() int { + return xxx_messageInfo_MachineView.Size(m) +} +func (m *MachineView) XXX_DiscardUnknown() { + xxx_messageInfo_MachineView.DiscardUnknown(m) +} + +var xxx_messageInfo_MachineView proto.InternalMessageInfo + +func (m *MachineView) GetLastKeyAdded() *timestamp.Timestamp { + if m != nil { + return m.LastKeyAdded + } + return nil +} + +func (m *MachineView) GetName() string { + if m != nil { + return m.Name } return "" } -func (x *MachineView) GetDescription() string { - if x != nil { - return x.Description +func (m *MachineView) GetDescription() string { + if m != nil { + return m.Description } return "" } type MachineKeyView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Type MachineKeyType `protobuf:"varint,2,opt,name=type,proto3,enum=caos.zitadel.auth.api.v1.MachineKeyType" json:"type,omitempty"` - Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ExpirationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Type MachineKeyType `protobuf:"varint,2,opt,name=type,proto3,enum=caos.zitadel.auth.api.v1.MachineKeyType" json:"type,omitempty"` + Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ExpirationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MachineKeyView) Reset() { - *x = MachineKeyView{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MachineKeyView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MachineKeyView) ProtoMessage() {} - -func (x *MachineKeyView) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[4] - 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 MachineKeyView.ProtoReflect.Descriptor instead. +func (m *MachineKeyView) Reset() { *m = MachineKeyView{} } +func (m *MachineKeyView) String() string { return proto.CompactTextString(m) } +func (*MachineKeyView) ProtoMessage() {} func (*MachineKeyView) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{4} + return fileDescriptor_8bbd6f3875b0e874, []int{4} } -func (x *MachineKeyView) GetId() string { - if x != nil { - return x.Id +func (m *MachineKeyView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MachineKeyView.Unmarshal(m, b) +} +func (m *MachineKeyView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MachineKeyView.Marshal(b, m, deterministic) +} +func (m *MachineKeyView) XXX_Merge(src proto.Message) { + xxx_messageInfo_MachineKeyView.Merge(m, src) +} +func (m *MachineKeyView) XXX_Size() int { + return xxx_messageInfo_MachineKeyView.Size(m) +} +func (m *MachineKeyView) XXX_DiscardUnknown() { + xxx_messageInfo_MachineKeyView.DiscardUnknown(m) +} + +var xxx_messageInfo_MachineKeyView proto.InternalMessageInfo + +func (m *MachineKeyView) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *MachineKeyView) GetType() MachineKeyType { - if x != nil { - return x.Type +func (m *MachineKeyView) GetType() MachineKeyType { + if m != nil { + return m.Type } return MachineKeyType_MACHINEKEY_UNSPECIFIED } -func (x *MachineKeyView) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *MachineKeyView) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *MachineKeyView) GetCreationDate() *timestamp.Timestamp { - if x != nil { - return x.CreationDate +func (m *MachineKeyView) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate } return nil } -func (x *MachineKeyView) GetExpirationDate() *timestamp.Timestamp { - if x != nil { - return x.ExpirationDate +func (m *MachineKeyView) GetExpirationDate() *timestamp.Timestamp { + if m != nil { + return m.ExpirationDate } return nil } type HumanView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PasswordChanged *timestamp.Timestamp `protobuf:"bytes,1,opt,name=password_changed,json=passwordChanged,proto3" json:"password_changed,omitempty"` - FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - NickName string `protobuf:"bytes,5,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` - Email string `protobuf:"bytes,8,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,9,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` - Phone string `protobuf:"bytes,10,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,11,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Country string `protobuf:"bytes,12,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,13,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,14,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,15,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,16,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + PasswordChanged *timestamp.Timestamp `protobuf:"bytes,1,opt,name=password_changed,json=passwordChanged,proto3" json:"password_changed,omitempty"` + FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + NickName string `protobuf:"bytes,5,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` + Email string `protobuf:"bytes,8,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,9,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` + Phone string `protobuf:"bytes,10,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,11,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Country string `protobuf:"bytes,12,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,13,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,14,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,15,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,16,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *HumanView) Reset() { - *x = HumanView{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *HumanView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*HumanView) ProtoMessage() {} - -func (x *HumanView) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[5] - 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 HumanView.ProtoReflect.Descriptor instead. +func (m *HumanView) Reset() { *m = HumanView{} } +func (m *HumanView) String() string { return proto.CompactTextString(m) } +func (*HumanView) ProtoMessage() {} func (*HumanView) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{5} + return fileDescriptor_8bbd6f3875b0e874, []int{5} } -func (x *HumanView) GetPasswordChanged() *timestamp.Timestamp { - if x != nil { - return x.PasswordChanged +func (m *HumanView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HumanView.Unmarshal(m, b) +} +func (m *HumanView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HumanView.Marshal(b, m, deterministic) +} +func (m *HumanView) XXX_Merge(src proto.Message) { + xxx_messageInfo_HumanView.Merge(m, src) +} +func (m *HumanView) XXX_Size() int { + return xxx_messageInfo_HumanView.Size(m) +} +func (m *HumanView) XXX_DiscardUnknown() { + xxx_messageInfo_HumanView.DiscardUnknown(m) +} + +var xxx_messageInfo_HumanView proto.InternalMessageInfo + +func (m *HumanView) GetPasswordChanged() *timestamp.Timestamp { + if m != nil { + return m.PasswordChanged } return nil } -func (x *HumanView) GetFirstName() string { - if x != nil { - return x.FirstName +func (m *HumanView) GetFirstName() string { + if m != nil { + return m.FirstName } return "" } -func (x *HumanView) GetLastName() string { - if x != nil { - return x.LastName +func (m *HumanView) GetLastName() string { + if m != nil { + return m.LastName } return "" } -func (x *HumanView) GetDisplayName() string { - if x != nil { - return x.DisplayName +func (m *HumanView) GetDisplayName() string { + if m != nil { + return m.DisplayName } return "" } -func (x *HumanView) GetNickName() string { - if x != nil { - return x.NickName +func (m *HumanView) GetNickName() string { + if m != nil { + return m.NickName } return "" } -func (x *HumanView) GetPreferredLanguage() string { - if x != nil { - return x.PreferredLanguage +func (m *HumanView) GetPreferredLanguage() string { + if m != nil { + return m.PreferredLanguage } return "" } -func (x *HumanView) GetGender() Gender { - if x != nil { - return x.Gender +func (m *HumanView) GetGender() Gender { + if m != nil { + return m.Gender } return Gender_GENDER_UNSPECIFIED } -func (x *HumanView) GetEmail() string { - if x != nil { - return x.Email +func (m *HumanView) GetEmail() string { + if m != nil { + return m.Email } return "" } -func (x *HumanView) GetIsEmailVerified() bool { - if x != nil { - return x.IsEmailVerified +func (m *HumanView) GetIsEmailVerified() bool { + if m != nil { + return m.IsEmailVerified } return false } -func (x *HumanView) GetPhone() string { - if x != nil { - return x.Phone +func (m *HumanView) GetPhone() string { + if m != nil { + return m.Phone } return "" } -func (x *HumanView) GetIsPhoneVerified() bool { - if x != nil { - return x.IsPhoneVerified +func (m *HumanView) GetIsPhoneVerified() bool { + if m != nil { + return m.IsPhoneVerified } return false } -func (x *HumanView) GetCountry() string { - if x != nil { - return x.Country +func (m *HumanView) GetCountry() string { + if m != nil { + return m.Country } return "" } -func (x *HumanView) GetLocality() string { - if x != nil { - return x.Locality +func (m *HumanView) GetLocality() string { + if m != nil { + return m.Locality } return "" } -func (x *HumanView) GetPostalCode() string { - if x != nil { - return x.PostalCode +func (m *HumanView) GetPostalCode() string { + if m != nil { + return m.PostalCode } return "" } -func (x *HumanView) GetRegion() string { - if x != nil { - return x.Region +func (m *HumanView) GetRegion() string { + if m != nil { + return m.Region } return "" } -func (x *HumanView) GetStreetAddress() string { - if x != nil { - return x.StreetAddress +func (m *HumanView) GetStreetAddress() string { + if m != nil { + return m.StreetAddress } return "" } type UserProfile struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` - Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` + Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserProfile) Reset() { - *x = UserProfile{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserProfile) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserProfile) ProtoMessage() {} - -func (x *UserProfile) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[6] - 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 UserProfile.ProtoReflect.Descriptor instead. +func (m *UserProfile) Reset() { *m = UserProfile{} } +func (m *UserProfile) String() string { return proto.CompactTextString(m) } +func (*UserProfile) ProtoMessage() {} func (*UserProfile) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{6} + return fileDescriptor_8bbd6f3875b0e874, []int{6} } -func (x *UserProfile) GetId() string { - if x != nil { - return x.Id +func (m *UserProfile) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserProfile.Unmarshal(m, b) +} +func (m *UserProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserProfile.Marshal(b, m, deterministic) +} +func (m *UserProfile) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserProfile.Merge(m, src) +} +func (m *UserProfile) XXX_Size() int { + return xxx_messageInfo_UserProfile.Size(m) +} +func (m *UserProfile) XXX_DiscardUnknown() { + xxx_messageInfo_UserProfile.DiscardUnknown(m) +} + +var xxx_messageInfo_UserProfile proto.InternalMessageInfo + +func (m *UserProfile) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *UserProfile) GetFirstName() string { - if x != nil { - return x.FirstName +func (m *UserProfile) GetFirstName() string { + if m != nil { + return m.FirstName } return "" } -func (x *UserProfile) GetLastName() string { - if x != nil { - return x.LastName +func (m *UserProfile) GetLastName() string { + if m != nil { + return m.LastName } return "" } -func (x *UserProfile) GetNickName() string { - if x != nil { - return x.NickName +func (m *UserProfile) GetNickName() string { + if m != nil { + return m.NickName } return "" } -func (x *UserProfile) GetDisplayName() string { - if x != nil { - return x.DisplayName +func (m *UserProfile) GetDisplayName() string { + if m != nil { + return m.DisplayName } return "" } -func (x *UserProfile) GetPreferredLanguage() string { - if x != nil { - return x.PreferredLanguage +func (m *UserProfile) GetPreferredLanguage() string { + if m != nil { + return m.PreferredLanguage } return "" } -func (x *UserProfile) GetGender() Gender { - if x != nil { - return x.Gender +func (m *UserProfile) GetGender() Gender { + if m != nil { + return m.Gender } return Gender_GENDER_UNSPECIFIED } -func (x *UserProfile) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *UserProfile) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *UserProfile) GetCreationDate() *timestamp.Timestamp { - if x != nil { - return x.CreationDate +func (m *UserProfile) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate } return nil } -func (x *UserProfile) GetChangeDate() *timestamp.Timestamp { - if x != nil { - return x.ChangeDate +func (m *UserProfile) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate } return nil } type UserProfileView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` - Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - LoginNames []string `protobuf:"bytes,11,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` - PreferredLoginName string `protobuf:"bytes,12,opt,name=preferred_login_name,json=preferredLoginName,proto3" json:"preferred_login_name,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` + Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + LoginNames []string `protobuf:"bytes,11,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` + PreferredLoginName string `protobuf:"bytes,12,opt,name=preferred_login_name,json=preferredLoginName,proto3" json:"preferred_login_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserProfileView) Reset() { - *x = UserProfileView{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserProfileView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserProfileView) ProtoMessage() {} - -func (x *UserProfileView) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[7] - 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 UserProfileView.ProtoReflect.Descriptor instead. +func (m *UserProfileView) Reset() { *m = UserProfileView{} } +func (m *UserProfileView) String() string { return proto.CompactTextString(m) } +func (*UserProfileView) ProtoMessage() {} func (*UserProfileView) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{7} + return fileDescriptor_8bbd6f3875b0e874, []int{7} } -func (x *UserProfileView) GetId() string { - if x != nil { - return x.Id +func (m *UserProfileView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserProfileView.Unmarshal(m, b) +} +func (m *UserProfileView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserProfileView.Marshal(b, m, deterministic) +} +func (m *UserProfileView) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserProfileView.Merge(m, src) +} +func (m *UserProfileView) XXX_Size() int { + return xxx_messageInfo_UserProfileView.Size(m) +} +func (m *UserProfileView) XXX_DiscardUnknown() { + xxx_messageInfo_UserProfileView.DiscardUnknown(m) +} + +var xxx_messageInfo_UserProfileView proto.InternalMessageInfo + +func (m *UserProfileView) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *UserProfileView) GetFirstName() string { - if x != nil { - return x.FirstName +func (m *UserProfileView) GetFirstName() string { + if m != nil { + return m.FirstName } return "" } -func (x *UserProfileView) GetLastName() string { - if x != nil { - return x.LastName +func (m *UserProfileView) GetLastName() string { + if m != nil { + return m.LastName } return "" } -func (x *UserProfileView) GetNickName() string { - if x != nil { - return x.NickName +func (m *UserProfileView) GetNickName() string { + if m != nil { + return m.NickName } return "" } -func (x *UserProfileView) GetDisplayName() string { - if x != nil { - return x.DisplayName +func (m *UserProfileView) GetDisplayName() string { + if m != nil { + return m.DisplayName } return "" } -func (x *UserProfileView) GetPreferredLanguage() string { - if x != nil { - return x.PreferredLanguage +func (m *UserProfileView) GetPreferredLanguage() string { + if m != nil { + return m.PreferredLanguage } return "" } -func (x *UserProfileView) GetGender() Gender { - if x != nil { - return x.Gender +func (m *UserProfileView) GetGender() Gender { + if m != nil { + return m.Gender } return Gender_GENDER_UNSPECIFIED } -func (x *UserProfileView) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *UserProfileView) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *UserProfileView) GetCreationDate() *timestamp.Timestamp { - if x != nil { - return x.CreationDate +func (m *UserProfileView) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate } return nil } -func (x *UserProfileView) GetChangeDate() *timestamp.Timestamp { - if x != nil { - return x.ChangeDate +func (m *UserProfileView) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate } return nil } -func (x *UserProfileView) GetLoginNames() []string { - if x != nil { - return x.LoginNames +func (m *UserProfileView) GetLoginNames() []string { + if m != nil { + return m.LoginNames } return nil } -func (x *UserProfileView) GetPreferredLoginName() string { - if x != nil { - return x.PreferredLoginName +func (m *UserProfileView) GetPreferredLoginName() string { + if m != nil { + return m.PreferredLoginName } return "" } type UpdateUserProfileRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FirstName string `protobuf:"bytes,1,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,2,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - NickName string `protobuf:"bytes,3,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,4,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,5,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` + FirstName string `protobuf:"bytes,1,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,2,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + NickName string `protobuf:"bytes,3,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,4,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,5,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UpdateUserProfileRequest) Reset() { - *x = UpdateUserProfileRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateUserProfileRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateUserProfileRequest) ProtoMessage() {} - -func (x *UpdateUserProfileRequest) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[8] - 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 UpdateUserProfileRequest.ProtoReflect.Descriptor instead. +func (m *UpdateUserProfileRequest) Reset() { *m = UpdateUserProfileRequest{} } +func (m *UpdateUserProfileRequest) String() string { return proto.CompactTextString(m) } +func (*UpdateUserProfileRequest) ProtoMessage() {} func (*UpdateUserProfileRequest) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{8} + return fileDescriptor_8bbd6f3875b0e874, []int{8} } -func (x *UpdateUserProfileRequest) GetFirstName() string { - if x != nil { - return x.FirstName +func (m *UpdateUserProfileRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateUserProfileRequest.Unmarshal(m, b) +} +func (m *UpdateUserProfileRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateUserProfileRequest.Marshal(b, m, deterministic) +} +func (m *UpdateUserProfileRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateUserProfileRequest.Merge(m, src) +} +func (m *UpdateUserProfileRequest) XXX_Size() int { + return xxx_messageInfo_UpdateUserProfileRequest.Size(m) +} +func (m *UpdateUserProfileRequest) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateUserProfileRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateUserProfileRequest proto.InternalMessageInfo + +func (m *UpdateUserProfileRequest) GetFirstName() string { + if m != nil { + return m.FirstName } return "" } -func (x *UpdateUserProfileRequest) GetLastName() string { - if x != nil { - return x.LastName +func (m *UpdateUserProfileRequest) GetLastName() string { + if m != nil { + return m.LastName } return "" } -func (x *UpdateUserProfileRequest) GetNickName() string { - if x != nil { - return x.NickName +func (m *UpdateUserProfileRequest) GetNickName() string { + if m != nil { + return m.NickName } return "" } -func (x *UpdateUserProfileRequest) GetPreferredLanguage() string { - if x != nil { - return x.PreferredLanguage +func (m *UpdateUserProfileRequest) GetPreferredLanguage() string { + if m != nil { + return m.PreferredLanguage } return "" } -func (x *UpdateUserProfileRequest) GetGender() Gender { - if x != nil { - return x.Gender +func (m *UpdateUserProfileRequest) GetGender() Gender { + if m != nil { + return m.Gender } return Gender_GENDER_UNSPECIFIED } type ChangeUserNameRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ChangeUserNameRequest) Reset() { - *x = ChangeUserNameRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangeUserNameRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangeUserNameRequest) ProtoMessage() {} - -func (x *ChangeUserNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[9] - 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 ChangeUserNameRequest.ProtoReflect.Descriptor instead. +func (m *ChangeUserNameRequest) Reset() { *m = ChangeUserNameRequest{} } +func (m *ChangeUserNameRequest) String() string { return proto.CompactTextString(m) } +func (*ChangeUserNameRequest) ProtoMessage() {} func (*ChangeUserNameRequest) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{9} + return fileDescriptor_8bbd6f3875b0e874, []int{9} } -func (x *ChangeUserNameRequest) GetUserName() string { - if x != nil { - return x.UserName +func (m *ChangeUserNameRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChangeUserNameRequest.Unmarshal(m, b) +} +func (m *ChangeUserNameRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChangeUserNameRequest.Marshal(b, m, deterministic) +} +func (m *ChangeUserNameRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChangeUserNameRequest.Merge(m, src) +} +func (m *ChangeUserNameRequest) XXX_Size() int { + return xxx_messageInfo_ChangeUserNameRequest.Size(m) +} +func (m *ChangeUserNameRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ChangeUserNameRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ChangeUserNameRequest proto.InternalMessageInfo + +func (m *ChangeUserNameRequest) GetUserName() string { + if m != nil { + return m.UserName } return "" } type UserEmail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,3,opt,name=isEmailVerified,proto3" json:"isEmailVerified,omitempty"` - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,3,opt,name=isEmailVerified,proto3" json:"isEmailVerified,omitempty"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserEmail) Reset() { - *x = UserEmail{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserEmail) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserEmail) ProtoMessage() {} - -func (x *UserEmail) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[10] - 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 UserEmail.ProtoReflect.Descriptor instead. +func (m *UserEmail) Reset() { *m = UserEmail{} } +func (m *UserEmail) String() string { return proto.CompactTextString(m) } +func (*UserEmail) ProtoMessage() {} func (*UserEmail) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{10} + return fileDescriptor_8bbd6f3875b0e874, []int{10} } -func (x *UserEmail) GetId() string { - if x != nil { - return x.Id +func (m *UserEmail) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserEmail.Unmarshal(m, b) +} +func (m *UserEmail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserEmail.Marshal(b, m, deterministic) +} +func (m *UserEmail) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserEmail.Merge(m, src) +} +func (m *UserEmail) XXX_Size() int { + return xxx_messageInfo_UserEmail.Size(m) +} +func (m *UserEmail) XXX_DiscardUnknown() { + xxx_messageInfo_UserEmail.DiscardUnknown(m) +} + +var xxx_messageInfo_UserEmail proto.InternalMessageInfo + +func (m *UserEmail) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *UserEmail) GetEmail() string { - if x != nil { - return x.Email +func (m *UserEmail) GetEmail() string { + if m != nil { + return m.Email } return "" } -func (x *UserEmail) GetIsEmailVerified() bool { - if x != nil { - return x.IsEmailVerified +func (m *UserEmail) GetIsEmailVerified() bool { + if m != nil { + return m.IsEmailVerified } return false } -func (x *UserEmail) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *UserEmail) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *UserEmail) GetCreationDate() *timestamp.Timestamp { - if x != nil { - return x.CreationDate +func (m *UserEmail) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate } return nil } -func (x *UserEmail) GetChangeDate() *timestamp.Timestamp { - if x != nil { - return x.ChangeDate +func (m *UserEmail) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate } return nil } type UserEmailView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,3,opt,name=isEmailVerified,proto3" json:"isEmailVerified,omitempty"` - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,3,opt,name=isEmailVerified,proto3" json:"isEmailVerified,omitempty"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserEmailView) Reset() { - *x = UserEmailView{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserEmailView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserEmailView) ProtoMessage() {} - -func (x *UserEmailView) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[11] - 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 UserEmailView.ProtoReflect.Descriptor instead. +func (m *UserEmailView) Reset() { *m = UserEmailView{} } +func (m *UserEmailView) String() string { return proto.CompactTextString(m) } +func (*UserEmailView) ProtoMessage() {} func (*UserEmailView) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{11} + return fileDescriptor_8bbd6f3875b0e874, []int{11} } -func (x *UserEmailView) GetId() string { - if x != nil { - return x.Id +func (m *UserEmailView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserEmailView.Unmarshal(m, b) +} +func (m *UserEmailView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserEmailView.Marshal(b, m, deterministic) +} +func (m *UserEmailView) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserEmailView.Merge(m, src) +} +func (m *UserEmailView) XXX_Size() int { + return xxx_messageInfo_UserEmailView.Size(m) +} +func (m *UserEmailView) XXX_DiscardUnknown() { + xxx_messageInfo_UserEmailView.DiscardUnknown(m) +} + +var xxx_messageInfo_UserEmailView proto.InternalMessageInfo + +func (m *UserEmailView) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *UserEmailView) GetEmail() string { - if x != nil { - return x.Email +func (m *UserEmailView) GetEmail() string { + if m != nil { + return m.Email } return "" } -func (x *UserEmailView) GetIsEmailVerified() bool { - if x != nil { - return x.IsEmailVerified +func (m *UserEmailView) GetIsEmailVerified() bool { + if m != nil { + return m.IsEmailVerified } return false } -func (x *UserEmailView) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *UserEmailView) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *UserEmailView) GetCreationDate() *timestamp.Timestamp { - if x != nil { - return x.CreationDate +func (m *UserEmailView) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate } return nil } -func (x *UserEmailView) GetChangeDate() *timestamp.Timestamp { - if x != nil { - return x.ChangeDate +func (m *UserEmailView) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate } return nil } type VerifyMyUserEmailRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *VerifyMyUserEmailRequest) Reset() { - *x = VerifyMyUserEmailRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *VerifyMyUserEmailRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*VerifyMyUserEmailRequest) ProtoMessage() {} - -func (x *VerifyMyUserEmailRequest) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[12] - 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 VerifyMyUserEmailRequest.ProtoReflect.Descriptor instead. +func (m *VerifyMyUserEmailRequest) Reset() { *m = VerifyMyUserEmailRequest{} } +func (m *VerifyMyUserEmailRequest) String() string { return proto.CompactTextString(m) } +func (*VerifyMyUserEmailRequest) ProtoMessage() {} func (*VerifyMyUserEmailRequest) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{12} + return fileDescriptor_8bbd6f3875b0e874, []int{12} } -func (x *VerifyMyUserEmailRequest) GetCode() string { - if x != nil { - return x.Code +func (m *VerifyMyUserEmailRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VerifyMyUserEmailRequest.Unmarshal(m, b) +} +func (m *VerifyMyUserEmailRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VerifyMyUserEmailRequest.Marshal(b, m, deterministic) +} +func (m *VerifyMyUserEmailRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_VerifyMyUserEmailRequest.Merge(m, src) +} +func (m *VerifyMyUserEmailRequest) XXX_Size() int { + return xxx_messageInfo_VerifyMyUserEmailRequest.Size(m) +} +func (m *VerifyMyUserEmailRequest) XXX_DiscardUnknown() { + xxx_messageInfo_VerifyMyUserEmailRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_VerifyMyUserEmailRequest proto.InternalMessageInfo + +func (m *VerifyMyUserEmailRequest) GetCode() string { + if m != nil { + return m.Code } return "" } type UpdateUserEmailRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UpdateUserEmailRequest) Reset() { - *x = UpdateUserEmailRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateUserEmailRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateUserEmailRequest) ProtoMessage() {} - -func (x *UpdateUserEmailRequest) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[13] - 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 UpdateUserEmailRequest.ProtoReflect.Descriptor instead. +func (m *UpdateUserEmailRequest) Reset() { *m = UpdateUserEmailRequest{} } +func (m *UpdateUserEmailRequest) String() string { return proto.CompactTextString(m) } +func (*UpdateUserEmailRequest) ProtoMessage() {} func (*UpdateUserEmailRequest) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{13} + return fileDescriptor_8bbd6f3875b0e874, []int{13} } -func (x *UpdateUserEmailRequest) GetEmail() string { - if x != nil { - return x.Email +func (m *UpdateUserEmailRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateUserEmailRequest.Unmarshal(m, b) +} +func (m *UpdateUserEmailRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateUserEmailRequest.Marshal(b, m, deterministic) +} +func (m *UpdateUserEmailRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateUserEmailRequest.Merge(m, src) +} +func (m *UpdateUserEmailRequest) XXX_Size() int { + return xxx_messageInfo_UpdateUserEmailRequest.Size(m) +} +func (m *UpdateUserEmailRequest) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateUserEmailRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateUserEmailRequest proto.InternalMessageInfo + +func (m *UpdateUserEmailRequest) GetEmail() string { + if m != nil { + return m.Email } return "" } type UserPhone struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserPhone) Reset() { - *x = UserPhone{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserPhone) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserPhone) ProtoMessage() {} - -func (x *UserPhone) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[14] - 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 UserPhone.ProtoReflect.Descriptor instead. +func (m *UserPhone) Reset() { *m = UserPhone{} } +func (m *UserPhone) String() string { return proto.CompactTextString(m) } +func (*UserPhone) ProtoMessage() {} func (*UserPhone) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{14} + return fileDescriptor_8bbd6f3875b0e874, []int{14} } -func (x *UserPhone) GetId() string { - if x != nil { - return x.Id +func (m *UserPhone) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserPhone.Unmarshal(m, b) +} +func (m *UserPhone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserPhone.Marshal(b, m, deterministic) +} +func (m *UserPhone) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserPhone.Merge(m, src) +} +func (m *UserPhone) XXX_Size() int { + return xxx_messageInfo_UserPhone.Size(m) +} +func (m *UserPhone) XXX_DiscardUnknown() { + xxx_messageInfo_UserPhone.DiscardUnknown(m) +} + +var xxx_messageInfo_UserPhone proto.InternalMessageInfo + +func (m *UserPhone) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *UserPhone) GetPhone() string { - if x != nil { - return x.Phone +func (m *UserPhone) GetPhone() string { + if m != nil { + return m.Phone } return "" } -func (x *UserPhone) GetIsPhoneVerified() bool { - if x != nil { - return x.IsPhoneVerified +func (m *UserPhone) GetIsPhoneVerified() bool { + if m != nil { + return m.IsPhoneVerified } return false } -func (x *UserPhone) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *UserPhone) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *UserPhone) GetCreationDate() *timestamp.Timestamp { - if x != nil { - return x.CreationDate +func (m *UserPhone) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate } return nil } -func (x *UserPhone) GetChangeDate() *timestamp.Timestamp { - if x != nil { - return x.ChangeDate +func (m *UserPhone) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate } return nil } type UserPhoneView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserPhoneView) Reset() { - *x = UserPhoneView{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserPhoneView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserPhoneView) ProtoMessage() {} - -func (x *UserPhoneView) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[15] - 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 UserPhoneView.ProtoReflect.Descriptor instead. +func (m *UserPhoneView) Reset() { *m = UserPhoneView{} } +func (m *UserPhoneView) String() string { return proto.CompactTextString(m) } +func (*UserPhoneView) ProtoMessage() {} func (*UserPhoneView) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{15} + return fileDescriptor_8bbd6f3875b0e874, []int{15} } -func (x *UserPhoneView) GetId() string { - if x != nil { - return x.Id +func (m *UserPhoneView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserPhoneView.Unmarshal(m, b) +} +func (m *UserPhoneView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserPhoneView.Marshal(b, m, deterministic) +} +func (m *UserPhoneView) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserPhoneView.Merge(m, src) +} +func (m *UserPhoneView) XXX_Size() int { + return xxx_messageInfo_UserPhoneView.Size(m) +} +func (m *UserPhoneView) XXX_DiscardUnknown() { + xxx_messageInfo_UserPhoneView.DiscardUnknown(m) +} + +var xxx_messageInfo_UserPhoneView proto.InternalMessageInfo + +func (m *UserPhoneView) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *UserPhoneView) GetPhone() string { - if x != nil { - return x.Phone +func (m *UserPhoneView) GetPhone() string { + if m != nil { + return m.Phone } return "" } -func (x *UserPhoneView) GetIsPhoneVerified() bool { - if x != nil { - return x.IsPhoneVerified +func (m *UserPhoneView) GetIsPhoneVerified() bool { + if m != nil { + return m.IsPhoneVerified } return false } -func (x *UserPhoneView) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *UserPhoneView) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *UserPhoneView) GetCreationDate() *timestamp.Timestamp { - if x != nil { - return x.CreationDate +func (m *UserPhoneView) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate } return nil } -func (x *UserPhoneView) GetChangeDate() *timestamp.Timestamp { - if x != nil { - return x.ChangeDate +func (m *UserPhoneView) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate } return nil } type UpdateUserPhoneRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Phone string `protobuf:"bytes,1,opt,name=phone,proto3" json:"phone,omitempty"` + Phone string `protobuf:"bytes,1,opt,name=phone,proto3" json:"phone,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UpdateUserPhoneRequest) Reset() { - *x = UpdateUserPhoneRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateUserPhoneRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateUserPhoneRequest) ProtoMessage() {} - -func (x *UpdateUserPhoneRequest) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[16] - 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 UpdateUserPhoneRequest.ProtoReflect.Descriptor instead. +func (m *UpdateUserPhoneRequest) Reset() { *m = UpdateUserPhoneRequest{} } +func (m *UpdateUserPhoneRequest) String() string { return proto.CompactTextString(m) } +func (*UpdateUserPhoneRequest) ProtoMessage() {} func (*UpdateUserPhoneRequest) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{16} + return fileDescriptor_8bbd6f3875b0e874, []int{16} } -func (x *UpdateUserPhoneRequest) GetPhone() string { - if x != nil { - return x.Phone +func (m *UpdateUserPhoneRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateUserPhoneRequest.Unmarshal(m, b) +} +func (m *UpdateUserPhoneRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateUserPhoneRequest.Marshal(b, m, deterministic) +} +func (m *UpdateUserPhoneRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateUserPhoneRequest.Merge(m, src) +} +func (m *UpdateUserPhoneRequest) XXX_Size() int { + return xxx_messageInfo_UpdateUserPhoneRequest.Size(m) +} +func (m *UpdateUserPhoneRequest) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateUserPhoneRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateUserPhoneRequest proto.InternalMessageInfo + +func (m *UpdateUserPhoneRequest) GetPhone() string { + if m != nil { + return m.Phone } return "" } type VerifyUserPhoneRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *VerifyUserPhoneRequest) Reset() { - *x = VerifyUserPhoneRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *VerifyUserPhoneRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*VerifyUserPhoneRequest) ProtoMessage() {} - -func (x *VerifyUserPhoneRequest) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[17] - 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 VerifyUserPhoneRequest.ProtoReflect.Descriptor instead. +func (m *VerifyUserPhoneRequest) Reset() { *m = VerifyUserPhoneRequest{} } +func (m *VerifyUserPhoneRequest) String() string { return proto.CompactTextString(m) } +func (*VerifyUserPhoneRequest) ProtoMessage() {} func (*VerifyUserPhoneRequest) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{17} + return fileDescriptor_8bbd6f3875b0e874, []int{17} } -func (x *VerifyUserPhoneRequest) GetCode() string { - if x != nil { - return x.Code +func (m *VerifyUserPhoneRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VerifyUserPhoneRequest.Unmarshal(m, b) +} +func (m *VerifyUserPhoneRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VerifyUserPhoneRequest.Marshal(b, m, deterministic) +} +func (m *VerifyUserPhoneRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_VerifyUserPhoneRequest.Merge(m, src) +} +func (m *VerifyUserPhoneRequest) XXX_Size() int { + return xxx_messageInfo_VerifyUserPhoneRequest.Size(m) +} +func (m *VerifyUserPhoneRequest) XXX_DiscardUnknown() { + xxx_messageInfo_VerifyUserPhoneRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_VerifyUserPhoneRequest proto.InternalMessageInfo + +func (m *VerifyUserPhoneRequest) GetCode() string { + if m != nil { + return m.Code } return "" } type UserAddress struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserAddress) Reset() { - *x = UserAddress{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserAddress) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserAddress) ProtoMessage() {} - -func (x *UserAddress) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[18] - 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 UserAddress.ProtoReflect.Descriptor instead. +func (m *UserAddress) Reset() { *m = UserAddress{} } +func (m *UserAddress) String() string { return proto.CompactTextString(m) } +func (*UserAddress) ProtoMessage() {} func (*UserAddress) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{18} + return fileDescriptor_8bbd6f3875b0e874, []int{18} } -func (x *UserAddress) GetId() string { - if x != nil { - return x.Id +func (m *UserAddress) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserAddress.Unmarshal(m, b) +} +func (m *UserAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserAddress.Marshal(b, m, deterministic) +} +func (m *UserAddress) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserAddress.Merge(m, src) +} +func (m *UserAddress) XXX_Size() int { + return xxx_messageInfo_UserAddress.Size(m) +} +func (m *UserAddress) XXX_DiscardUnknown() { + xxx_messageInfo_UserAddress.DiscardUnknown(m) +} + +var xxx_messageInfo_UserAddress proto.InternalMessageInfo + +func (m *UserAddress) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *UserAddress) GetCountry() string { - if x != nil { - return x.Country +func (m *UserAddress) GetCountry() string { + if m != nil { + return m.Country } return "" } -func (x *UserAddress) GetLocality() string { - if x != nil { - return x.Locality +func (m *UserAddress) GetLocality() string { + if m != nil { + return m.Locality } return "" } -func (x *UserAddress) GetPostalCode() string { - if x != nil { - return x.PostalCode +func (m *UserAddress) GetPostalCode() string { + if m != nil { + return m.PostalCode } return "" } -func (x *UserAddress) GetRegion() string { - if x != nil { - return x.Region +func (m *UserAddress) GetRegion() string { + if m != nil { + return m.Region } return "" } -func (x *UserAddress) GetStreetAddress() string { - if x != nil { - return x.StreetAddress +func (m *UserAddress) GetStreetAddress() string { + if m != nil { + return m.StreetAddress } return "" } -func (x *UserAddress) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *UserAddress) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *UserAddress) GetCreationDate() *timestamp.Timestamp { - if x != nil { - return x.CreationDate +func (m *UserAddress) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate } return nil } -func (x *UserAddress) GetChangeDate() *timestamp.Timestamp { - if x != nil { - return x.ChangeDate +func (m *UserAddress) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate } return nil } type UserAddressView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserAddressView) Reset() { - *x = UserAddressView{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserAddressView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserAddressView) ProtoMessage() {} - -func (x *UserAddressView) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[19] - 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 UserAddressView.ProtoReflect.Descriptor instead. +func (m *UserAddressView) Reset() { *m = UserAddressView{} } +func (m *UserAddressView) String() string { return proto.CompactTextString(m) } +func (*UserAddressView) ProtoMessage() {} func (*UserAddressView) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{19} + return fileDescriptor_8bbd6f3875b0e874, []int{19} } -func (x *UserAddressView) GetId() string { - if x != nil { - return x.Id +func (m *UserAddressView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserAddressView.Unmarshal(m, b) +} +func (m *UserAddressView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserAddressView.Marshal(b, m, deterministic) +} +func (m *UserAddressView) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserAddressView.Merge(m, src) +} +func (m *UserAddressView) XXX_Size() int { + return xxx_messageInfo_UserAddressView.Size(m) +} +func (m *UserAddressView) XXX_DiscardUnknown() { + xxx_messageInfo_UserAddressView.DiscardUnknown(m) +} + +var xxx_messageInfo_UserAddressView proto.InternalMessageInfo + +func (m *UserAddressView) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *UserAddressView) GetCountry() string { - if x != nil { - return x.Country +func (m *UserAddressView) GetCountry() string { + if m != nil { + return m.Country } return "" } -func (x *UserAddressView) GetLocality() string { - if x != nil { - return x.Locality +func (m *UserAddressView) GetLocality() string { + if m != nil { + return m.Locality } return "" } -func (x *UserAddressView) GetPostalCode() string { - if x != nil { - return x.PostalCode +func (m *UserAddressView) GetPostalCode() string { + if m != nil { + return m.PostalCode } return "" } -func (x *UserAddressView) GetRegion() string { - if x != nil { - return x.Region +func (m *UserAddressView) GetRegion() string { + if m != nil { + return m.Region } return "" } -func (x *UserAddressView) GetStreetAddress() string { - if x != nil { - return x.StreetAddress +func (m *UserAddressView) GetStreetAddress() string { + if m != nil { + return m.StreetAddress } return "" } -func (x *UserAddressView) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *UserAddressView) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *UserAddressView) GetCreationDate() *timestamp.Timestamp { - if x != nil { - return x.CreationDate +func (m *UserAddressView) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate } return nil } -func (x *UserAddressView) GetChangeDate() *timestamp.Timestamp { - if x != nil { - return x.ChangeDate +func (m *UserAddressView) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate } return nil } type UpdateUserAddressRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Country string `protobuf:"bytes,1,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,2,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,3,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,4,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,5,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + Country string `protobuf:"bytes,1,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,2,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,3,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,4,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,5,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UpdateUserAddressRequest) Reset() { - *x = UpdateUserAddressRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateUserAddressRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateUserAddressRequest) ProtoMessage() {} - -func (x *UpdateUserAddressRequest) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[20] - 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 UpdateUserAddressRequest.ProtoReflect.Descriptor instead. +func (m *UpdateUserAddressRequest) Reset() { *m = UpdateUserAddressRequest{} } +func (m *UpdateUserAddressRequest) String() string { return proto.CompactTextString(m) } +func (*UpdateUserAddressRequest) ProtoMessage() {} func (*UpdateUserAddressRequest) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{20} + return fileDescriptor_8bbd6f3875b0e874, []int{20} } -func (x *UpdateUserAddressRequest) GetCountry() string { - if x != nil { - return x.Country +func (m *UpdateUserAddressRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateUserAddressRequest.Unmarshal(m, b) +} +func (m *UpdateUserAddressRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateUserAddressRequest.Marshal(b, m, deterministic) +} +func (m *UpdateUserAddressRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateUserAddressRequest.Merge(m, src) +} +func (m *UpdateUserAddressRequest) XXX_Size() int { + return xxx_messageInfo_UpdateUserAddressRequest.Size(m) +} +func (m *UpdateUserAddressRequest) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateUserAddressRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateUserAddressRequest proto.InternalMessageInfo + +func (m *UpdateUserAddressRequest) GetCountry() string { + if m != nil { + return m.Country } return "" } -func (x *UpdateUserAddressRequest) GetLocality() string { - if x != nil { - return x.Locality +func (m *UpdateUserAddressRequest) GetLocality() string { + if m != nil { + return m.Locality } return "" } -func (x *UpdateUserAddressRequest) GetPostalCode() string { - if x != nil { - return x.PostalCode +func (m *UpdateUserAddressRequest) GetPostalCode() string { + if m != nil { + return m.PostalCode } return "" } -func (x *UpdateUserAddressRequest) GetRegion() string { - if x != nil { - return x.Region +func (m *UpdateUserAddressRequest) GetRegion() string { + if m != nil { + return m.Region } return "" } -func (x *UpdateUserAddressRequest) GetStreetAddress() string { - if x != nil { - return x.StreetAddress +func (m *UpdateUserAddressRequest) GetStreetAddress() string { + if m != nil { + return m.StreetAddress } return "" } type PasswordChange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OldPassword string `protobuf:"bytes,1,opt,name=old_password,json=oldPassword,proto3" json:"old_password,omitempty"` - NewPassword string `protobuf:"bytes,2,opt,name=new_password,json=newPassword,proto3" json:"new_password,omitempty"` + OldPassword string `protobuf:"bytes,1,opt,name=old_password,json=oldPassword,proto3" json:"old_password,omitempty"` + NewPassword string `protobuf:"bytes,2,opt,name=new_password,json=newPassword,proto3" json:"new_password,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *PasswordChange) Reset() { - *x = PasswordChange{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PasswordChange) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PasswordChange) ProtoMessage() {} - -func (x *PasswordChange) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[21] - 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 PasswordChange.ProtoReflect.Descriptor instead. +func (m *PasswordChange) Reset() { *m = PasswordChange{} } +func (m *PasswordChange) String() string { return proto.CompactTextString(m) } +func (*PasswordChange) ProtoMessage() {} func (*PasswordChange) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{21} + return fileDescriptor_8bbd6f3875b0e874, []int{21} } -func (x *PasswordChange) GetOldPassword() string { - if x != nil { - return x.OldPassword +func (m *PasswordChange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PasswordChange.Unmarshal(m, b) +} +func (m *PasswordChange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PasswordChange.Marshal(b, m, deterministic) +} +func (m *PasswordChange) XXX_Merge(src proto.Message) { + xxx_messageInfo_PasswordChange.Merge(m, src) +} +func (m *PasswordChange) XXX_Size() int { + return xxx_messageInfo_PasswordChange.Size(m) +} +func (m *PasswordChange) XXX_DiscardUnknown() { + xxx_messageInfo_PasswordChange.DiscardUnknown(m) +} + +var xxx_messageInfo_PasswordChange proto.InternalMessageInfo + +func (m *PasswordChange) GetOldPassword() string { + if m != nil { + return m.OldPassword } return "" } -func (x *PasswordChange) GetNewPassword() string { - if x != nil { - return x.NewPassword +func (m *PasswordChange) GetNewPassword() string { + if m != nil { + return m.NewPassword } return "" } type VerifyMfaOtp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *VerifyMfaOtp) Reset() { - *x = VerifyMfaOtp{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *VerifyMfaOtp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*VerifyMfaOtp) ProtoMessage() {} - -func (x *VerifyMfaOtp) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[22] - 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 VerifyMfaOtp.ProtoReflect.Descriptor instead. +func (m *VerifyMfaOtp) Reset() { *m = VerifyMfaOtp{} } +func (m *VerifyMfaOtp) String() string { return proto.CompactTextString(m) } +func (*VerifyMfaOtp) ProtoMessage() {} func (*VerifyMfaOtp) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{22} + return fileDescriptor_8bbd6f3875b0e874, []int{22} } -func (x *VerifyMfaOtp) GetCode() string { - if x != nil { - return x.Code +func (m *VerifyMfaOtp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VerifyMfaOtp.Unmarshal(m, b) +} +func (m *VerifyMfaOtp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VerifyMfaOtp.Marshal(b, m, deterministic) +} +func (m *VerifyMfaOtp) XXX_Merge(src proto.Message) { + xxx_messageInfo_VerifyMfaOtp.Merge(m, src) +} +func (m *VerifyMfaOtp) XXX_Size() int { + return xxx_messageInfo_VerifyMfaOtp.Size(m) +} +func (m *VerifyMfaOtp) XXX_DiscardUnknown() { + xxx_messageInfo_VerifyMfaOtp.DiscardUnknown(m) +} + +var xxx_messageInfo_VerifyMfaOtp proto.InternalMessageInfo + +func (m *VerifyMfaOtp) GetCode() string { + if m != nil { + return m.Code } return "" } type MultiFactors struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Mfas []*MultiFactor `protobuf:"bytes,1,rep,name=mfas,proto3" json:"mfas,omitempty"` + Mfas []*MultiFactor `protobuf:"bytes,1,rep,name=mfas,proto3" json:"mfas,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MultiFactors) Reset() { - *x = MultiFactors{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MultiFactors) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MultiFactors) ProtoMessage() {} - -func (x *MultiFactors) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[23] - 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 MultiFactors.ProtoReflect.Descriptor instead. +func (m *MultiFactors) Reset() { *m = MultiFactors{} } +func (m *MultiFactors) String() string { return proto.CompactTextString(m) } +func (*MultiFactors) ProtoMessage() {} func (*MultiFactors) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{23} + return fileDescriptor_8bbd6f3875b0e874, []int{23} } -func (x *MultiFactors) GetMfas() []*MultiFactor { - if x != nil { - return x.Mfas +func (m *MultiFactors) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MultiFactors.Unmarshal(m, b) +} +func (m *MultiFactors) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MultiFactors.Marshal(b, m, deterministic) +} +func (m *MultiFactors) XXX_Merge(src proto.Message) { + xxx_messageInfo_MultiFactors.Merge(m, src) +} +func (m *MultiFactors) XXX_Size() int { + return xxx_messageInfo_MultiFactors.Size(m) +} +func (m *MultiFactors) XXX_DiscardUnknown() { + xxx_messageInfo_MultiFactors.DiscardUnknown(m) +} + +var xxx_messageInfo_MultiFactors proto.InternalMessageInfo + +func (m *MultiFactors) GetMfas() []*MultiFactor { + if m != nil { + return m.Mfas } return nil } type MultiFactor struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type MfaType `protobuf:"varint,1,opt,name=type,proto3,enum=caos.zitadel.auth.api.v1.MfaType" json:"type,omitempty"` - State MFAState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.auth.api.v1.MFAState" json:"state,omitempty"` + Type MfaType `protobuf:"varint,1,opt,name=type,proto3,enum=caos.zitadel.auth.api.v1.MfaType" json:"type,omitempty"` + State MFAState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.auth.api.v1.MFAState" json:"state,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MultiFactor) Reset() { - *x = MultiFactor{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MultiFactor) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MultiFactor) ProtoMessage() {} - -func (x *MultiFactor) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[24] - 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 MultiFactor.ProtoReflect.Descriptor instead. +func (m *MultiFactor) Reset() { *m = MultiFactor{} } +func (m *MultiFactor) String() string { return proto.CompactTextString(m) } +func (*MultiFactor) ProtoMessage() {} func (*MultiFactor) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{24} + return fileDescriptor_8bbd6f3875b0e874, []int{24} } -func (x *MultiFactor) GetType() MfaType { - if x != nil { - return x.Type +func (m *MultiFactor) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MultiFactor.Unmarshal(m, b) +} +func (m *MultiFactor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MultiFactor.Marshal(b, m, deterministic) +} +func (m *MultiFactor) XXX_Merge(src proto.Message) { + xxx_messageInfo_MultiFactor.Merge(m, src) +} +func (m *MultiFactor) XXX_Size() int { + return xxx_messageInfo_MultiFactor.Size(m) +} +func (m *MultiFactor) XXX_DiscardUnknown() { + xxx_messageInfo_MultiFactor.DiscardUnknown(m) +} + +var xxx_messageInfo_MultiFactor proto.InternalMessageInfo + +func (m *MultiFactor) GetType() MfaType { + if m != nil { + return m.Type } return MfaType_MFATYPE_UNSPECIFIED } -func (x *MultiFactor) GetState() MFAState { - if x != nil { - return x.State +func (m *MultiFactor) GetState() MFAState { + if m != nil { + return m.State } return MFAState_MFASTATE_UNSPECIFIED } type MfaOtpResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` - Secret string `protobuf:"bytes,3,opt,name=secret,proto3" json:"secret,omitempty"` - State MFAState `protobuf:"varint,4,opt,name=state,proto3,enum=caos.zitadel.auth.api.v1.MFAState" json:"state,omitempty"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Secret string `protobuf:"bytes,3,opt,name=secret,proto3" json:"secret,omitempty"` + State MFAState `protobuf:"varint,4,opt,name=state,proto3,enum=caos.zitadel.auth.api.v1.MFAState" json:"state,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MfaOtpResponse) Reset() { - *x = MfaOtpResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MfaOtpResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MfaOtpResponse) ProtoMessage() {} - -func (x *MfaOtpResponse) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[25] - 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 MfaOtpResponse.ProtoReflect.Descriptor instead. +func (m *MfaOtpResponse) Reset() { *m = MfaOtpResponse{} } +func (m *MfaOtpResponse) String() string { return proto.CompactTextString(m) } +func (*MfaOtpResponse) ProtoMessage() {} func (*MfaOtpResponse) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{25} + return fileDescriptor_8bbd6f3875b0e874, []int{25} } -func (x *MfaOtpResponse) GetUserId() string { - if x != nil { - return x.UserId +func (m *MfaOtpResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MfaOtpResponse.Unmarshal(m, b) +} +func (m *MfaOtpResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MfaOtpResponse.Marshal(b, m, deterministic) +} +func (m *MfaOtpResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MfaOtpResponse.Merge(m, src) +} +func (m *MfaOtpResponse) XXX_Size() int { + return xxx_messageInfo_MfaOtpResponse.Size(m) +} +func (m *MfaOtpResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MfaOtpResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MfaOtpResponse proto.InternalMessageInfo + +func (m *MfaOtpResponse) GetUserId() string { + if m != nil { + return m.UserId } return "" } -func (x *MfaOtpResponse) GetUrl() string { - if x != nil { - return x.Url +func (m *MfaOtpResponse) GetUrl() string { + if m != nil { + return m.Url } return "" } -func (x *MfaOtpResponse) GetSecret() string { - if x != nil { - return x.Secret +func (m *MfaOtpResponse) GetSecret() string { + if m != nil { + return m.Secret } return "" } -func (x *MfaOtpResponse) GetState() MFAState { - if x != nil { - return x.State +func (m *MfaOtpResponse) GetState() MFAState { + if m != nil { + return m.State } return MFAState_MFASTATE_UNSPECIFIED } type UserGrantSearchRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - SortingColumn UserGrantSearchKey `protobuf:"varint,3,opt,name=sorting_column,json=sortingColumn,proto3,enum=caos.zitadel.auth.api.v1.UserGrantSearchKey" json:"sorting_column,omitempty"` - Asc bool `protobuf:"varint,4,opt,name=asc,proto3" json:"asc,omitempty"` - Queries []*UserGrantSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + SortingColumn UserGrantSearchKey `protobuf:"varint,3,opt,name=sorting_column,json=sortingColumn,proto3,enum=caos.zitadel.auth.api.v1.UserGrantSearchKey" json:"sorting_column,omitempty"` + Asc bool `protobuf:"varint,4,opt,name=asc,proto3" json:"asc,omitempty"` + Queries []*UserGrantSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserGrantSearchRequest) Reset() { - *x = UserGrantSearchRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserGrantSearchRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserGrantSearchRequest) ProtoMessage() {} - -func (x *UserGrantSearchRequest) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[26] - 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 UserGrantSearchRequest.ProtoReflect.Descriptor instead. +func (m *UserGrantSearchRequest) Reset() { *m = UserGrantSearchRequest{} } +func (m *UserGrantSearchRequest) String() string { return proto.CompactTextString(m) } +func (*UserGrantSearchRequest) ProtoMessage() {} func (*UserGrantSearchRequest) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{26} + return fileDescriptor_8bbd6f3875b0e874, []int{26} } -func (x *UserGrantSearchRequest) GetOffset() uint64 { - if x != nil { - return x.Offset +func (m *UserGrantSearchRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserGrantSearchRequest.Unmarshal(m, b) +} +func (m *UserGrantSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserGrantSearchRequest.Marshal(b, m, deterministic) +} +func (m *UserGrantSearchRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserGrantSearchRequest.Merge(m, src) +} +func (m *UserGrantSearchRequest) XXX_Size() int { + return xxx_messageInfo_UserGrantSearchRequest.Size(m) +} +func (m *UserGrantSearchRequest) XXX_DiscardUnknown() { + xxx_messageInfo_UserGrantSearchRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_UserGrantSearchRequest proto.InternalMessageInfo + +func (m *UserGrantSearchRequest) GetOffset() uint64 { + if m != nil { + return m.Offset } return 0 } -func (x *UserGrantSearchRequest) GetLimit() uint64 { - if x != nil { - return x.Limit +func (m *UserGrantSearchRequest) GetLimit() uint64 { + if m != nil { + return m.Limit } return 0 } -func (x *UserGrantSearchRequest) GetSortingColumn() UserGrantSearchKey { - if x != nil { - return x.SortingColumn +func (m *UserGrantSearchRequest) GetSortingColumn() UserGrantSearchKey { + if m != nil { + return m.SortingColumn } return UserGrantSearchKey_UserGrantSearchKey_UNKNOWN } -func (x *UserGrantSearchRequest) GetAsc() bool { - if x != nil { - return x.Asc +func (m *UserGrantSearchRequest) GetAsc() bool { + if m != nil { + return m.Asc } return false } -func (x *UserGrantSearchRequest) GetQueries() []*UserGrantSearchQuery { - if x != nil { - return x.Queries +func (m *UserGrantSearchRequest) GetQueries() []*UserGrantSearchQuery { + if m != nil { + return m.Queries } return nil } type UserGrantSearchQuery struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Key UserGrantSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.auth.api.v1.UserGrantSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.auth.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` + Key UserGrantSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.auth.api.v1.UserGrantSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.auth.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserGrantSearchQuery) Reset() { - *x = UserGrantSearchQuery{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserGrantSearchQuery) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserGrantSearchQuery) ProtoMessage() {} - -func (x *UserGrantSearchQuery) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[27] - 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 UserGrantSearchQuery.ProtoReflect.Descriptor instead. +func (m *UserGrantSearchQuery) Reset() { *m = UserGrantSearchQuery{} } +func (m *UserGrantSearchQuery) String() string { return proto.CompactTextString(m) } +func (*UserGrantSearchQuery) ProtoMessage() {} func (*UserGrantSearchQuery) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{27} + return fileDescriptor_8bbd6f3875b0e874, []int{27} } -func (x *UserGrantSearchQuery) GetKey() UserGrantSearchKey { - if x != nil { - return x.Key +func (m *UserGrantSearchQuery) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserGrantSearchQuery.Unmarshal(m, b) +} +func (m *UserGrantSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserGrantSearchQuery.Marshal(b, m, deterministic) +} +func (m *UserGrantSearchQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserGrantSearchQuery.Merge(m, src) +} +func (m *UserGrantSearchQuery) XXX_Size() int { + return xxx_messageInfo_UserGrantSearchQuery.Size(m) +} +func (m *UserGrantSearchQuery) XXX_DiscardUnknown() { + xxx_messageInfo_UserGrantSearchQuery.DiscardUnknown(m) +} + +var xxx_messageInfo_UserGrantSearchQuery proto.InternalMessageInfo + +func (m *UserGrantSearchQuery) GetKey() UserGrantSearchKey { + if m != nil { + return m.Key } return UserGrantSearchKey_UserGrantSearchKey_UNKNOWN } -func (x *UserGrantSearchQuery) GetMethod() SearchMethod { - if x != nil { - return x.Method +func (m *UserGrantSearchQuery) GetMethod() SearchMethod { + if m != nil { + return m.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (x *UserGrantSearchQuery) GetValue() string { - if x != nil { - return x.Value +func (m *UserGrantSearchQuery) GetValue() string { + if m != nil { + return m.Value } return "" } type UserGrantSearchResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*UserGrantView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*UserGrantView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserGrantSearchResponse) Reset() { - *x = UserGrantSearchResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserGrantSearchResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserGrantSearchResponse) ProtoMessage() {} - -func (x *UserGrantSearchResponse) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[28] - 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 UserGrantSearchResponse.ProtoReflect.Descriptor instead. +func (m *UserGrantSearchResponse) Reset() { *m = UserGrantSearchResponse{} } +func (m *UserGrantSearchResponse) String() string { return proto.CompactTextString(m) } +func (*UserGrantSearchResponse) ProtoMessage() {} func (*UserGrantSearchResponse) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{28} + return fileDescriptor_8bbd6f3875b0e874, []int{28} } -func (x *UserGrantSearchResponse) GetOffset() uint64 { - if x != nil { - return x.Offset +func (m *UserGrantSearchResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserGrantSearchResponse.Unmarshal(m, b) +} +func (m *UserGrantSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserGrantSearchResponse.Marshal(b, m, deterministic) +} +func (m *UserGrantSearchResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserGrantSearchResponse.Merge(m, src) +} +func (m *UserGrantSearchResponse) XXX_Size() int { + return xxx_messageInfo_UserGrantSearchResponse.Size(m) +} +func (m *UserGrantSearchResponse) XXX_DiscardUnknown() { + xxx_messageInfo_UserGrantSearchResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_UserGrantSearchResponse proto.InternalMessageInfo + +func (m *UserGrantSearchResponse) GetOffset() uint64 { + if m != nil { + return m.Offset } return 0 } -func (x *UserGrantSearchResponse) GetLimit() uint64 { - if x != nil { - return x.Limit +func (m *UserGrantSearchResponse) GetLimit() uint64 { + if m != nil { + return m.Limit } return 0 } -func (x *UserGrantSearchResponse) GetTotalResult() uint64 { - if x != nil { - return x.TotalResult +func (m *UserGrantSearchResponse) GetTotalResult() uint64 { + if m != nil { + return m.TotalResult } return 0 } -func (x *UserGrantSearchResponse) GetResult() []*UserGrantView { - if x != nil { - return x.Result +func (m *UserGrantSearchResponse) GetResult() []*UserGrantView { + if m != nil { + return m.Result } return nil } -func (x *UserGrantSearchResponse) GetProcessedSequence() uint64 { - if x != nil { - return x.ProcessedSequence +func (m *UserGrantSearchResponse) GetProcessedSequence() uint64 { + if m != nil { + return m.ProcessedSequence } return 0 } -func (x *UserGrantSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if x != nil { - return x.ViewTimestamp +func (m *UserGrantSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if m != nil { + return m.ViewTimestamp } return nil } type UserGrantView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OrgId string `protobuf:"bytes,1,opt,name=OrgId,proto3" json:"OrgId,omitempty"` - ProjectId string `protobuf:"bytes,2,opt,name=ProjectId,proto3" json:"ProjectId,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` - Roles []string `protobuf:"bytes,4,rep,name=Roles,proto3" json:"Roles,omitempty"` - OrgName string `protobuf:"bytes,5,opt,name=OrgName,proto3" json:"OrgName,omitempty"` - GrantId string `protobuf:"bytes,6,opt,name=GrantId,proto3" json:"GrantId,omitempty"` + OrgId string `protobuf:"bytes,1,opt,name=OrgId,proto3" json:"OrgId,omitempty"` + ProjectId string `protobuf:"bytes,2,opt,name=ProjectId,proto3" json:"ProjectId,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` + Roles []string `protobuf:"bytes,4,rep,name=Roles,proto3" json:"Roles,omitempty"` + OrgName string `protobuf:"bytes,5,opt,name=OrgName,proto3" json:"OrgName,omitempty"` + GrantId string `protobuf:"bytes,6,opt,name=GrantId,proto3" json:"GrantId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserGrantView) Reset() { - *x = UserGrantView{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserGrantView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserGrantView) ProtoMessage() {} - -func (x *UserGrantView) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[29] - 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 UserGrantView.ProtoReflect.Descriptor instead. +func (m *UserGrantView) Reset() { *m = UserGrantView{} } +func (m *UserGrantView) String() string { return proto.CompactTextString(m) } +func (*UserGrantView) ProtoMessage() {} func (*UserGrantView) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{29} + return fileDescriptor_8bbd6f3875b0e874, []int{29} } -func (x *UserGrantView) GetOrgId() string { - if x != nil { - return x.OrgId +func (m *UserGrantView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserGrantView.Unmarshal(m, b) +} +func (m *UserGrantView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserGrantView.Marshal(b, m, deterministic) +} +func (m *UserGrantView) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserGrantView.Merge(m, src) +} +func (m *UserGrantView) XXX_Size() int { + return xxx_messageInfo_UserGrantView.Size(m) +} +func (m *UserGrantView) XXX_DiscardUnknown() { + xxx_messageInfo_UserGrantView.DiscardUnknown(m) +} + +var xxx_messageInfo_UserGrantView proto.InternalMessageInfo + +func (m *UserGrantView) GetOrgId() string { + if m != nil { + return m.OrgId } return "" } -func (x *UserGrantView) GetProjectId() string { - if x != nil { - return x.ProjectId +func (m *UserGrantView) GetProjectId() string { + if m != nil { + return m.ProjectId } return "" } -func (x *UserGrantView) GetUserId() string { - if x != nil { - return x.UserId +func (m *UserGrantView) GetUserId() string { + if m != nil { + return m.UserId } return "" } -func (x *UserGrantView) GetRoles() []string { - if x != nil { - return x.Roles +func (m *UserGrantView) GetRoles() []string { + if m != nil { + return m.Roles } return nil } -func (x *UserGrantView) GetOrgName() string { - if x != nil { - return x.OrgName +func (m *UserGrantView) GetOrgName() string { + if m != nil { + return m.OrgName } return "" } -func (x *UserGrantView) GetGrantId() string { - if x != nil { - return x.GrantId +func (m *UserGrantView) GetGrantId() string { + if m != nil { + return m.GrantId } return "" } type MyProjectOrgSearchRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - Asc bool `protobuf:"varint,4,opt,name=asc,proto3" json:"asc,omitempty"` - Queries []*MyProjectOrgSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Asc bool `protobuf:"varint,4,opt,name=asc,proto3" json:"asc,omitempty"` + Queries []*MyProjectOrgSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MyProjectOrgSearchRequest) Reset() { - *x = MyProjectOrgSearchRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MyProjectOrgSearchRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MyProjectOrgSearchRequest) ProtoMessage() {} - -func (x *MyProjectOrgSearchRequest) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[30] - 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 MyProjectOrgSearchRequest.ProtoReflect.Descriptor instead. +func (m *MyProjectOrgSearchRequest) Reset() { *m = MyProjectOrgSearchRequest{} } +func (m *MyProjectOrgSearchRequest) String() string { return proto.CompactTextString(m) } +func (*MyProjectOrgSearchRequest) ProtoMessage() {} func (*MyProjectOrgSearchRequest) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{30} + return fileDescriptor_8bbd6f3875b0e874, []int{30} } -func (x *MyProjectOrgSearchRequest) GetOffset() uint64 { - if x != nil { - return x.Offset +func (m *MyProjectOrgSearchRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MyProjectOrgSearchRequest.Unmarshal(m, b) +} +func (m *MyProjectOrgSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MyProjectOrgSearchRequest.Marshal(b, m, deterministic) +} +func (m *MyProjectOrgSearchRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MyProjectOrgSearchRequest.Merge(m, src) +} +func (m *MyProjectOrgSearchRequest) XXX_Size() int { + return xxx_messageInfo_MyProjectOrgSearchRequest.Size(m) +} +func (m *MyProjectOrgSearchRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MyProjectOrgSearchRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MyProjectOrgSearchRequest proto.InternalMessageInfo + +func (m *MyProjectOrgSearchRequest) GetOffset() uint64 { + if m != nil { + return m.Offset } return 0 } -func (x *MyProjectOrgSearchRequest) GetLimit() uint64 { - if x != nil { - return x.Limit +func (m *MyProjectOrgSearchRequest) GetLimit() uint64 { + if m != nil { + return m.Limit } return 0 } -func (x *MyProjectOrgSearchRequest) GetAsc() bool { - if x != nil { - return x.Asc +func (m *MyProjectOrgSearchRequest) GetAsc() bool { + if m != nil { + return m.Asc } return false } -func (x *MyProjectOrgSearchRequest) GetQueries() []*MyProjectOrgSearchQuery { - if x != nil { - return x.Queries +func (m *MyProjectOrgSearchRequest) GetQueries() []*MyProjectOrgSearchQuery { + if m != nil { + return m.Queries } return nil } type MyProjectOrgSearchQuery struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Key MyProjectOrgSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.auth.api.v1.MyProjectOrgSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.auth.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` + Key MyProjectOrgSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.auth.api.v1.MyProjectOrgSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.auth.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MyProjectOrgSearchQuery) Reset() { - *x = MyProjectOrgSearchQuery{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MyProjectOrgSearchQuery) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MyProjectOrgSearchQuery) ProtoMessage() {} - -func (x *MyProjectOrgSearchQuery) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[31] - 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 MyProjectOrgSearchQuery.ProtoReflect.Descriptor instead. +func (m *MyProjectOrgSearchQuery) Reset() { *m = MyProjectOrgSearchQuery{} } +func (m *MyProjectOrgSearchQuery) String() string { return proto.CompactTextString(m) } +func (*MyProjectOrgSearchQuery) ProtoMessage() {} func (*MyProjectOrgSearchQuery) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{31} + return fileDescriptor_8bbd6f3875b0e874, []int{31} } -func (x *MyProjectOrgSearchQuery) GetKey() MyProjectOrgSearchKey { - if x != nil { - return x.Key +func (m *MyProjectOrgSearchQuery) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MyProjectOrgSearchQuery.Unmarshal(m, b) +} +func (m *MyProjectOrgSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MyProjectOrgSearchQuery.Marshal(b, m, deterministic) +} +func (m *MyProjectOrgSearchQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_MyProjectOrgSearchQuery.Merge(m, src) +} +func (m *MyProjectOrgSearchQuery) XXX_Size() int { + return xxx_messageInfo_MyProjectOrgSearchQuery.Size(m) +} +func (m *MyProjectOrgSearchQuery) XXX_DiscardUnknown() { + xxx_messageInfo_MyProjectOrgSearchQuery.DiscardUnknown(m) +} + +var xxx_messageInfo_MyProjectOrgSearchQuery proto.InternalMessageInfo + +func (m *MyProjectOrgSearchQuery) GetKey() MyProjectOrgSearchKey { + if m != nil { + return m.Key } return MyProjectOrgSearchKey_MYPROJECTORGSEARCHKEY_UNSPECIFIED } -func (x *MyProjectOrgSearchQuery) GetMethod() SearchMethod { - if x != nil { - return x.Method +func (m *MyProjectOrgSearchQuery) GetMethod() SearchMethod { + if m != nil { + return m.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (x *MyProjectOrgSearchQuery) GetValue() string { - if x != nil { - return x.Value +func (m *MyProjectOrgSearchQuery) GetValue() string { + if m != nil { + return m.Value } return "" } type MyProjectOrgSearchResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*Org `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*Org `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MyProjectOrgSearchResponse) Reset() { - *x = MyProjectOrgSearchResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MyProjectOrgSearchResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MyProjectOrgSearchResponse) ProtoMessage() {} - -func (x *MyProjectOrgSearchResponse) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[32] - 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 MyProjectOrgSearchResponse.ProtoReflect.Descriptor instead. +func (m *MyProjectOrgSearchResponse) Reset() { *m = MyProjectOrgSearchResponse{} } +func (m *MyProjectOrgSearchResponse) String() string { return proto.CompactTextString(m) } +func (*MyProjectOrgSearchResponse) ProtoMessage() {} func (*MyProjectOrgSearchResponse) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{32} + return fileDescriptor_8bbd6f3875b0e874, []int{32} } -func (x *MyProjectOrgSearchResponse) GetOffset() uint64 { - if x != nil { - return x.Offset +func (m *MyProjectOrgSearchResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MyProjectOrgSearchResponse.Unmarshal(m, b) +} +func (m *MyProjectOrgSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MyProjectOrgSearchResponse.Marshal(b, m, deterministic) +} +func (m *MyProjectOrgSearchResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MyProjectOrgSearchResponse.Merge(m, src) +} +func (m *MyProjectOrgSearchResponse) XXX_Size() int { + return xxx_messageInfo_MyProjectOrgSearchResponse.Size(m) +} +func (m *MyProjectOrgSearchResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MyProjectOrgSearchResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MyProjectOrgSearchResponse proto.InternalMessageInfo + +func (m *MyProjectOrgSearchResponse) GetOffset() uint64 { + if m != nil { + return m.Offset } return 0 } -func (x *MyProjectOrgSearchResponse) GetLimit() uint64 { - if x != nil { - return x.Limit +func (m *MyProjectOrgSearchResponse) GetLimit() uint64 { + if m != nil { + return m.Limit } return 0 } -func (x *MyProjectOrgSearchResponse) GetTotalResult() uint64 { - if x != nil { - return x.TotalResult +func (m *MyProjectOrgSearchResponse) GetTotalResult() uint64 { + if m != nil { + return m.TotalResult } return 0 } -func (x *MyProjectOrgSearchResponse) GetResult() []*Org { - if x != nil { - return x.Result +func (m *MyProjectOrgSearchResponse) GetResult() []*Org { + if m != nil { + return m.Result } return nil } type Org struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *Org) Reset() { - *x = Org{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Org) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Org) ProtoMessage() {} - -func (x *Org) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[33] - 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 Org.ProtoReflect.Descriptor instead. +func (m *Org) Reset() { *m = Org{} } +func (m *Org) String() string { return proto.CompactTextString(m) } +func (*Org) ProtoMessage() {} func (*Org) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{33} + return fileDescriptor_8bbd6f3875b0e874, []int{33} } -func (x *Org) GetId() string { - if x != nil { - return x.Id +func (m *Org) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Org.Unmarshal(m, b) +} +func (m *Org) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Org.Marshal(b, m, deterministic) +} +func (m *Org) XXX_Merge(src proto.Message) { + xxx_messageInfo_Org.Merge(m, src) +} +func (m *Org) XXX_Size() int { + return xxx_messageInfo_Org.Size(m) +} +func (m *Org) XXX_DiscardUnknown() { + xxx_messageInfo_Org.DiscardUnknown(m) +} + +var xxx_messageInfo_Org proto.InternalMessageInfo + +func (m *Org) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *Org) GetName() string { - if x != nil { - return x.Name +func (m *Org) GetName() string { + if m != nil { + return m.Name } return "" } type MyPermissions struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Permissions []string `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"` + Permissions []string `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MyPermissions) Reset() { - *x = MyPermissions{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MyPermissions) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MyPermissions) ProtoMessage() {} - -func (x *MyPermissions) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[34] - 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 MyPermissions.ProtoReflect.Descriptor instead. +func (m *MyPermissions) Reset() { *m = MyPermissions{} } +func (m *MyPermissions) String() string { return proto.CompactTextString(m) } +func (*MyPermissions) ProtoMessage() {} func (*MyPermissions) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{34} + return fileDescriptor_8bbd6f3875b0e874, []int{34} } -func (x *MyPermissions) GetPermissions() []string { - if x != nil { - return x.Permissions +func (m *MyPermissions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MyPermissions.Unmarshal(m, b) +} +func (m *MyPermissions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MyPermissions.Marshal(b, m, deterministic) +} +func (m *MyPermissions) XXX_Merge(src proto.Message) { + xxx_messageInfo_MyPermissions.Merge(m, src) +} +func (m *MyPermissions) XXX_Size() int { + return xxx_messageInfo_MyPermissions.Size(m) +} +func (m *MyPermissions) XXX_DiscardUnknown() { + xxx_messageInfo_MyPermissions.DiscardUnknown(m) +} + +var xxx_messageInfo_MyPermissions proto.InternalMessageInfo + +func (m *MyPermissions) GetPermissions() []string { + if m != nil { + return m.Permissions } return nil } type ChangesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Limit uint64 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` - SequenceOffset uint64 `protobuf:"varint,2,opt,name=sequence_offset,json=sequenceOffset,proto3" json:"sequence_offset,omitempty"` - Asc bool `protobuf:"varint,3,opt,name=asc,proto3" json:"asc,omitempty"` + Limit uint64 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` + SequenceOffset uint64 `protobuf:"varint,2,opt,name=sequence_offset,json=sequenceOffset,proto3" json:"sequence_offset,omitempty"` + Asc bool `protobuf:"varint,3,opt,name=asc,proto3" json:"asc,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ChangesRequest) Reset() { - *x = ChangesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangesRequest) ProtoMessage() {} - -func (x *ChangesRequest) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[35] - 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 ChangesRequest.ProtoReflect.Descriptor instead. +func (m *ChangesRequest) Reset() { *m = ChangesRequest{} } +func (m *ChangesRequest) String() string { return proto.CompactTextString(m) } +func (*ChangesRequest) ProtoMessage() {} func (*ChangesRequest) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{35} + return fileDescriptor_8bbd6f3875b0e874, []int{35} } -func (x *ChangesRequest) GetLimit() uint64 { - if x != nil { - return x.Limit +func (m *ChangesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChangesRequest.Unmarshal(m, b) +} +func (m *ChangesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChangesRequest.Marshal(b, m, deterministic) +} +func (m *ChangesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChangesRequest.Merge(m, src) +} +func (m *ChangesRequest) XXX_Size() int { + return xxx_messageInfo_ChangesRequest.Size(m) +} +func (m *ChangesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ChangesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ChangesRequest proto.InternalMessageInfo + +func (m *ChangesRequest) GetLimit() uint64 { + if m != nil { + return m.Limit } return 0 } -func (x *ChangesRequest) GetSequenceOffset() uint64 { - if x != nil { - return x.SequenceOffset +func (m *ChangesRequest) GetSequenceOffset() uint64 { + if m != nil { + return m.SequenceOffset } return 0 } -func (x *ChangesRequest) GetAsc() bool { - if x != nil { - return x.Asc +func (m *ChangesRequest) GetAsc() bool { + if m != nil { + return m.Asc } return false } type Changes struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` - Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` + Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` + Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *Changes) Reset() { - *x = Changes{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Changes) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Changes) ProtoMessage() {} - -func (x *Changes) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[36] - 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 Changes.ProtoReflect.Descriptor instead. +func (m *Changes) Reset() { *m = Changes{} } +func (m *Changes) String() string { return proto.CompactTextString(m) } +func (*Changes) ProtoMessage() {} func (*Changes) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{36} + return fileDescriptor_8bbd6f3875b0e874, []int{36} } -func (x *Changes) GetChanges() []*Change { - if x != nil { - return x.Changes +func (m *Changes) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Changes.Unmarshal(m, b) +} +func (m *Changes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Changes.Marshal(b, m, deterministic) +} +func (m *Changes) XXX_Merge(src proto.Message) { + xxx_messageInfo_Changes.Merge(m, src) +} +func (m *Changes) XXX_Size() int { + return xxx_messageInfo_Changes.Size(m) +} +func (m *Changes) XXX_DiscardUnknown() { + xxx_messageInfo_Changes.DiscardUnknown(m) +} + +var xxx_messageInfo_Changes proto.InternalMessageInfo + +func (m *Changes) GetChanges() []*Change { + if m != nil { + return m.Changes } return nil } -func (x *Changes) GetOffset() uint64 { - if x != nil { - return x.Offset +func (m *Changes) GetOffset() uint64 { + if m != nil { + return m.Offset } return 0 } -func (x *Changes) GetLimit() uint64 { - if x != nil { - return x.Limit +func (m *Changes) GetLimit() uint64 { + if m != nil { + return m.Limit } return 0 } type Change struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ChangeDate *timestamp.Timestamp `protobuf:"bytes,1,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - EventType *message.LocalizedMessage `protobuf:"bytes,2,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` - Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` - EditorId string `protobuf:"bytes,4,opt,name=editor_id,json=editorId,proto3" json:"editor_id,omitempty"` - Editor string `protobuf:"bytes,5,opt,name=editor,proto3" json:"editor,omitempty"` - Data *_struct.Struct `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,1,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + EventType *message.LocalizedMessage `protobuf:"bytes,2,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` + Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` + EditorId string `protobuf:"bytes,4,opt,name=editor_id,json=editorId,proto3" json:"editor_id,omitempty"` + Editor string `protobuf:"bytes,5,opt,name=editor,proto3" json:"editor,omitempty"` + Data *_struct.Struct `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *Change) Reset() { - *x = Change{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Change) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Change) ProtoMessage() {} - -func (x *Change) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[37] - 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 Change.ProtoReflect.Descriptor instead. +func (m *Change) Reset() { *m = Change{} } +func (m *Change) String() string { return proto.CompactTextString(m) } +func (*Change) ProtoMessage() {} func (*Change) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{37} + return fileDescriptor_8bbd6f3875b0e874, []int{37} } -func (x *Change) GetChangeDate() *timestamp.Timestamp { - if x != nil { - return x.ChangeDate +func (m *Change) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Change.Unmarshal(m, b) +} +func (m *Change) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Change.Marshal(b, m, deterministic) +} +func (m *Change) XXX_Merge(src proto.Message) { + xxx_messageInfo_Change.Merge(m, src) +} +func (m *Change) XXX_Size() int { + return xxx_messageInfo_Change.Size(m) +} +func (m *Change) XXX_DiscardUnknown() { + xxx_messageInfo_Change.DiscardUnknown(m) +} + +var xxx_messageInfo_Change proto.InternalMessageInfo + +func (m *Change) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate } return nil } -func (x *Change) GetEventType() *message.LocalizedMessage { - if x != nil { - return x.EventType +func (m *Change) GetEventType() *message.LocalizedMessage { + if m != nil { + return m.EventType } return nil } -func (x *Change) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *Change) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *Change) GetEditorId() string { - if x != nil { - return x.EditorId +func (m *Change) GetEditorId() string { + if m != nil { + return m.EditorId } return "" } -func (x *Change) GetEditor() string { - if x != nil { - return x.Editor +func (m *Change) GetEditor() string { + if m != nil { + return m.Editor } return "" } -func (x *Change) GetData() *_struct.Struct { - if x != nil { - return x.Data +func (m *Change) GetData() *_struct.Struct { + if m != nil { + return m.Data } return nil } type PasswordComplexityPolicy struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - MinLength uint64 `protobuf:"varint,5,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` - HasLowercase bool `protobuf:"varint,6,opt,name=has_lowercase,json=hasLowercase,proto3" json:"has_lowercase,omitempty"` - HasUppercase bool `protobuf:"varint,7,opt,name=has_uppercase,json=hasUppercase,proto3" json:"has_uppercase,omitempty"` - HasNumber bool `protobuf:"varint,8,opt,name=has_number,json=hasNumber,proto3" json:"has_number,omitempty"` - HasSymbol bool `protobuf:"varint,9,opt,name=has_symbol,json=hasSymbol,proto3" json:"has_symbol,omitempty"` - Sequence uint64 `protobuf:"varint,10,opt,name=sequence,proto3" json:"sequence,omitempty"` - IsDefault bool `protobuf:"varint,11,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + MinLength uint64 `protobuf:"varint,5,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` + HasLowercase bool `protobuf:"varint,6,opt,name=has_lowercase,json=hasLowercase,proto3" json:"has_lowercase,omitempty"` + HasUppercase bool `protobuf:"varint,7,opt,name=has_uppercase,json=hasUppercase,proto3" json:"has_uppercase,omitempty"` + HasNumber bool `protobuf:"varint,8,opt,name=has_number,json=hasNumber,proto3" json:"has_number,omitempty"` + HasSymbol bool `protobuf:"varint,9,opt,name=has_symbol,json=hasSymbol,proto3" json:"has_symbol,omitempty"` + Sequence uint64 `protobuf:"varint,10,opt,name=sequence,proto3" json:"sequence,omitempty"` + IsDefault bool `protobuf:"varint,11,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *PasswordComplexityPolicy) Reset() { - *x = PasswordComplexityPolicy{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PasswordComplexityPolicy) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PasswordComplexityPolicy) ProtoMessage() {} - -func (x *PasswordComplexityPolicy) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[38] - 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 PasswordComplexityPolicy.ProtoReflect.Descriptor instead. +func (m *PasswordComplexityPolicy) Reset() { *m = PasswordComplexityPolicy{} } +func (m *PasswordComplexityPolicy) String() string { return proto.CompactTextString(m) } +func (*PasswordComplexityPolicy) ProtoMessage() {} func (*PasswordComplexityPolicy) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{38} + return fileDescriptor_8bbd6f3875b0e874, []int{38} } -func (x *PasswordComplexityPolicy) GetId() string { - if x != nil { - return x.Id +func (m *PasswordComplexityPolicy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PasswordComplexityPolicy.Unmarshal(m, b) +} +func (m *PasswordComplexityPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PasswordComplexityPolicy.Marshal(b, m, deterministic) +} +func (m *PasswordComplexityPolicy) XXX_Merge(src proto.Message) { + xxx_messageInfo_PasswordComplexityPolicy.Merge(m, src) +} +func (m *PasswordComplexityPolicy) XXX_Size() int { + return xxx_messageInfo_PasswordComplexityPolicy.Size(m) +} +func (m *PasswordComplexityPolicy) XXX_DiscardUnknown() { + xxx_messageInfo_PasswordComplexityPolicy.DiscardUnknown(m) +} + +var xxx_messageInfo_PasswordComplexityPolicy proto.InternalMessageInfo + +func (m *PasswordComplexityPolicy) GetId() string { + if m != nil { + return m.Id } return "" } -func (x *PasswordComplexityPolicy) GetDescription() string { - if x != nil { - return x.Description +func (m *PasswordComplexityPolicy) GetDescription() string { + if m != nil { + return m.Description } return "" } -func (x *PasswordComplexityPolicy) GetCreationDate() *timestamp.Timestamp { - if x != nil { - return x.CreationDate +func (m *PasswordComplexityPolicy) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate } return nil } -func (x *PasswordComplexityPolicy) GetChangeDate() *timestamp.Timestamp { - if x != nil { - return x.ChangeDate +func (m *PasswordComplexityPolicy) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate } return nil } -func (x *PasswordComplexityPolicy) GetMinLength() uint64 { - if x != nil { - return x.MinLength +func (m *PasswordComplexityPolicy) GetMinLength() uint64 { + if m != nil { + return m.MinLength } return 0 } -func (x *PasswordComplexityPolicy) GetHasLowercase() bool { - if x != nil { - return x.HasLowercase +func (m *PasswordComplexityPolicy) GetHasLowercase() bool { + if m != nil { + return m.HasLowercase } return false } -func (x *PasswordComplexityPolicy) GetHasUppercase() bool { - if x != nil { - return x.HasUppercase +func (m *PasswordComplexityPolicy) GetHasUppercase() bool { + if m != nil { + return m.HasUppercase } return false } -func (x *PasswordComplexityPolicy) GetHasNumber() bool { - if x != nil { - return x.HasNumber +func (m *PasswordComplexityPolicy) GetHasNumber() bool { + if m != nil { + return m.HasNumber } return false } -func (x *PasswordComplexityPolicy) GetHasSymbol() bool { - if x != nil { - return x.HasSymbol +func (m *PasswordComplexityPolicy) GetHasSymbol() bool { + if m != nil { + return m.HasSymbol } return false } -func (x *PasswordComplexityPolicy) GetSequence() uint64 { - if x != nil { - return x.Sequence +func (m *PasswordComplexityPolicy) GetSequence() uint64 { + if m != nil { + return m.Sequence } return 0 } -func (x *PasswordComplexityPolicy) GetIsDefault() bool { - if x != nil { - return x.IsDefault +func (m *PasswordComplexityPolicy) GetIsDefault() bool { + if m != nil { + return m.IsDefault } return false } type ExternalIDPResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ExternalIDPResponse) Reset() { - *x = ExternalIDPResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ExternalIDPResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExternalIDPResponse) ProtoMessage() {} - -func (x *ExternalIDPResponse) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[39] - 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 ExternalIDPResponse.ProtoReflect.Descriptor instead. +func (m *ExternalIDPResponse) Reset() { *m = ExternalIDPResponse{} } +func (m *ExternalIDPResponse) String() string { return proto.CompactTextString(m) } +func (*ExternalIDPResponse) ProtoMessage() {} func (*ExternalIDPResponse) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{39} + return fileDescriptor_8bbd6f3875b0e874, []int{39} } -func (x *ExternalIDPResponse) GetIdpConfigId() string { - if x != nil { - return x.IdpConfigId +func (m *ExternalIDPResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExternalIDPResponse.Unmarshal(m, b) +} +func (m *ExternalIDPResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExternalIDPResponse.Marshal(b, m, deterministic) +} +func (m *ExternalIDPResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExternalIDPResponse.Merge(m, src) +} +func (m *ExternalIDPResponse) XXX_Size() int { + return xxx_messageInfo_ExternalIDPResponse.Size(m) +} +func (m *ExternalIDPResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ExternalIDPResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ExternalIDPResponse proto.InternalMessageInfo + +func (m *ExternalIDPResponse) GetIdpConfigId() string { + if m != nil { + return m.IdpConfigId } return "" } -func (x *ExternalIDPResponse) GetUserId() string { - if x != nil { - return x.UserId +func (m *ExternalIDPResponse) GetUserId() string { + if m != nil { + return m.UserId } return "" } -func (x *ExternalIDPResponse) GetDisplayName() string { - if x != nil { - return x.DisplayName +func (m *ExternalIDPResponse) GetDisplayName() string { + if m != nil { + return m.DisplayName } return "" } type ExternalIDPRemoveRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` - ExternalUserId string `protobuf:"bytes,2,opt,name=external_user_id,json=externalUserId,proto3" json:"external_user_id,omitempty"` + IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` + ExternalUserId string `protobuf:"bytes,2,opt,name=external_user_id,json=externalUserId,proto3" json:"external_user_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ExternalIDPRemoveRequest) Reset() { - *x = ExternalIDPRemoveRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ExternalIDPRemoveRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExternalIDPRemoveRequest) ProtoMessage() {} - -func (x *ExternalIDPRemoveRequest) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[40] - 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 ExternalIDPRemoveRequest.ProtoReflect.Descriptor instead. +func (m *ExternalIDPRemoveRequest) Reset() { *m = ExternalIDPRemoveRequest{} } +func (m *ExternalIDPRemoveRequest) String() string { return proto.CompactTextString(m) } +func (*ExternalIDPRemoveRequest) ProtoMessage() {} func (*ExternalIDPRemoveRequest) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{40} + return fileDescriptor_8bbd6f3875b0e874, []int{40} } -func (x *ExternalIDPRemoveRequest) GetIdpConfigId() string { - if x != nil { - return x.IdpConfigId +func (m *ExternalIDPRemoveRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExternalIDPRemoveRequest.Unmarshal(m, b) +} +func (m *ExternalIDPRemoveRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExternalIDPRemoveRequest.Marshal(b, m, deterministic) +} +func (m *ExternalIDPRemoveRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExternalIDPRemoveRequest.Merge(m, src) +} +func (m *ExternalIDPRemoveRequest) XXX_Size() int { + return xxx_messageInfo_ExternalIDPRemoveRequest.Size(m) +} +func (m *ExternalIDPRemoveRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ExternalIDPRemoveRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ExternalIDPRemoveRequest proto.InternalMessageInfo + +func (m *ExternalIDPRemoveRequest) GetIdpConfigId() string { + if m != nil { + return m.IdpConfigId } return "" } -func (x *ExternalIDPRemoveRequest) GetExternalUserId() string { - if x != nil { - return x.ExternalUserId +func (m *ExternalIDPRemoveRequest) GetExternalUserId() string { + if m != nil { + return m.ExternalUserId } return "" } type ExternalIDPSearchRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ExternalIDPSearchRequest) Reset() { - *x = ExternalIDPSearchRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ExternalIDPSearchRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExternalIDPSearchRequest) ProtoMessage() {} - -func (x *ExternalIDPSearchRequest) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[41] - 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 ExternalIDPSearchRequest.ProtoReflect.Descriptor instead. +func (m *ExternalIDPSearchRequest) Reset() { *m = ExternalIDPSearchRequest{} } +func (m *ExternalIDPSearchRequest) String() string { return proto.CompactTextString(m) } +func (*ExternalIDPSearchRequest) ProtoMessage() {} func (*ExternalIDPSearchRequest) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{41} + return fileDescriptor_8bbd6f3875b0e874, []int{41} } -func (x *ExternalIDPSearchRequest) GetOffset() uint64 { - if x != nil { - return x.Offset +func (m *ExternalIDPSearchRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExternalIDPSearchRequest.Unmarshal(m, b) +} +func (m *ExternalIDPSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExternalIDPSearchRequest.Marshal(b, m, deterministic) +} +func (m *ExternalIDPSearchRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExternalIDPSearchRequest.Merge(m, src) +} +func (m *ExternalIDPSearchRequest) XXX_Size() int { + return xxx_messageInfo_ExternalIDPSearchRequest.Size(m) +} +func (m *ExternalIDPSearchRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ExternalIDPSearchRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ExternalIDPSearchRequest proto.InternalMessageInfo + +func (m *ExternalIDPSearchRequest) GetOffset() uint64 { + if m != nil { + return m.Offset } return 0 } -func (x *ExternalIDPSearchRequest) GetLimit() uint64 { - if x != nil { - return x.Limit +func (m *ExternalIDPSearchRequest) GetLimit() uint64 { + if m != nil { + return m.Limit } return 0 } type ExternalIDPSearchResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*ExternalIDPView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*ExternalIDPView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ExternalIDPSearchResponse) Reset() { - *x = ExternalIDPSearchResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ExternalIDPSearchResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExternalIDPSearchResponse) ProtoMessage() {} - -func (x *ExternalIDPSearchResponse) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[42] - 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 ExternalIDPSearchResponse.ProtoReflect.Descriptor instead. +func (m *ExternalIDPSearchResponse) Reset() { *m = ExternalIDPSearchResponse{} } +func (m *ExternalIDPSearchResponse) String() string { return proto.CompactTextString(m) } +func (*ExternalIDPSearchResponse) ProtoMessage() {} func (*ExternalIDPSearchResponse) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{42} + return fileDescriptor_8bbd6f3875b0e874, []int{42} } -func (x *ExternalIDPSearchResponse) GetOffset() uint64 { - if x != nil { - return x.Offset +func (m *ExternalIDPSearchResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExternalIDPSearchResponse.Unmarshal(m, b) +} +func (m *ExternalIDPSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExternalIDPSearchResponse.Marshal(b, m, deterministic) +} +func (m *ExternalIDPSearchResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExternalIDPSearchResponse.Merge(m, src) +} +func (m *ExternalIDPSearchResponse) XXX_Size() int { + return xxx_messageInfo_ExternalIDPSearchResponse.Size(m) +} +func (m *ExternalIDPSearchResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ExternalIDPSearchResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ExternalIDPSearchResponse proto.InternalMessageInfo + +func (m *ExternalIDPSearchResponse) GetOffset() uint64 { + if m != nil { + return m.Offset } return 0 } -func (x *ExternalIDPSearchResponse) GetLimit() uint64 { - if x != nil { - return x.Limit +func (m *ExternalIDPSearchResponse) GetLimit() uint64 { + if m != nil { + return m.Limit } return 0 } -func (x *ExternalIDPSearchResponse) GetTotalResult() uint64 { - if x != nil { - return x.TotalResult +func (m *ExternalIDPSearchResponse) GetTotalResult() uint64 { + if m != nil { + return m.TotalResult } return 0 } -func (x *ExternalIDPSearchResponse) GetResult() []*ExternalIDPView { - if x != nil { - return x.Result +func (m *ExternalIDPSearchResponse) GetResult() []*ExternalIDPView { + if m != nil { + return m.Result } return nil } -func (x *ExternalIDPSearchResponse) GetProcessedSequence() uint64 { - if x != nil { - return x.ProcessedSequence +func (m *ExternalIDPSearchResponse) GetProcessedSequence() uint64 { + if m != nil { + return m.ProcessedSequence } return 0 } -func (x *ExternalIDPSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if x != nil { - return x.ViewTimestamp +func (m *ExternalIDPSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if m != nil { + return m.ViewTimestamp } return nil } type ExternalIDPView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` IdpConfigId string `protobuf:"bytes,2,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` ExternalUserId string `protobuf:"bytes,3,opt,name=external_user_id,json=externalUserId,proto3" json:"external_user_id,omitempty"` @@ -3845,1819 +3311,400 @@ type ExternalIDPView struct { ExternalUserDisplayName string `protobuf:"bytes,5,opt,name=external_user_display_name,json=externalUserDisplayName,proto3" json:"external_user_display_name,omitempty"` CreationDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ExternalIDPView) Reset() { - *x = ExternalIDPView{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ExternalIDPView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExternalIDPView) ProtoMessage() {} - -func (x *ExternalIDPView) ProtoReflect() protoreflect.Message { - mi := &file_auth_proto_msgTypes[43] - 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 ExternalIDPView.ProtoReflect.Descriptor instead. +func (m *ExternalIDPView) Reset() { *m = ExternalIDPView{} } +func (m *ExternalIDPView) String() string { return proto.CompactTextString(m) } +func (*ExternalIDPView) ProtoMessage() {} func (*ExternalIDPView) Descriptor() ([]byte, []int) { - return file_auth_proto_rawDescGZIP(), []int{43} + return fileDescriptor_8bbd6f3875b0e874, []int{43} } -func (x *ExternalIDPView) GetUserId() string { - if x != nil { - return x.UserId +func (m *ExternalIDPView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExternalIDPView.Unmarshal(m, b) +} +func (m *ExternalIDPView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExternalIDPView.Marshal(b, m, deterministic) +} +func (m *ExternalIDPView) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExternalIDPView.Merge(m, src) +} +func (m *ExternalIDPView) XXX_Size() int { + return xxx_messageInfo_ExternalIDPView.Size(m) +} +func (m *ExternalIDPView) XXX_DiscardUnknown() { + xxx_messageInfo_ExternalIDPView.DiscardUnknown(m) +} + +var xxx_messageInfo_ExternalIDPView proto.InternalMessageInfo + +func (m *ExternalIDPView) GetUserId() string { + if m != nil { + return m.UserId } return "" } -func (x *ExternalIDPView) GetIdpConfigId() string { - if x != nil { - return x.IdpConfigId +func (m *ExternalIDPView) GetIdpConfigId() string { + if m != nil { + return m.IdpConfigId } return "" } -func (x *ExternalIDPView) GetExternalUserId() string { - if x != nil { - return x.ExternalUserId +func (m *ExternalIDPView) GetExternalUserId() string { + if m != nil { + return m.ExternalUserId } return "" } -func (x *ExternalIDPView) GetIdpName() string { - if x != nil { - return x.IdpName +func (m *ExternalIDPView) GetIdpName() string { + if m != nil { + return m.IdpName } return "" } -func (x *ExternalIDPView) GetExternalUserDisplayName() string { - if x != nil { - return x.ExternalUserDisplayName +func (m *ExternalIDPView) GetExternalUserDisplayName() string { + if m != nil { + return m.ExternalUserDisplayName } return "" } -func (x *ExternalIDPView) GetCreationDate() *timestamp.Timestamp { - if x != nil { - return x.CreationDate +func (m *ExternalIDPView) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate } return nil } -func (x *ExternalIDPView) GetChangeDate() *timestamp.Timestamp { - if x != nil { - return x.ChangeDate +func (m *ExternalIDPView) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate } return nil } -var File_auth_proto protoreflect.FileDescriptor - -var file_auth_proto_rawDesc = []byte{ - 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x63, 0x61, - 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2f, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x13, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x62, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0c, 0x75, 0x73, - 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x0f, 0x55, - 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x75, 0x74, - 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, - 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x69, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xce, 0x04, 0x0a, 0x08, 0x55, 0x73, 0x65, - 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, - 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, - 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x04, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, - 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x72, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, - 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, 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, 0x6c, - 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, - 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, - 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, - 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, - 0x48, 0x00, 0x52, 0x05, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x12, 0x41, 0x0a, 0x07, 0x6d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6f, - 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x56, 0x69, 0x65, - 0x77, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x42, 0x0b, 0x0a, 0x04, - 0x75, 0x73, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x4d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x40, 0x0a, 0x0e, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 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, 0x0c, 0x6c, - 0x61, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x80, 0x02, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, - 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, - 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, - 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x04, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, - 0x43, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, - 0x74, 0x65, 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, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x65, 0x22, 0xd1, 0x04, 0x0a, 0x09, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x56, 0x69, - 0x65, 0x77, 0x12, 0x45, 0x0a, 0x10, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 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, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, - 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, - 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, - 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0f, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, - 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, - 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, - 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x9c, 0x03, 0x0a, 0x0b, 0x55, 0x73, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, - 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 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, 0x0c, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 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, 0x0a, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xf3, 0x03, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, - 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 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, - 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, - 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 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, 0x0a, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, - 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x72, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8a, 0x02, - 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0a, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, - 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, - 0x01, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, - 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x6e, 0x69, 0x63, - 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, - 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x11, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x12, 0x38, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x52, 0x0a, 0x15, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xfa, 0x42, 0x19, 0x72, 0x17, 0x32, 0x15, 0x5e, - 0x5b, 0x5e, 0x5b, 0x3a, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x5d, 0x5d, 0x7b, 0x31, 0x2c, 0x32, - 0x30, 0x30, 0x7d, 0x24, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xf5, - 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x45, - 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xf9, 0x01, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x45, - 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x28, - 0x0a, 0x0f, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x64, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, - 0x74, 0x65, 0x22, 0x3a, 0x0a, 0x18, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, - 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, - 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, - 0x18, 0xc8, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0xf7, 0x01, 0x0a, 0x09, 0x55, - 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, - 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x44, 0x61, 0x74, 0x65, 0x22, 0xfb, 0x01, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x11, - 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x64, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, - 0x74, 0x65, 0x22, 0x39, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x05, - 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xfa, 0x42, 0x06, - 0x72, 0x04, 0x10, 0x01, 0x18, 0x14, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x38, 0x0a, - 0x16, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, - 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xcd, 0x02, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, - 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x0c, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 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, 0x0a, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xd1, 0x02, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, - 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, - 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, - 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, - 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 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, - 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x18, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, - 0x18, 0xc8, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x08, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, - 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, - 0x74, 0x79, 0x12, 0x29, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, - 0x01, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, - 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, - 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, - 0x2f, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, - 0x01, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0x6c, 0x0a, 0x0e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x0c, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, - 0x01, 0x18, 0x48, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x12, 0x2c, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, - 0x48, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x2b, - 0x0a, 0x0c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x66, 0x61, 0x4f, 0x74, 0x70, 0x12, 0x1b, - 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x49, 0x0a, 0x0c, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x04, 0x6d, - 0x66, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6f, 0x73, - 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x52, 0x04, 0x6d, 0x66, 0x61, 0x73, 0x22, 0x7e, 0x0a, 0x0b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x66, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x61, - 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x46, 0x41, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x0e, 0x4d, 0x66, 0x61, 0x4f, 0x74, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x61, - 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x46, 0x41, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x81, 0x02, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x5d, 0x0a, 0x0e, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, - 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, - 0x0d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, 0x63, - 0x12, 0x48, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x14, 0x55, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x42, 0x08, - 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, - 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, - 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x9d, 0x02, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, - 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x12, 0x3f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x61, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x22, 0xa5, 0x01, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x67, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x05, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x67, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x72, 0x67, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xa8, 0x01, 0x0a, 0x19, - 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x63, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, 0x63, 0x12, 0x4b, 0x0a, 0x07, 0x71, 0x75, 0x65, - 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x61, 0x6f, - 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, - 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, - 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x17, 0x4d, 0x79, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x4b, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, - 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x1a, 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, - 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4f, 0x72, 0x67, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x29, 0x0a, 0x03, - 0x4f, 0x72, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x0d, 0x4d, 0x79, 0x50, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x61, 0x0a, 0x0e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, 0x63, 0x22, 0x73, 0x0a, - 0x07, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, - 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x22, 0x89, 0x02, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3b, 0x0a, - 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0a, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x64, 0x69, - 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x64, 0x69, 0x74, 0x6f, - 0x72, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 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, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xac, - 0x03, 0x0a, 0x18, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, - 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, - 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 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, - 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, - 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, - 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, - 0x63, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, - 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x53, 0x79, 0x6d, 0x62, - 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x75, 0x0a, - 0x13, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x70, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x68, 0x0a, 0x18, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x49, 0x44, 0x50, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x48, - 0x0a, 0x18, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xa1, 0x02, 0x0a, 0x19, 0x45, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, - 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x56, 0x69, - 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, - 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, - 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x0d, 0x76, - 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xce, 0x02, 0x0a, - 0x0f, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x56, 0x69, 0x65, 0x77, - 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x70, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x28, 0x0a, - 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x64, 0x70, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x64, 0x70, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, - 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x07, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x2a, 0x72, 0x0a, - 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x55, 0x53, 0x45, 0x52, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x53, 0x45, 0x52, 0x53, 0x45, 0x53, 0x53, 0x49, - 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, - 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x53, 0x45, 0x52, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, 0x44, 0x10, - 0x02, 0x2a, 0x41, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x4b, 0x45, - 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x13, 0x0a, 0x0f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x4b, 0x45, 0x59, 0x5f, 0x4a, 0x53, - 0x4f, 0x4e, 0x10, 0x01, 0x2a, 0xaf, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, - 0x10, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, - 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x55, - 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, - 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, - 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, 0x05, 0x12, - 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, - 0x54, 0x49, 0x41, 0x4c, 0x10, 0x06, 0x2a, 0x58, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x12, 0x16, 0x0a, 0x12, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x45, 0x4e, 0x44, - 0x45, 0x52, 0x5f, 0x46, 0x45, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x47, - 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, - 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x49, 0x56, 0x45, 0x52, 0x53, 0x45, 0x10, 0x03, - 0x2a, 0x44, 0x0a, 0x07, 0x4d, 0x66, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x4d, - 0x46, 0x41, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x46, 0x41, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x53, 0x4d, 0x53, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x46, 0x41, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4f, 0x54, 0x50, 0x10, 0x02, 0x2a, 0x66, 0x0a, 0x08, 0x4d, 0x46, 0x41, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x46, 0x41, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, - 0x4d, 0x46, 0x41, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, - 0x44, 0x59, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x46, 0x41, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x46, 0x41, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x76, - 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, - 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x5f, 0x4f, 0x52, 0x47, 0x5f, 0x49, - 0x44, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x5f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x2a, 0x62, 0x0a, 0x15, 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, - 0x25, 0x0a, 0x21, 0x4d, 0x59, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x47, 0x53, - 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x4d, 0x59, 0x50, 0x52, 0x4f, 0x4a, - 0x45, 0x43, 0x54, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, - 0x4f, 0x52, 0x47, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x2a, 0xd6, 0x01, 0x0a, 0x0c, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x17, 0x0a, 0x13, 0x53, - 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, - 0x4c, 0x53, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, - 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, - 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, - 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x23, 0x0a, - 0x1f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, - 0x55, 0x41, 0x4c, 0x53, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, - 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, - 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x49, - 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, - 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x41, 0x49, 0x4e, 0x53, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, - 0x45, 0x10, 0x05, 0x32, 0x91, 0x23, 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x10, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, - 0x12, 0x47, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x0e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x08, 0x12, 0x06, 0x2f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x4e, 0x0a, 0x08, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x22, 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, - 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, - 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x69, - 0x65, 0x77, 0x73, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x75, 0x73, - 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x82, - 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x6d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x22, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, - 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x22, 0x24, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x82, 0xb5, - 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x12, 0x83, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x29, - 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x13, 0x12, 0x11, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0xa1, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, - 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x16, 0x1a, 0x11, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, - 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x8d, 0x01, 0x0a, 0x10, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x17, 0x1a, 0x12, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, - 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x7d, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, - 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x22, 0x2a, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, - 0x65, 0x2f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, - 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x99, 0x01, 0x0a, 0x11, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, - 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, - 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x1a, - 0x0f, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x96, 0x01, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x32, 0x2e, 0x63, - 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, - 0x22, 0x17, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x2f, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, - 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, - 0x92, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x79, 0x45, 0x6d, 0x61, 0x69, - 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x69, - 0x6c, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x22, 0x23, 0x2f, 0x75, 0x73, 0x65, 0x72, - 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x2f, 0x5f, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x64, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, - 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x7d, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, - 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x56, 0x69, 0x65, 0x77, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, - 0x0f, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, - 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x12, 0x99, 0x01, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, - 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x63, 0x61, - 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x1a, 0x0f, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, - 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, - 0x6f, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x2a, 0x0f, 0x2f, 0x75, - 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x82, 0xb5, 0x18, - 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x94, 0x01, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x2f, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x92, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x73, 0x65, - 0x6e, 0x64, 0x4d, 0x79, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x28, 0x22, 0x23, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x68, 0x6f, - 0x6e, 0x65, 0x2f, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x83, 0x01, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, - 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x56, 0x69, 0x65, 0x77, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x75, - 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x82, - 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x8d, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, - 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x75, - 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x82, - 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x12, 0xa1, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6f, - 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, - 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x1a, 0x11, 0x2f, - 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x76, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x4d, - 0x66, 0x61, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x26, 0x2e, 0x63, 0x61, - 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x75, 0x73, - 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x6d, 0x66, 0x61, 0x73, 0x82, 0xb5, 0x18, 0x0f, 0x0a, - 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x8f, - 0x01, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x1a, 0x1b, 0x2f, - 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x73, 0x2f, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, - 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x12, 0xa6, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6f, - 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x39, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, - 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, - 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0xbd, 0x01, 0x0a, 0x14, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x4d, 0x79, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, - 0x50, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, - 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x65, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, - 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0xb7, 0x01, 0x0a, 0x13, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, - 0x50, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x54, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x2a, 0x39, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, - 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, - 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x65, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, - 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x12, 0x7f, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x4d, 0x66, 0x61, 0x4f, 0x54, 0x50, - 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, - 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x66, 0x61, 0x4f, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x75, 0x73, 0x65, - 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x6d, 0x66, 0x61, 0x73, 0x2f, 0x6f, 0x74, 0x70, 0x3a, 0x01, - 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x88, 0x01, 0x0a, 0x0c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, - 0x66, 0x61, 0x4f, 0x54, 0x50, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, - 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x66, 0x61, 0x4f, 0x74, 0x70, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x1a, 0x1a, 0x2f, - 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x6d, 0x66, 0x61, 0x73, 0x2f, 0x6f, 0x74, - 0x70, 0x2f, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, - 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, - 0x6d, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x66, 0x61, 0x4f, 0x54, 0x50, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x2a, 0x12, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, - 0x6d, 0x65, 0x2f, 0x6d, 0x66, 0x61, 0x73, 0x2f, 0x6f, 0x74, 0x70, 0x82, 0xb5, 0x18, 0x0f, 0x0a, - 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0xae, - 0x01, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x61, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, - 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1b, 0x22, 0x16, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x6d, - 0x65, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, - 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, - 0xbb, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x73, 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, - 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, - 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x67, 0x6c, 0x6f, - 0x62, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x67, 0x73, 0x2f, - 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, - 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x8e, 0x01, - 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x5a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x50, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x50, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x19, 0x12, 0x17, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2f, 0x6d, 0x65, 0x82, 0xb5, 0x18, 0x0f, 0x0a, - 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x86, - 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x50, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, - 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, - 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2a, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x6d, 0x65, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0xb3, 0x01, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, 0x61, - 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x75, 0x74, - 0x68, 0x92, 0x41, 0x88, 0x01, 0x12, 0x3b, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x20, 0x41, 0x50, - 0x49, 0x22, 0x2a, 0x12, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, - 0x61, 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x03, 0x30, - 0x2e, 0x31, 0x2a, 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3a, 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, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, +func init() { + proto.RegisterEnum("caos.zitadel.auth.api.v1.UserSessionState", UserSessionState_name, UserSessionState_value) + proto.RegisterEnum("caos.zitadel.auth.api.v1.MachineKeyType", MachineKeyType_name, MachineKeyType_value) + proto.RegisterEnum("caos.zitadel.auth.api.v1.UserState", UserState_name, UserState_value) + proto.RegisterEnum("caos.zitadel.auth.api.v1.Gender", Gender_name, Gender_value) + proto.RegisterEnum("caos.zitadel.auth.api.v1.MfaType", MfaType_name, MfaType_value) + proto.RegisterEnum("caos.zitadel.auth.api.v1.MFAState", MFAState_name, MFAState_value) + proto.RegisterEnum("caos.zitadel.auth.api.v1.UserGrantSearchKey", UserGrantSearchKey_name, UserGrantSearchKey_value) + proto.RegisterEnum("caos.zitadel.auth.api.v1.MyProjectOrgSearchKey", MyProjectOrgSearchKey_name, MyProjectOrgSearchKey_value) + proto.RegisterEnum("caos.zitadel.auth.api.v1.SearchMethod", SearchMethod_name, SearchMethod_value) + proto.RegisterType((*UserSessionViews)(nil), "caos.zitadel.auth.api.v1.UserSessionViews") + proto.RegisterType((*UserSessionView)(nil), "caos.zitadel.auth.api.v1.UserSessionView") + proto.RegisterType((*UserView)(nil), "caos.zitadel.auth.api.v1.UserView") + proto.RegisterType((*MachineView)(nil), "caos.zitadel.auth.api.v1.MachineView") + proto.RegisterType((*MachineKeyView)(nil), "caos.zitadel.auth.api.v1.MachineKeyView") + proto.RegisterType((*HumanView)(nil), "caos.zitadel.auth.api.v1.HumanView") + proto.RegisterType((*UserProfile)(nil), "caos.zitadel.auth.api.v1.UserProfile") + proto.RegisterType((*UserProfileView)(nil), "caos.zitadel.auth.api.v1.UserProfileView") + proto.RegisterType((*UpdateUserProfileRequest)(nil), "caos.zitadel.auth.api.v1.UpdateUserProfileRequest") + proto.RegisterType((*ChangeUserNameRequest)(nil), "caos.zitadel.auth.api.v1.ChangeUserNameRequest") + proto.RegisterType((*UserEmail)(nil), "caos.zitadel.auth.api.v1.UserEmail") + proto.RegisterType((*UserEmailView)(nil), "caos.zitadel.auth.api.v1.UserEmailView") + proto.RegisterType((*VerifyMyUserEmailRequest)(nil), "caos.zitadel.auth.api.v1.VerifyMyUserEmailRequest") + proto.RegisterType((*UpdateUserEmailRequest)(nil), "caos.zitadel.auth.api.v1.UpdateUserEmailRequest") + proto.RegisterType((*UserPhone)(nil), "caos.zitadel.auth.api.v1.UserPhone") + proto.RegisterType((*UserPhoneView)(nil), "caos.zitadel.auth.api.v1.UserPhoneView") + proto.RegisterType((*UpdateUserPhoneRequest)(nil), "caos.zitadel.auth.api.v1.UpdateUserPhoneRequest") + proto.RegisterType((*VerifyUserPhoneRequest)(nil), "caos.zitadel.auth.api.v1.VerifyUserPhoneRequest") + proto.RegisterType((*UserAddress)(nil), "caos.zitadel.auth.api.v1.UserAddress") + proto.RegisterType((*UserAddressView)(nil), "caos.zitadel.auth.api.v1.UserAddressView") + proto.RegisterType((*UpdateUserAddressRequest)(nil), "caos.zitadel.auth.api.v1.UpdateUserAddressRequest") + proto.RegisterType((*PasswordChange)(nil), "caos.zitadel.auth.api.v1.PasswordChange") + proto.RegisterType((*VerifyMfaOtp)(nil), "caos.zitadel.auth.api.v1.VerifyMfaOtp") + proto.RegisterType((*MultiFactors)(nil), "caos.zitadel.auth.api.v1.MultiFactors") + proto.RegisterType((*MultiFactor)(nil), "caos.zitadel.auth.api.v1.MultiFactor") + proto.RegisterType((*MfaOtpResponse)(nil), "caos.zitadel.auth.api.v1.MfaOtpResponse") + proto.RegisterType((*UserGrantSearchRequest)(nil), "caos.zitadel.auth.api.v1.UserGrantSearchRequest") + proto.RegisterType((*UserGrantSearchQuery)(nil), "caos.zitadel.auth.api.v1.UserGrantSearchQuery") + proto.RegisterType((*UserGrantSearchResponse)(nil), "caos.zitadel.auth.api.v1.UserGrantSearchResponse") + proto.RegisterType((*UserGrantView)(nil), "caos.zitadel.auth.api.v1.UserGrantView") + proto.RegisterType((*MyProjectOrgSearchRequest)(nil), "caos.zitadel.auth.api.v1.MyProjectOrgSearchRequest") + proto.RegisterType((*MyProjectOrgSearchQuery)(nil), "caos.zitadel.auth.api.v1.MyProjectOrgSearchQuery") + proto.RegisterType((*MyProjectOrgSearchResponse)(nil), "caos.zitadel.auth.api.v1.MyProjectOrgSearchResponse") + proto.RegisterType((*Org)(nil), "caos.zitadel.auth.api.v1.Org") + proto.RegisterType((*MyPermissions)(nil), "caos.zitadel.auth.api.v1.MyPermissions") + proto.RegisterType((*ChangesRequest)(nil), "caos.zitadel.auth.api.v1.ChangesRequest") + proto.RegisterType((*Changes)(nil), "caos.zitadel.auth.api.v1.Changes") + proto.RegisterType((*Change)(nil), "caos.zitadel.auth.api.v1.Change") + proto.RegisterType((*PasswordComplexityPolicy)(nil), "caos.zitadel.auth.api.v1.PasswordComplexityPolicy") + proto.RegisterType((*ExternalIDPResponse)(nil), "caos.zitadel.auth.api.v1.ExternalIDPResponse") + proto.RegisterType((*ExternalIDPRemoveRequest)(nil), "caos.zitadel.auth.api.v1.ExternalIDPRemoveRequest") + proto.RegisterType((*ExternalIDPSearchRequest)(nil), "caos.zitadel.auth.api.v1.ExternalIDPSearchRequest") + proto.RegisterType((*ExternalIDPSearchResponse)(nil), "caos.zitadel.auth.api.v1.ExternalIDPSearchResponse") + proto.RegisterType((*ExternalIDPView)(nil), "caos.zitadel.auth.api.v1.ExternalIDPView") } -var ( - file_auth_proto_rawDescOnce sync.Once - file_auth_proto_rawDescData = file_auth_proto_rawDesc -) +func init() { proto.RegisterFile("auth.proto", fileDescriptor_8bbd6f3875b0e874) } -func file_auth_proto_rawDescGZIP() []byte { - file_auth_proto_rawDescOnce.Do(func() { - file_auth_proto_rawDescData = protoimpl.X.CompressGZIP(file_auth_proto_rawDescData) - }) - return file_auth_proto_rawDescData -} - -var file_auth_proto_enumTypes = make([]protoimpl.EnumInfo, 9) -var file_auth_proto_msgTypes = make([]protoimpl.MessageInfo, 44) -var file_auth_proto_goTypes = []interface{}{ - (UserSessionState)(0), // 0: caos.zitadel.auth.api.v1.UserSessionState - (MachineKeyType)(0), // 1: caos.zitadel.auth.api.v1.MachineKeyType - (UserState)(0), // 2: caos.zitadel.auth.api.v1.UserState - (Gender)(0), // 3: caos.zitadel.auth.api.v1.Gender - (MfaType)(0), // 4: caos.zitadel.auth.api.v1.MfaType - (MFAState)(0), // 5: caos.zitadel.auth.api.v1.MFAState - (UserGrantSearchKey)(0), // 6: caos.zitadel.auth.api.v1.UserGrantSearchKey - (MyProjectOrgSearchKey)(0), // 7: caos.zitadel.auth.api.v1.MyProjectOrgSearchKey - (SearchMethod)(0), // 8: caos.zitadel.auth.api.v1.SearchMethod - (*UserSessionViews)(nil), // 9: caos.zitadel.auth.api.v1.UserSessionViews - (*UserSessionView)(nil), // 10: caos.zitadel.auth.api.v1.UserSessionView - (*UserView)(nil), // 11: caos.zitadel.auth.api.v1.UserView - (*MachineView)(nil), // 12: caos.zitadel.auth.api.v1.MachineView - (*MachineKeyView)(nil), // 13: caos.zitadel.auth.api.v1.MachineKeyView - (*HumanView)(nil), // 14: caos.zitadel.auth.api.v1.HumanView - (*UserProfile)(nil), // 15: caos.zitadel.auth.api.v1.UserProfile - (*UserProfileView)(nil), // 16: caos.zitadel.auth.api.v1.UserProfileView - (*UpdateUserProfileRequest)(nil), // 17: caos.zitadel.auth.api.v1.UpdateUserProfileRequest - (*ChangeUserNameRequest)(nil), // 18: caos.zitadel.auth.api.v1.ChangeUserNameRequest - (*UserEmail)(nil), // 19: caos.zitadel.auth.api.v1.UserEmail - (*UserEmailView)(nil), // 20: caos.zitadel.auth.api.v1.UserEmailView - (*VerifyMyUserEmailRequest)(nil), // 21: caos.zitadel.auth.api.v1.VerifyMyUserEmailRequest - (*UpdateUserEmailRequest)(nil), // 22: caos.zitadel.auth.api.v1.UpdateUserEmailRequest - (*UserPhone)(nil), // 23: caos.zitadel.auth.api.v1.UserPhone - (*UserPhoneView)(nil), // 24: caos.zitadel.auth.api.v1.UserPhoneView - (*UpdateUserPhoneRequest)(nil), // 25: caos.zitadel.auth.api.v1.UpdateUserPhoneRequest - (*VerifyUserPhoneRequest)(nil), // 26: caos.zitadel.auth.api.v1.VerifyUserPhoneRequest - (*UserAddress)(nil), // 27: caos.zitadel.auth.api.v1.UserAddress - (*UserAddressView)(nil), // 28: caos.zitadel.auth.api.v1.UserAddressView - (*UpdateUserAddressRequest)(nil), // 29: caos.zitadel.auth.api.v1.UpdateUserAddressRequest - (*PasswordChange)(nil), // 30: caos.zitadel.auth.api.v1.PasswordChange - (*VerifyMfaOtp)(nil), // 31: caos.zitadel.auth.api.v1.VerifyMfaOtp - (*MultiFactors)(nil), // 32: caos.zitadel.auth.api.v1.MultiFactors - (*MultiFactor)(nil), // 33: caos.zitadel.auth.api.v1.MultiFactor - (*MfaOtpResponse)(nil), // 34: caos.zitadel.auth.api.v1.MfaOtpResponse - (*UserGrantSearchRequest)(nil), // 35: caos.zitadel.auth.api.v1.UserGrantSearchRequest - (*UserGrantSearchQuery)(nil), // 36: caos.zitadel.auth.api.v1.UserGrantSearchQuery - (*UserGrantSearchResponse)(nil), // 37: caos.zitadel.auth.api.v1.UserGrantSearchResponse - (*UserGrantView)(nil), // 38: caos.zitadel.auth.api.v1.UserGrantView - (*MyProjectOrgSearchRequest)(nil), // 39: caos.zitadel.auth.api.v1.MyProjectOrgSearchRequest - (*MyProjectOrgSearchQuery)(nil), // 40: caos.zitadel.auth.api.v1.MyProjectOrgSearchQuery - (*MyProjectOrgSearchResponse)(nil), // 41: caos.zitadel.auth.api.v1.MyProjectOrgSearchResponse - (*Org)(nil), // 42: caos.zitadel.auth.api.v1.Org - (*MyPermissions)(nil), // 43: caos.zitadel.auth.api.v1.MyPermissions - (*ChangesRequest)(nil), // 44: caos.zitadel.auth.api.v1.ChangesRequest - (*Changes)(nil), // 45: caos.zitadel.auth.api.v1.Changes - (*Change)(nil), // 46: caos.zitadel.auth.api.v1.Change - (*PasswordComplexityPolicy)(nil), // 47: caos.zitadel.auth.api.v1.PasswordComplexityPolicy - (*ExternalIDPResponse)(nil), // 48: caos.zitadel.auth.api.v1.ExternalIDPResponse - (*ExternalIDPRemoveRequest)(nil), // 49: caos.zitadel.auth.api.v1.ExternalIDPRemoveRequest - (*ExternalIDPSearchRequest)(nil), // 50: caos.zitadel.auth.api.v1.ExternalIDPSearchRequest - (*ExternalIDPSearchResponse)(nil), // 51: caos.zitadel.auth.api.v1.ExternalIDPSearchResponse - (*ExternalIDPView)(nil), // 52: caos.zitadel.auth.api.v1.ExternalIDPView - (*timestamp.Timestamp)(nil), // 53: google.protobuf.Timestamp - (*message.LocalizedMessage)(nil), // 54: caos.zitadel.api.v1.LocalizedMessage - (*_struct.Struct)(nil), // 55: google.protobuf.Struct - (*empty.Empty)(nil), // 56: google.protobuf.Empty -} -var file_auth_proto_depIdxs = []int32{ - 10, // 0: caos.zitadel.auth.api.v1.UserSessionViews.user_sessions:type_name -> caos.zitadel.auth.api.v1.UserSessionView - 0, // 1: caos.zitadel.auth.api.v1.UserSessionView.auth_state:type_name -> caos.zitadel.auth.api.v1.UserSessionState - 2, // 2: caos.zitadel.auth.api.v1.UserView.state:type_name -> caos.zitadel.auth.api.v1.UserState - 53, // 3: caos.zitadel.auth.api.v1.UserView.creation_date:type_name -> google.protobuf.Timestamp - 53, // 4: caos.zitadel.auth.api.v1.UserView.change_date:type_name -> google.protobuf.Timestamp - 53, // 5: caos.zitadel.auth.api.v1.UserView.last_login:type_name -> google.protobuf.Timestamp - 14, // 6: caos.zitadel.auth.api.v1.UserView.human:type_name -> caos.zitadel.auth.api.v1.HumanView - 12, // 7: caos.zitadel.auth.api.v1.UserView.machine:type_name -> caos.zitadel.auth.api.v1.MachineView - 53, // 8: caos.zitadel.auth.api.v1.MachineView.last_key_added:type_name -> google.protobuf.Timestamp - 1, // 9: caos.zitadel.auth.api.v1.MachineKeyView.type:type_name -> caos.zitadel.auth.api.v1.MachineKeyType - 53, // 10: caos.zitadel.auth.api.v1.MachineKeyView.creation_date:type_name -> google.protobuf.Timestamp - 53, // 11: caos.zitadel.auth.api.v1.MachineKeyView.expiration_date:type_name -> google.protobuf.Timestamp - 53, // 12: caos.zitadel.auth.api.v1.HumanView.password_changed:type_name -> google.protobuf.Timestamp - 3, // 13: caos.zitadel.auth.api.v1.HumanView.gender:type_name -> caos.zitadel.auth.api.v1.Gender - 3, // 14: caos.zitadel.auth.api.v1.UserProfile.gender:type_name -> caos.zitadel.auth.api.v1.Gender - 53, // 15: caos.zitadel.auth.api.v1.UserProfile.creation_date:type_name -> google.protobuf.Timestamp - 53, // 16: caos.zitadel.auth.api.v1.UserProfile.change_date:type_name -> google.protobuf.Timestamp - 3, // 17: caos.zitadel.auth.api.v1.UserProfileView.gender:type_name -> caos.zitadel.auth.api.v1.Gender - 53, // 18: caos.zitadel.auth.api.v1.UserProfileView.creation_date:type_name -> google.protobuf.Timestamp - 53, // 19: caos.zitadel.auth.api.v1.UserProfileView.change_date:type_name -> google.protobuf.Timestamp - 3, // 20: caos.zitadel.auth.api.v1.UpdateUserProfileRequest.gender:type_name -> caos.zitadel.auth.api.v1.Gender - 53, // 21: caos.zitadel.auth.api.v1.UserEmail.creation_date:type_name -> google.protobuf.Timestamp - 53, // 22: caos.zitadel.auth.api.v1.UserEmail.change_date:type_name -> google.protobuf.Timestamp - 53, // 23: caos.zitadel.auth.api.v1.UserEmailView.creation_date:type_name -> google.protobuf.Timestamp - 53, // 24: caos.zitadel.auth.api.v1.UserEmailView.change_date:type_name -> google.protobuf.Timestamp - 53, // 25: caos.zitadel.auth.api.v1.UserPhone.creation_date:type_name -> google.protobuf.Timestamp - 53, // 26: caos.zitadel.auth.api.v1.UserPhone.change_date:type_name -> google.protobuf.Timestamp - 53, // 27: caos.zitadel.auth.api.v1.UserPhoneView.creation_date:type_name -> google.protobuf.Timestamp - 53, // 28: caos.zitadel.auth.api.v1.UserPhoneView.change_date:type_name -> google.protobuf.Timestamp - 53, // 29: caos.zitadel.auth.api.v1.UserAddress.creation_date:type_name -> google.protobuf.Timestamp - 53, // 30: caos.zitadel.auth.api.v1.UserAddress.change_date:type_name -> google.protobuf.Timestamp - 53, // 31: caos.zitadel.auth.api.v1.UserAddressView.creation_date:type_name -> google.protobuf.Timestamp - 53, // 32: caos.zitadel.auth.api.v1.UserAddressView.change_date:type_name -> google.protobuf.Timestamp - 33, // 33: caos.zitadel.auth.api.v1.MultiFactors.mfas:type_name -> caos.zitadel.auth.api.v1.MultiFactor - 4, // 34: caos.zitadel.auth.api.v1.MultiFactor.type:type_name -> caos.zitadel.auth.api.v1.MfaType - 5, // 35: caos.zitadel.auth.api.v1.MultiFactor.state:type_name -> caos.zitadel.auth.api.v1.MFAState - 5, // 36: caos.zitadel.auth.api.v1.MfaOtpResponse.state:type_name -> caos.zitadel.auth.api.v1.MFAState - 6, // 37: caos.zitadel.auth.api.v1.UserGrantSearchRequest.sorting_column:type_name -> caos.zitadel.auth.api.v1.UserGrantSearchKey - 36, // 38: caos.zitadel.auth.api.v1.UserGrantSearchRequest.queries:type_name -> caos.zitadel.auth.api.v1.UserGrantSearchQuery - 6, // 39: caos.zitadel.auth.api.v1.UserGrantSearchQuery.key:type_name -> caos.zitadel.auth.api.v1.UserGrantSearchKey - 8, // 40: caos.zitadel.auth.api.v1.UserGrantSearchQuery.method:type_name -> caos.zitadel.auth.api.v1.SearchMethod - 38, // 41: caos.zitadel.auth.api.v1.UserGrantSearchResponse.result:type_name -> caos.zitadel.auth.api.v1.UserGrantView - 53, // 42: caos.zitadel.auth.api.v1.UserGrantSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp - 40, // 43: caos.zitadel.auth.api.v1.MyProjectOrgSearchRequest.queries:type_name -> caos.zitadel.auth.api.v1.MyProjectOrgSearchQuery - 7, // 44: caos.zitadel.auth.api.v1.MyProjectOrgSearchQuery.key:type_name -> caos.zitadel.auth.api.v1.MyProjectOrgSearchKey - 8, // 45: caos.zitadel.auth.api.v1.MyProjectOrgSearchQuery.method:type_name -> caos.zitadel.auth.api.v1.SearchMethod - 42, // 46: caos.zitadel.auth.api.v1.MyProjectOrgSearchResponse.result:type_name -> caos.zitadel.auth.api.v1.Org - 46, // 47: caos.zitadel.auth.api.v1.Changes.changes:type_name -> caos.zitadel.auth.api.v1.Change - 53, // 48: caos.zitadel.auth.api.v1.Change.change_date:type_name -> google.protobuf.Timestamp - 54, // 49: caos.zitadel.auth.api.v1.Change.event_type:type_name -> caos.zitadel.api.v1.LocalizedMessage - 55, // 50: caos.zitadel.auth.api.v1.Change.data:type_name -> google.protobuf.Struct - 53, // 51: caos.zitadel.auth.api.v1.PasswordComplexityPolicy.creation_date:type_name -> google.protobuf.Timestamp - 53, // 52: caos.zitadel.auth.api.v1.PasswordComplexityPolicy.change_date:type_name -> google.protobuf.Timestamp - 52, // 53: caos.zitadel.auth.api.v1.ExternalIDPSearchResponse.result:type_name -> caos.zitadel.auth.api.v1.ExternalIDPView - 53, // 54: caos.zitadel.auth.api.v1.ExternalIDPSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp - 53, // 55: caos.zitadel.auth.api.v1.ExternalIDPView.creation_date:type_name -> google.protobuf.Timestamp - 53, // 56: caos.zitadel.auth.api.v1.ExternalIDPView.change_date:type_name -> google.protobuf.Timestamp - 56, // 57: caos.zitadel.auth.api.v1.AuthService.Healthz:input_type -> google.protobuf.Empty - 56, // 58: caos.zitadel.auth.api.v1.AuthService.Ready:input_type -> google.protobuf.Empty - 56, // 59: caos.zitadel.auth.api.v1.AuthService.Validate:input_type -> google.protobuf.Empty - 56, // 60: caos.zitadel.auth.api.v1.AuthService.GetMyUserSessions:input_type -> google.protobuf.Empty - 56, // 61: caos.zitadel.auth.api.v1.AuthService.GetMyUser:input_type -> google.protobuf.Empty - 56, // 62: caos.zitadel.auth.api.v1.AuthService.GetMyUserProfile:input_type -> google.protobuf.Empty - 17, // 63: caos.zitadel.auth.api.v1.AuthService.UpdateMyUserProfile:input_type -> caos.zitadel.auth.api.v1.UpdateUserProfileRequest - 18, // 64: caos.zitadel.auth.api.v1.AuthService.ChangeMyUserName:input_type -> caos.zitadel.auth.api.v1.ChangeUserNameRequest - 56, // 65: caos.zitadel.auth.api.v1.AuthService.GetMyUserEmail:input_type -> google.protobuf.Empty - 22, // 66: caos.zitadel.auth.api.v1.AuthService.ChangeMyUserEmail:input_type -> caos.zitadel.auth.api.v1.UpdateUserEmailRequest - 21, // 67: caos.zitadel.auth.api.v1.AuthService.VerifyMyUserEmail:input_type -> caos.zitadel.auth.api.v1.VerifyMyUserEmailRequest - 56, // 68: caos.zitadel.auth.api.v1.AuthService.ResendMyEmailVerificationMail:input_type -> google.protobuf.Empty - 56, // 69: caos.zitadel.auth.api.v1.AuthService.GetMyUserPhone:input_type -> google.protobuf.Empty - 25, // 70: caos.zitadel.auth.api.v1.AuthService.ChangeMyUserPhone:input_type -> caos.zitadel.auth.api.v1.UpdateUserPhoneRequest - 56, // 71: caos.zitadel.auth.api.v1.AuthService.RemoveMyUserPhone:input_type -> google.protobuf.Empty - 26, // 72: caos.zitadel.auth.api.v1.AuthService.VerifyMyUserPhone:input_type -> caos.zitadel.auth.api.v1.VerifyUserPhoneRequest - 56, // 73: caos.zitadel.auth.api.v1.AuthService.ResendMyPhoneVerificationCode:input_type -> google.protobuf.Empty - 56, // 74: caos.zitadel.auth.api.v1.AuthService.GetMyUserAddress:input_type -> google.protobuf.Empty - 44, // 75: caos.zitadel.auth.api.v1.AuthService.GetMyUserChanges:input_type -> caos.zitadel.auth.api.v1.ChangesRequest - 29, // 76: caos.zitadel.auth.api.v1.AuthService.UpdateMyUserAddress:input_type -> caos.zitadel.auth.api.v1.UpdateUserAddressRequest - 56, // 77: caos.zitadel.auth.api.v1.AuthService.GetMyMfas:input_type -> google.protobuf.Empty - 30, // 78: caos.zitadel.auth.api.v1.AuthService.ChangeMyPassword:input_type -> caos.zitadel.auth.api.v1.PasswordChange - 56, // 79: caos.zitadel.auth.api.v1.AuthService.GetMyPasswordComplexityPolicy:input_type -> google.protobuf.Empty - 50, // 80: caos.zitadel.auth.api.v1.AuthService.SearchMyExternalIDPs:input_type -> caos.zitadel.auth.api.v1.ExternalIDPSearchRequest - 49, // 81: caos.zitadel.auth.api.v1.AuthService.RemoveMyExternalIDP:input_type -> caos.zitadel.auth.api.v1.ExternalIDPRemoveRequest - 56, // 82: caos.zitadel.auth.api.v1.AuthService.AddMfaOTP:input_type -> google.protobuf.Empty - 31, // 83: caos.zitadel.auth.api.v1.AuthService.VerifyMfaOTP:input_type -> caos.zitadel.auth.api.v1.VerifyMfaOtp - 56, // 84: caos.zitadel.auth.api.v1.AuthService.RemoveMfaOTP:input_type -> google.protobuf.Empty - 35, // 85: caos.zitadel.auth.api.v1.AuthService.SearchMyUserGrant:input_type -> caos.zitadel.auth.api.v1.UserGrantSearchRequest - 39, // 86: caos.zitadel.auth.api.v1.AuthService.SearchMyProjectOrgs:input_type -> caos.zitadel.auth.api.v1.MyProjectOrgSearchRequest - 56, // 87: caos.zitadel.auth.api.v1.AuthService.GetMyZitadelPermissions:input_type -> google.protobuf.Empty - 56, // 88: caos.zitadel.auth.api.v1.AuthService.GetMyProjectPermissions:input_type -> google.protobuf.Empty - 56, // 89: caos.zitadel.auth.api.v1.AuthService.Healthz:output_type -> google.protobuf.Empty - 56, // 90: caos.zitadel.auth.api.v1.AuthService.Ready:output_type -> google.protobuf.Empty - 55, // 91: caos.zitadel.auth.api.v1.AuthService.Validate:output_type -> google.protobuf.Struct - 9, // 92: caos.zitadel.auth.api.v1.AuthService.GetMyUserSessions:output_type -> caos.zitadel.auth.api.v1.UserSessionViews - 11, // 93: caos.zitadel.auth.api.v1.AuthService.GetMyUser:output_type -> caos.zitadel.auth.api.v1.UserView - 16, // 94: caos.zitadel.auth.api.v1.AuthService.GetMyUserProfile:output_type -> caos.zitadel.auth.api.v1.UserProfileView - 15, // 95: caos.zitadel.auth.api.v1.AuthService.UpdateMyUserProfile:output_type -> caos.zitadel.auth.api.v1.UserProfile - 56, // 96: caos.zitadel.auth.api.v1.AuthService.ChangeMyUserName:output_type -> google.protobuf.Empty - 20, // 97: caos.zitadel.auth.api.v1.AuthService.GetMyUserEmail:output_type -> caos.zitadel.auth.api.v1.UserEmailView - 19, // 98: caos.zitadel.auth.api.v1.AuthService.ChangeMyUserEmail:output_type -> caos.zitadel.auth.api.v1.UserEmail - 56, // 99: caos.zitadel.auth.api.v1.AuthService.VerifyMyUserEmail:output_type -> google.protobuf.Empty - 56, // 100: caos.zitadel.auth.api.v1.AuthService.ResendMyEmailVerificationMail:output_type -> google.protobuf.Empty - 24, // 101: caos.zitadel.auth.api.v1.AuthService.GetMyUserPhone:output_type -> caos.zitadel.auth.api.v1.UserPhoneView - 23, // 102: caos.zitadel.auth.api.v1.AuthService.ChangeMyUserPhone:output_type -> caos.zitadel.auth.api.v1.UserPhone - 56, // 103: caos.zitadel.auth.api.v1.AuthService.RemoveMyUserPhone:output_type -> google.protobuf.Empty - 56, // 104: caos.zitadel.auth.api.v1.AuthService.VerifyMyUserPhone:output_type -> google.protobuf.Empty - 56, // 105: caos.zitadel.auth.api.v1.AuthService.ResendMyPhoneVerificationCode:output_type -> google.protobuf.Empty - 28, // 106: caos.zitadel.auth.api.v1.AuthService.GetMyUserAddress:output_type -> caos.zitadel.auth.api.v1.UserAddressView - 45, // 107: caos.zitadel.auth.api.v1.AuthService.GetMyUserChanges:output_type -> caos.zitadel.auth.api.v1.Changes - 27, // 108: caos.zitadel.auth.api.v1.AuthService.UpdateMyUserAddress:output_type -> caos.zitadel.auth.api.v1.UserAddress - 32, // 109: caos.zitadel.auth.api.v1.AuthService.GetMyMfas:output_type -> caos.zitadel.auth.api.v1.MultiFactors - 56, // 110: caos.zitadel.auth.api.v1.AuthService.ChangeMyPassword:output_type -> google.protobuf.Empty - 47, // 111: caos.zitadel.auth.api.v1.AuthService.GetMyPasswordComplexityPolicy:output_type -> caos.zitadel.auth.api.v1.PasswordComplexityPolicy - 51, // 112: caos.zitadel.auth.api.v1.AuthService.SearchMyExternalIDPs:output_type -> caos.zitadel.auth.api.v1.ExternalIDPSearchResponse - 56, // 113: caos.zitadel.auth.api.v1.AuthService.RemoveMyExternalIDP:output_type -> google.protobuf.Empty - 34, // 114: caos.zitadel.auth.api.v1.AuthService.AddMfaOTP:output_type -> caos.zitadel.auth.api.v1.MfaOtpResponse - 56, // 115: caos.zitadel.auth.api.v1.AuthService.VerifyMfaOTP:output_type -> google.protobuf.Empty - 56, // 116: caos.zitadel.auth.api.v1.AuthService.RemoveMfaOTP:output_type -> google.protobuf.Empty - 37, // 117: caos.zitadel.auth.api.v1.AuthService.SearchMyUserGrant:output_type -> caos.zitadel.auth.api.v1.UserGrantSearchResponse - 41, // 118: caos.zitadel.auth.api.v1.AuthService.SearchMyProjectOrgs:output_type -> caos.zitadel.auth.api.v1.MyProjectOrgSearchResponse - 43, // 119: caos.zitadel.auth.api.v1.AuthService.GetMyZitadelPermissions:output_type -> caos.zitadel.auth.api.v1.MyPermissions - 43, // 120: caos.zitadel.auth.api.v1.AuthService.GetMyProjectPermissions:output_type -> caos.zitadel.auth.api.v1.MyPermissions - 89, // [89:121] is the sub-list for method output_type - 57, // [57:89] is the sub-list for method input_type - 57, // [57:57] is the sub-list for extension type_name - 57, // [57:57] is the sub-list for extension extendee - 0, // [0:57] is the sub-list for field type_name -} - -func init() { file_auth_proto_init() } -func file_auth_proto_init() { - if File_auth_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_auth_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserSessionViews); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserSessionView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MachineView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MachineKeyView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HumanView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserProfile); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserProfileView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserProfileRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeUserNameRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserEmail); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserEmailView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyMyUserEmailRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserEmailRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserPhone); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserPhoneView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserPhoneRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyUserPhoneRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserAddress); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserAddressView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserAddressRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasswordChange); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyMfaOtp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MultiFactors); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MultiFactor); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MfaOtpResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserGrantSearchRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserGrantSearchQuery); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserGrantSearchResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserGrantView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MyProjectOrgSearchRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MyProjectOrgSearchQuery); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MyProjectOrgSearchResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Org); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MyPermissions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Changes); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Change); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasswordComplexityPolicy); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExternalIDPResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExternalIDPRemoveRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExternalIDPSearchRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExternalIDPSearchResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExternalIDPView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_auth_proto_msgTypes[2].OneofWrappers = []interface{}{ - (*UserView_Human)(nil), - (*UserView_Machine)(nil), - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_auth_proto_rawDesc, - NumEnums: 9, - NumMessages: 44, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_auth_proto_goTypes, - DependencyIndexes: file_auth_proto_depIdxs, - EnumInfos: file_auth_proto_enumTypes, - MessageInfos: file_auth_proto_msgTypes, - }.Build() - File_auth_proto = out.File - file_auth_proto_rawDesc = nil - file_auth_proto_goTypes = nil - file_auth_proto_depIdxs = nil +var fileDescriptor_8bbd6f3875b0e874 = []byte{ + // 3922 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xdd, 0x6f, 0x23, 0x59, + 0x56, 0xef, 0x2a, 0x3b, 0x89, 0x7d, 0x9c, 0x38, 0xce, 0xed, 0xee, 0xc4, 0xed, 0xf4, 0x47, 0xba, + 0x7a, 0x7a, 0x27, 0xed, 0xed, 0x89, 0xbb, 0x33, 0x3b, 0xd2, 0x74, 0xcf, 0x8a, 0xc5, 0x49, 0xdc, + 0x1d, 0x6f, 0x62, 0x3b, 0x5b, 0x76, 0x7a, 0x99, 0x5d, 0xcd, 0x5a, 0xd5, 0xae, 0x1b, 0xbb, 0x76, + 0xec, 0xaa, 0xda, 0xaa, 0x72, 0x7a, 0x3c, 0xa3, 0xe1, 0x63, 0x10, 0xab, 0x05, 0x69, 0x41, 0x2c, + 0x08, 0x09, 0x01, 0x0f, 0x2b, 0x01, 0xe2, 0x01, 0xc1, 0x03, 0x02, 0x1e, 0x80, 0x77, 0x5e, 0x58, + 0x69, 0x85, 0xc4, 0x1f, 0x80, 0xf8, 0x0f, 0x10, 0x02, 0x9a, 0x17, 0x74, 0x3f, 0xaa, 0x5c, 0x1f, + 0x2e, 0xdb, 0x99, 0x66, 0x76, 0xd0, 0x6a, 0x9f, 0xec, 0x7b, 0xee, 0x39, 0xe7, 0x9e, 0x7b, 0xce, + 0xef, 0xde, 0x7b, 0xee, 0x3d, 0x05, 0xa0, 0x0c, 0x9d, 0xde, 0x8e, 0x69, 0x19, 0x8e, 0x81, 0xf2, + 0x1d, 0xc5, 0xb0, 0x77, 0x3e, 0xd4, 0x1c, 0x45, 0xc5, 0xfd, 0x1d, 0xda, 0xa1, 0x98, 0xda, 0xce, + 0xf9, 0xc3, 0xc2, 0xf5, 0xae, 0x61, 0x74, 0xfb, 0xb8, 0xa4, 0x98, 0x5a, 0x49, 0xd1, 0x75, 0xc3, + 0x51, 0x1c, 0xcd, 0xd0, 0x6d, 0x26, 0x57, 0xd8, 0xe4, 0xbd, 0xb4, 0xf5, 0x7c, 0x78, 0x56, 0xc2, + 0x03, 0xd3, 0x19, 0xf1, 0xce, 0xeb, 0xe1, 0x4e, 0xdb, 0xb1, 0x86, 0x1d, 0x87, 0xf7, 0xde, 0x0a, + 0xf7, 0x3a, 0xda, 0x00, 0xdb, 0x8e, 0x32, 0x30, 0x39, 0xc3, 0xc6, 0xb9, 0xd2, 0xd7, 0x54, 0xc5, + 0xc1, 0x25, 0xf7, 0x0f, 0xef, 0xb8, 0x4f, 0x7f, 0x3a, 0x6f, 0x74, 0xb1, 0xfe, 0x86, 0xfd, 0x42, + 0xe9, 0x76, 0xb1, 0x55, 0x32, 0x4c, 0x6a, 0xd6, 0x04, 0x13, 0xf3, 0x64, 0x36, 0xac, 0xdb, 0xe5, + 0xe2, 0x3d, 0x97, 0xe9, 0x4f, 0x69, 0x80, 0x6d, 0x5b, 0xe9, 0x72, 0xe5, 0xd2, 0x73, 0xc8, 0x9d, + 0xda, 0xd8, 0x6a, 0x62, 0xdb, 0xd6, 0x0c, 0xfd, 0x99, 0x86, 0x5f, 0xd8, 0xa8, 0x0e, 0x2b, 0x43, + 0x1b, 0x5b, 0x6d, 0x9b, 0x11, 0xed, 0xbc, 0xb0, 0x95, 0xd8, 0xce, 0xec, 0xde, 0xdb, 0x89, 0xf3, + 0xda, 0x4e, 0x48, 0x85, 0xbc, 0x3c, 0x1c, 0x13, 0x6c, 0xe9, 0x0f, 0x44, 0x58, 0x0d, 0x71, 0xa0, + 0x2c, 0x88, 0x9a, 0x9a, 0x17, 0xb6, 0x84, 0xed, 0xb4, 0x2c, 0x6a, 0x2a, 0xba, 0x06, 0x29, 0xa5, + 0x8b, 0x75, 0xa7, 0xad, 0xa9, 0x79, 0x91, 0x52, 0x97, 0x68, 0xbb, 0xaa, 0xa2, 0x2a, 0x0b, 0x5d, + 0xdb, 0x76, 0x14, 0x07, 0xe7, 0x13, 0x5b, 0xc2, 0x76, 0x76, 0xb7, 0x38, 0x97, 0x2d, 0x4d, 0x22, + 0x21, 0xa7, 0x49, 0x2f, 0xfd, 0x8b, 0x36, 0x60, 0x89, 0xce, 0x4c, 0x53, 0xf3, 0x49, 0x3a, 0xc8, + 0x22, 0x69, 0x56, 0x55, 0xb4, 0x09, 0x69, 0xda, 0xa1, 0x2b, 0x03, 0x9c, 0x5f, 0xa0, 0x5d, 0x29, + 0x42, 0xa8, 0x2b, 0x03, 0x8c, 0x0a, 0x90, 0xb2, 0xf1, 0x77, 0x86, 0x58, 0xef, 0xe0, 0xfc, 0xe2, + 0x96, 0xb0, 0x9d, 0x94, 0xbd, 0x36, 0xba, 0x01, 0xd0, 0x37, 0xba, 0x9a, 0xce, 0x24, 0x97, 0xa8, + 0x64, 0x9a, 0x52, 0xa8, 0xe8, 0x6d, 0x58, 0x56, 0x35, 0xdb, 0xec, 0x2b, 0x23, 0xc6, 0x90, 0xa2, + 0x0c, 0x19, 0x4e, 0x23, 0x2c, 0xd2, 0x8f, 0x92, 0x90, 0x22, 0x36, 0x4f, 0x74, 0xcb, 0x23, 0x58, + 0x60, 0xd3, 0x16, 0xe9, 0xb4, 0xef, 0xcc, 0x98, 0x36, 0x9d, 0x2f, 0x93, 0x40, 0x5f, 0x81, 0x95, + 0x8e, 0x85, 0x29, 0x36, 0xda, 0xaa, 0xeb, 0xb9, 0xcc, 0x6e, 0x61, 0x87, 0x01, 0x71, 0xc7, 0x05, + 0xe2, 0x4e, 0xcb, 0x05, 0xa2, 0xbc, 0xec, 0x0a, 0x1c, 0x10, 0x05, 0xef, 0x40, 0xa6, 0xd3, 0x53, + 0xf4, 0x2e, 0x66, 0xe2, 0xc9, 0x99, 0xe2, 0xc0, 0xd8, 0xa9, 0xb0, 0xdf, 0x67, 0x0b, 0x21, 0x9f, + 0xdd, 0x82, 0xcc, 0xd8, 0x67, 0x76, 0x7e, 0x71, 0x2b, 0xb1, 0x9d, 0x96, 0xc1, 0x73, 0x9a, 0x8d, + 0x1e, 0xc0, 0x15, 0xd3, 0xc2, 0x67, 0xd8, 0xb2, 0xb0, 0xda, 0x8e, 0xb8, 0x17, 0x79, 0x7d, 0xc7, + 0x9e, 0x9f, 0x1f, 0x01, 0xf4, 0x15, 0xdb, 0x61, 0xcc, 0xd4, 0xcb, 0xd3, 0x4d, 0x4d, 0x13, 0x6e, + 0x2a, 0x8e, 0xee, 0x42, 0xd6, 0xc2, 0xb6, 0x31, 0xb4, 0x3a, 0xb8, 0x6d, 0xbc, 0xd0, 0xb1, 0x95, + 0x4f, 0xd3, 0x61, 0x56, 0x5c, 0x6a, 0x83, 0x10, 0x83, 0x08, 0x81, 0x10, 0x42, 0xde, 0x81, 0x85, + 0xde, 0x70, 0xa0, 0xe8, 0xf9, 0x0c, 0x1d, 0x79, 0x4a, 0x98, 0x0e, 0x09, 0x1b, 0x09, 0xf5, 0xe1, + 0x25, 0x99, 0xc9, 0xa0, 0x32, 0x2c, 0x0d, 0x94, 0x4e, 0x4f, 0xd3, 0x71, 0x7e, 0x99, 0x8a, 0xdf, + 0x8d, 0x17, 0xaf, 0x31, 0x46, 0xae, 0xc0, 0x95, 0xdb, 0xcb, 0x40, 0x92, 0xd8, 0x82, 0x12, 0xff, + 0xb5, 0x27, 0x48, 0xbf, 0x26, 0x40, 0xc6, 0xc7, 0x87, 0x7e, 0x1e, 0xb2, 0xd4, 0x37, 0xef, 0xe3, + 0x51, 0x5b, 0x51, 0x55, 0xcc, 0xf0, 0x35, 0x03, 0x09, 0x44, 0xe2, 0x08, 0x8f, 0xca, 0x84, 0x1f, + 0x21, 0x48, 0xd2, 0x69, 0xb3, 0x85, 0x49, 0xff, 0xa3, 0x2d, 0xc8, 0xa8, 0xd8, 0xee, 0x58, 0x1a, + 0xdd, 0x63, 0x28, 0xb8, 0x08, 0xb0, 0xc7, 0x24, 0xe9, 0x97, 0x45, 0xc8, 0x72, 0x3b, 0x8e, 0xf0, + 0x68, 0x22, 0xbc, 0xbf, 0x0c, 0x49, 0x67, 0x64, 0xba, 0xe8, 0xde, 0x9e, 0x39, 0xef, 0x23, 0x3c, + 0x6a, 0x8d, 0x4c, 0x2c, 0x53, 0xa9, 0x00, 0xc6, 0x12, 0x21, 0x8c, 0x45, 0xd0, 0x9f, 0xbc, 0x20, + 0xfa, 0xf7, 0x61, 0x15, 0x7f, 0x60, 0x6a, 0x96, 0x4f, 0xc5, 0xc2, 0x4c, 0x15, 0xd9, 0xb1, 0x08, + 0x51, 0x22, 0xfd, 0x38, 0x09, 0x69, 0x2f, 0xe2, 0xa8, 0x02, 0x39, 0x53, 0xb1, 0xed, 0x17, 0x86, + 0xa5, 0xb6, 0xd9, 0x52, 0x99, 0x27, 0x14, 0xab, 0xae, 0xcc, 0x3e, 0x13, 0x21, 0x5b, 0xce, 0x99, + 0x66, 0xd9, 0x4e, 0xdb, 0x17, 0x93, 0x34, 0xa5, 0x50, 0x2c, 0x6e, 0x02, 0x05, 0x37, 0xeb, 0x65, + 0x61, 0x49, 0x11, 0xc2, 0xc4, 0xfd, 0x28, 0x19, 0xd9, 0x8f, 0x88, 0xbc, 0xae, 0x75, 0xde, 0x0f, + 0x6c, 0x85, 0x84, 0x40, 0x3b, 0xdf, 0x00, 0xe4, 0x5b, 0x99, 0x8a, 0xde, 0x1d, 0x2a, 0x5d, 0xb6, + 0x29, 0xa6, 0xe5, 0xb5, 0xf1, 0xba, 0xe4, 0x1d, 0xe8, 0x6d, 0x58, 0xec, 0x62, 0x5d, 0xc5, 0x16, + 0x5d, 0xba, 0xd9, 0xdd, 0xad, 0xf8, 0x08, 0x3f, 0xa5, 0x7c, 0x32, 0xe7, 0x47, 0x57, 0x60, 0x01, + 0x0f, 0x14, 0xad, 0xcf, 0x77, 0x4c, 0xd6, 0x40, 0x45, 0x58, 0xd3, 0xec, 0x36, 0xfd, 0xdf, 0x3e, + 0xc7, 0x96, 0x76, 0xa6, 0x61, 0x95, 0x2e, 0xd7, 0x94, 0xbc, 0xaa, 0xd9, 0x15, 0x42, 0x7f, 0xc6, + 0xc9, 0x44, 0x83, 0xd9, 0x33, 0x74, 0x77, 0xb1, 0xb2, 0x06, 0xd7, 0x40, 0xff, 0x8f, 0x35, 0x64, + 0x5c, 0x0d, 0x27, 0x84, 0xee, 0x69, 0xc8, 0xc3, 0x52, 0xc7, 0x18, 0xea, 0x8e, 0x35, 0xa2, 0x0b, + 0x33, 0x2d, 0xbb, 0x4d, 0x82, 0xbc, 0xbe, 0xd1, 0x51, 0xfa, 0x9a, 0x33, 0xca, 0xaf, 0x70, 0x17, + 0xf3, 0x36, 0xd9, 0xdd, 0x4c, 0xc3, 0x76, 0x94, 0x7e, 0xbb, 0x63, 0xa8, 0x38, 0x9f, 0xa5, 0xdd, + 0xc0, 0x48, 0xfb, 0x86, 0x8a, 0xd1, 0x3a, 0x2c, 0x5a, 0xb8, 0x4b, 0x16, 0xcd, 0x2a, 0x3b, 0x83, + 0x58, 0x8b, 0x6c, 0x44, 0xb6, 0x63, 0x61, 0xec, 0x90, 0x55, 0x6a, 0x61, 0xdb, 0xce, 0xe7, 0xd8, + 0x46, 0xc4, 0xa8, 0x65, 0x46, 0x94, 0xfe, 0x30, 0x01, 0x19, 0xb2, 0xd9, 0x9f, 0x58, 0xc6, 0x99, + 0xd6, 0xc7, 0x91, 0x35, 0xf5, 0x2a, 0xf0, 0x08, 0xc4, 0x3e, 0x19, 0x8a, 0x7d, 0x18, 0x3b, 0x0b, + 0x51, 0xec, 0xfc, 0xc4, 0xe0, 0xe1, 0x5f, 0xfa, 0xa9, 0x59, 0x4b, 0x3f, 0xfd, 0x6a, 0x07, 0x1f, + 0x5c, 0xe4, 0xe0, 0x93, 0xfe, 0x3d, 0xc1, 0x92, 0x1d, 0x1e, 0x9e, 0x89, 0xdb, 0xde, 0xcf, 0x42, + 0xf4, 0x79, 0x86, 0x28, 0x9c, 0x7f, 0x64, 0xe6, 0xce, 0x3f, 0x96, 0xe3, 0xf2, 0x0f, 0xe9, 0x37, + 0x44, 0xc8, 0x9f, 0x9a, 0xc4, 0x16, 0x5f, 0xec, 0x65, 0x32, 0x5d, 0xdb, 0x41, 0xf7, 0x02, 0xe1, + 0xa6, 0x30, 0xd8, 0x83, 0x97, 0x7b, 0x4b, 0xd6, 0x42, 0x4e, 0xc8, 0xff, 0xa3, 0xe0, 0x0f, 0xfd, + 0xeb, 0xfe, 0xd0, 0x8b, 0x11, 0xce, 0x31, 0x0c, 0xee, 0xfa, 0x61, 0x40, 0x31, 0xb2, 0x97, 0x7a, + 0xb9, 0xb7, 0x60, 0x25, 0x28, 0x9b, 0x07, 0x88, 0x47, 0x13, 0xa3, 0x9d, 0x8c, 0x28, 0x9e, 0x1a, + 0xf9, 0x85, 0x8b, 0x45, 0x5e, 0x92, 0xe1, 0x2a, 0x3b, 0xab, 0x4e, 0x79, 0x7e, 0xe4, 0x3a, 0xe2, + 0x91, 0x3f, 0x87, 0x62, 0x7e, 0xb8, 0xfe, 0x72, 0xef, 0x9a, 0xb5, 0xb1, 0x7b, 0xf5, 0x5b, 0xdf, + 0xfc, 0xd6, 0x37, 0x1f, 0xdb, 0xa6, 0xd2, 0xc1, 0x8f, 0xdf, 0x7b, 0xef, 0xa3, 0x87, 0xf7, 0x77, + 0x1f, 0x3c, 0xf8, 0xf8, 0xb5, 0x71, 0x86, 0x25, 0xfd, 0x87, 0x00, 0x69, 0xa2, 0x8e, 0xee, 0xf1, + 0x91, 0x05, 0xe5, 0x9d, 0x16, 0xa2, 0xff, 0xb4, 0xd8, 0x86, 0xf0, 0xa1, 0x40, 0x3d, 0x35, 0xe1, + 0xac, 0xf0, 0x63, 0x35, 0x39, 0x0b, 0xab, 0x0b, 0xaf, 0x86, 0xd5, 0xc5, 0x0b, 0x6d, 0x27, 0xff, + 0x2d, 0xc0, 0x8a, 0x37, 0xef, 0x89, 0x9b, 0xc9, 0x4f, 0xef, 0xdc, 0x1f, 0x43, 0x9e, 0x5a, 0x39, + 0xaa, 0x8d, 0x3c, 0x17, 0xb8, 0x50, 0xba, 0x09, 0x49, 0x7a, 0xbc, 0x46, 0x57, 0x13, 0xa5, 0x4b, + 0x8f, 0x61, 0x7d, 0xbc, 0x1e, 0x03, 0x92, 0x5b, 0xae, 0xbf, 0xa2, 0xa2, 0xac, 0x43, 0xfa, 0x4f, + 0x8e, 0x35, 0x9a, 0x0d, 0x4c, 0xf2, 0x37, 0xcb, 0x2b, 0xc4, 0x99, 0x79, 0x45, 0x62, 0x72, 0x5e, + 0xf1, 0xff, 0xd7, 0xe3, 0xff, 0xc3, 0xd1, 0xc6, 0xec, 0x8d, 0x41, 0xdb, 0x4f, 0xed, 0xec, 0x1f, + 0xf9, 0x31, 0x43, 0x8d, 0x76, 0x31, 0x73, 0xcb, 0x9d, 0x35, 0xc3, 0x4c, 0xfa, 0xe5, 0xde, 0xa2, + 0x95, 0xcc, 0x09, 0xf9, 0x2b, 0xdc, 0x01, 0xd2, 0xdb, 0xb0, 0xce, 0xa0, 0x1a, 0x11, 0x9d, 0x05, + 0xd4, 0x7f, 0x12, 0x59, 0x3a, 0xc7, 0xd3, 0xbb, 0x88, 0xc3, 0x7d, 0x49, 0xa8, 0x18, 0x9f, 0x84, + 0x26, 0xa6, 0x27, 0xa1, 0xc9, 0x29, 0x49, 0xe8, 0xc2, 0x8c, 0x24, 0x74, 0x71, 0x42, 0x12, 0x1a, + 0x08, 0xe2, 0xd2, 0xac, 0x20, 0xa6, 0x5e, 0x2d, 0x88, 0xe9, 0x0b, 0x05, 0xf1, 0xc7, 0xfc, 0xb1, + 0x89, 0x5b, 0x3a, 0x11, 0xc4, 0x3f, 0xf3, 0xe9, 0xc5, 0x7c, 0xfa, 0xaf, 0x82, 0x3f, 0xbb, 0xe1, + 0xf6, 0xba, 0x00, 0x97, 0xc6, 0xce, 0x14, 0x42, 0x79, 0x88, 0xe7, 0xd6, 0xd7, 0x7c, 0x6e, 0x15, + 0xc3, 0xc9, 0x8a, 0xe7, 0xe0, 0x7b, 0x41, 0x07, 0x87, 0xb3, 0x1a, 0xbf, 0xab, 0xb7, 0x3c, 0x57, + 0x27, 0x43, 0x5c, 0xae, 0xd3, 0x4b, 0x11, 0xa7, 0x2f, 0x84, 0x38, 0x43, 0xf7, 0xaa, 0x3e, 0x64, + 0x4f, 0x02, 0x37, 0x6d, 0x74, 0x1f, 0x96, 0x8d, 0xbe, 0xda, 0x76, 0xef, 0xdf, 0xe1, 0xc5, 0x7f, + 0x28, 0x67, 0x8c, 0xbe, 0xea, 0xca, 0x10, 0x6e, 0x1d, 0xbf, 0x18, 0x73, 0x8b, 0x11, 0x6e, 0x1d, + 0xbf, 0x70, 0xb9, 0xa5, 0x2f, 0xc2, 0x32, 0x3f, 0xdb, 0xce, 0x94, 0x86, 0x63, 0xa2, 0xcd, 0xc0, + 0x36, 0xb1, 0xf4, 0x72, 0x2f, 0x69, 0x89, 0x39, 0x77, 0x8f, 0xa8, 0xc2, 0x72, 0x6d, 0xd8, 0x77, + 0xb4, 0x27, 0x4a, 0xc7, 0x31, 0x2c, 0x1b, 0x3d, 0x82, 0xe4, 0xe0, 0x4c, 0x71, 0xdf, 0x65, 0xa7, + 0x3d, 0x17, 0x8d, 0xa5, 0x64, 0x2a, 0x22, 0xfd, 0x22, 0x64, 0x7c, 0x44, 0xf4, 0x16, 0x7f, 0x80, + 0x11, 0x68, 0x8a, 0x77, 0x7b, 0x8a, 0xa6, 0x33, 0xc5, 0xf7, 0xf2, 0xf2, 0x76, 0xf0, 0x59, 0x52, + 0x9a, 0x22, 0xf7, 0xa4, 0xec, 0x7f, 0x95, 0x94, 0xbe, 0x2f, 0x40, 0x96, 0x4d, 0x59, 0xc6, 0xb6, + 0x69, 0xe8, 0x76, 0xe0, 0x51, 0x56, 0x08, 0x3c, 0xca, 0xe6, 0x20, 0x31, 0xb4, 0xdc, 0xbc, 0x86, + 0xfc, 0x25, 0x2b, 0xcc, 0xc6, 0x1d, 0x0b, 0x3b, 0x7c, 0x71, 0xf2, 0xd6, 0xd8, 0x9e, 0xe4, 0x45, + 0xed, 0xf9, 0x15, 0x11, 0xd6, 0x09, 0xa8, 0x9f, 0x5a, 0x8a, 0xee, 0x34, 0xb1, 0x62, 0x75, 0x7a, + 0x2e, 0xb0, 0xd7, 0x61, 0xd1, 0x38, 0x3b, 0xb3, 0xb1, 0x43, 0xcd, 0x4a, 0xca, 0xbc, 0x45, 0x8e, + 0xc0, 0xbe, 0x36, 0xd0, 0x1c, 0x6a, 0x58, 0x52, 0x66, 0x0d, 0xf4, 0x1e, 0x64, 0x6d, 0xc3, 0x72, + 0x34, 0xbd, 0xdb, 0xee, 0x18, 0xfd, 0xe1, 0x40, 0xe7, 0x2f, 0xd5, 0xf7, 0xa7, 0x3f, 0xd9, 0xfa, + 0xc6, 0x3d, 0xc2, 0x23, 0x8a, 0xce, 0x4f, 0x04, 0x71, 0xeb, 0x92, 0xbc, 0xc2, 0xb5, 0xed, 0x53, + 0x65, 0xc4, 0x17, 0x8a, 0xdd, 0xa1, 0xf3, 0x4b, 0xc9, 0xe4, 0x2f, 0x3a, 0x84, 0xa5, 0xef, 0x0c, + 0xb1, 0xa5, 0x61, 0x82, 0x6c, 0x82, 0x83, 0x9d, 0xb9, 0x47, 0xfa, 0xda, 0x10, 0x5b, 0x23, 0xd9, + 0x15, 0x97, 0xfe, 0x46, 0x80, 0x2b, 0x93, 0x38, 0xd0, 0x21, 0x24, 0xde, 0xc7, 0x23, 0x0e, 0x8e, + 0x4f, 0x3b, 0x11, 0xa2, 0x02, 0xfd, 0x1c, 0x2c, 0x0e, 0xb0, 0xd3, 0x33, 0x54, 0x8e, 0x98, 0x2f, + 0xc4, 0x2b, 0x63, 0x3a, 0x6a, 0x94, 0x5b, 0xe6, 0x52, 0xc4, 0xe7, 0xe7, 0x4a, 0x7f, 0xe8, 0x5e, + 0x87, 0x59, 0x43, 0xfa, 0x23, 0x11, 0x36, 0x22, 0xc1, 0xe3, 0xa8, 0xba, 0x58, 0xf4, 0x6e, 0xc3, + 0xb2, 0x63, 0x90, 0x9d, 0xc7, 0xc2, 0xf6, 0xb0, 0xef, 0xf0, 0xe7, 0xc4, 0x0c, 0xa5, 0xc9, 0x94, + 0x84, 0xbe, 0x42, 0xb6, 0x1c, 0xda, 0x99, 0xa4, 0xee, 0x7e, 0x7d, 0x0e, 0x7f, 0xd0, 0x62, 0x08, + 0x17, 0x63, 0x37, 0x6f, 0xa3, 0x83, 0x6d, 0x1b, 0xab, 0xed, 0xd0, 0xe3, 0xf8, 0x9a, 0xd7, 0xd3, + 0x74, 0xb7, 0xfc, 0x32, 0x64, 0xcf, 0x35, 0xfc, 0xa2, 0xed, 0xd5, 0x89, 0xe6, 0xc8, 0x66, 0x56, + 0x88, 0x84, 0xd7, 0x94, 0xfe, 0x84, 0xa7, 0x73, 0x9e, 0x2d, 0x64, 0xf6, 0x0d, 0xab, 0x5b, 0x75, + 0x57, 0x1a, 0x6b, 0xa0, 0xeb, 0x90, 0x3e, 0xb1, 0x8c, 0x6f, 0xe3, 0x8e, 0x53, 0x75, 0xab, 0x2f, + 0x63, 0x02, 0xf1, 0xe4, 0x29, 0x5d, 0x90, 0xee, 0xa2, 0x63, 0x2d, 0xa2, 0x4b, 0x36, 0xfa, 0xd8, + 0xa6, 0xfe, 0x48, 0xcb, 0xac, 0x41, 0xce, 0xd6, 0x86, 0xd5, 0xad, 0x8f, 0x5f, 0x1f, 0xdc, 0x26, + 0xe9, 0xa1, 0x86, 0x54, 0x55, 0x7e, 0xfe, 0xb9, 0x4d, 0xe9, 0xcf, 0x04, 0xb8, 0x56, 0x1b, 0xf1, + 0x11, 0x1b, 0x56, 0xf7, 0x55, 0xd6, 0x61, 0x74, 0xa1, 0x1c, 0x85, 0x17, 0xca, 0xc3, 0x29, 0xdb, + 0x43, 0xc4, 0x8a, 0xd0, 0x5a, 0xf9, 0x7b, 0x01, 0x36, 0x62, 0x98, 0xd0, 0x91, 0x7f, 0xb9, 0x94, + 0x2e, 0x32, 0xc8, 0x4f, 0x6c, 0xc5, 0xfc, 0xb1, 0x00, 0x85, 0x49, 0x9e, 0xfe, 0xac, 0x16, 0xcd, + 0x5b, 0xa1, 0x45, 0x73, 0x23, 0x7e, 0x16, 0x0d, 0xab, 0xeb, 0x2e, 0x15, 0xe9, 0x1e, 0x24, 0x1a, + 0x56, 0x37, 0x92, 0xb7, 0x4d, 0xa8, 0x43, 0x48, 0x0f, 0x61, 0xa5, 0x36, 0x3a, 0xc1, 0xd6, 0x40, + 0x63, 0xd5, 0x46, 0xb4, 0x05, 0x19, 0x73, 0xdc, 0xa4, 0x67, 0x64, 0x5a, 0xf6, 0x93, 0x24, 0x05, + 0xb2, 0xec, 0x84, 0xf7, 0x72, 0x18, 0x6f, 0x7e, 0x82, 0x7f, 0x7e, 0xaf, 0xc3, 0xaa, 0xbb, 0x4c, + 0xdb, 0xdc, 0x2d, 0x6c, 0xfe, 0x59, 0x97, 0xdc, 0x60, 0xee, 0xe1, 0x98, 0x4b, 0x78, 0x98, 0x93, + 0x6c, 0x58, 0xe2, 0x43, 0xa0, 0xc7, 0xb0, 0xc4, 0x52, 0x29, 0xf7, 0xbc, 0x9e, 0xf2, 0x90, 0xc2, + 0x64, 0x64, 0x57, 0xc0, 0x17, 0x0f, 0x71, 0x72, 0x3c, 0x12, 0x3e, 0x7b, 0xa5, 0x5f, 0x17, 0x61, + 0x91, 0xa7, 0x2e, 0xa1, 0x74, 0x4f, 0xb8, 0xd0, 0xfb, 0xd8, 0x01, 0x00, 0x3e, 0xc7, 0xba, 0xd3, + 0xf6, 0x6a, 0x33, 0xd1, 0x24, 0x83, 0xd9, 0x7b, 0x4c, 0x53, 0xb7, 0x0f, 0xb1, 0x5a, 0x63, 0x45, + 0x65, 0x39, 0x4d, 0x05, 0x5b, 0xb3, 0xaa, 0x33, 0x9b, 0x90, 0xc6, 0xaa, 0xe6, 0x18, 0xbe, 0x4a, + 0x6c, 0x8a, 0x11, 0xd8, 0x7e, 0xc3, 0xfe, 0xbb, 0x69, 0x34, 0x6b, 0xa1, 0x2f, 0x42, 0x52, 0x55, + 0x1c, 0x85, 0x6f, 0x83, 0x1b, 0x91, 0xc9, 0x34, 0x69, 0xb9, 0x5d, 0xa6, 0x4c, 0xd2, 0x9f, 0x27, + 0x20, 0xef, 0xa5, 0x73, 0xc6, 0xc0, 0xec, 0xe3, 0x0f, 0x34, 0x67, 0x74, 0x62, 0xf4, 0xb5, 0xce, + 0x28, 0x82, 0xab, 0x50, 0x2d, 0x4b, 0x8c, 0xd4, 0xb2, 0x3e, 0xe7, 0x62, 0xea, 0x0d, 0x80, 0x81, + 0xa6, 0xb7, 0xfb, 0x58, 0xef, 0x3a, 0x3d, 0x7e, 0x62, 0xa4, 0x07, 0x9a, 0x7e, 0x4c, 0x09, 0xe8, + 0x0e, 0xac, 0xf4, 0x14, 0xbb, 0xdd, 0x37, 0x5e, 0x60, 0xab, 0xa3, 0xd8, 0xec, 0xda, 0x9b, 0x92, + 0x97, 0x7b, 0x8a, 0x7d, 0xec, 0xd2, 0x5c, 0xa6, 0xa1, 0x69, 0x72, 0xa6, 0x25, 0x8f, 0xe9, 0xd4, + 0xa5, 0x91, 0x81, 0x08, 0x93, 0x3e, 0x1c, 0x3c, 0xc7, 0x16, 0xbd, 0x63, 0xa4, 0xe4, 0x74, 0x4f, + 0xb1, 0xeb, 0x94, 0xe0, 0x76, 0xdb, 0xa3, 0xc1, 0x73, 0xa3, 0xcf, 0xeb, 0x2e, 0xa4, 0xbb, 0x49, + 0x09, 0x81, 0x88, 0x43, 0xb4, 0x4e, 0xae, 0xd9, 0x6d, 0x15, 0x9f, 0x29, 0x64, 0x33, 0x60, 0x05, + 0x97, 0xb4, 0x66, 0x1f, 0x30, 0x82, 0x34, 0x84, 0xcb, 0x95, 0x0f, 0x1c, 0x6c, 0xe9, 0x4a, 0xbf, + 0x7a, 0x70, 0xe2, 0xed, 0x47, 0x12, 0xac, 0x68, 0xaa, 0xd9, 0xee, 0x18, 0xfa, 0x99, 0xd6, 0x1d, + 0x27, 0x88, 0x19, 0x4d, 0x35, 0xf7, 0x29, 0xad, 0xaa, 0xfa, 0xd3, 0x47, 0x31, 0x90, 0x3e, 0x86, + 0x1f, 0xc3, 0x13, 0xd1, 0xda, 0x7b, 0x0f, 0xf2, 0x81, 0x61, 0x07, 0xc6, 0x39, 0x1e, 0xdf, 0x6b, + 0x66, 0x8f, 0xbd, 0x0d, 0x39, 0xcc, 0xe5, 0xdb, 0x41, 0x23, 0xb2, 0x2e, 0x9d, 0x1d, 0x96, 0xd2, + 0x61, 0x60, 0xa4, 0x57, 0x38, 0xe0, 0xa4, 0x1f, 0x8a, 0x70, 0x6d, 0x82, 0xaa, 0xcf, 0x6a, 0x07, + 0x2f, 0x87, 0x76, 0xf0, 0x29, 0x5f, 0x81, 0xf8, 0xac, 0xfa, 0x9c, 0x13, 0x9f, 0x1f, 0x89, 0xb0, + 0x1a, 0xb2, 0x26, 0xfe, 0x9a, 0x11, 0x09, 0xb4, 0x38, 0x5f, 0xa0, 0x13, 0x93, 0x02, 0x8d, 0xae, + 0x41, 0x8a, 0x68, 0xf3, 0x95, 0x67, 0x96, 0x34, 0xd5, 0xe4, 0x5f, 0x09, 0x14, 0x82, 0x4a, 0x26, + 0xd4, 0x6a, 0x36, 0xfc, 0xea, 0x0e, 0x7c, 0x75, 0x9b, 0xc8, 0x0e, 0xb4, 0xf8, 0x6a, 0x3b, 0xd0, + 0xd2, 0x45, 0x76, 0xa0, 0xa2, 0x15, 0xf8, 0x4c, 0x88, 0x7d, 0x4c, 0xb3, 0x05, 0xd7, 0x4f, 0x9b, + 0x15, 0xb9, 0x59, 0x69, 0x36, 0xab, 0x8d, 0x7a, 0xb3, 0x55, 0x6e, 0x55, 0xda, 0xa7, 0xf5, 0xe6, + 0x49, 0x65, 0xbf, 0xfa, 0xa4, 0x5a, 0x39, 0xc8, 0x5d, 0x42, 0x9b, 0xb0, 0x11, 0xe1, 0x28, 0xef, + 0xb7, 0xaa, 0xcf, 0x2a, 0x39, 0x01, 0xdd, 0x82, 0xcd, 0x48, 0x67, 0xab, 0x22, 0xd7, 0xaa, 0xf5, + 0x72, 0xab, 0x72, 0x90, 0x13, 0x8b, 0x65, 0xff, 0xe7, 0x03, 0xfc, 0x48, 0x59, 0xaf, 0x95, 0xf7, + 0x0f, 0xab, 0xf5, 0xca, 0x51, 0xe5, 0xdd, 0xd0, 0x58, 0x97, 0x61, 0xd5, 0xd7, 0xf7, 0xd5, 0x66, + 0xa3, 0x9e, 0x13, 0x8a, 0x7f, 0xc9, 0x5f, 0x72, 0x99, 0xc1, 0xd7, 0xe0, 0x2a, 0x1d, 0x71, 0x82, + 0xa5, 0x57, 0x20, 0x37, 0xee, 0xf2, 0x4c, 0x5c, 0x07, 0x34, 0xa6, 0x56, 0xeb, 0x9c, 0x2e, 0xa2, + 0xab, 0xb0, 0x36, 0xa6, 0x1f, 0x54, 0x8e, 0x2b, 0xc4, 0xe0, 0x44, 0x50, 0xc9, 0x71, 0x63, 0xff, + 0xa8, 0x72, 0x90, 0x4b, 0x06, 0x99, 0x9b, 0xa7, 0xcd, 0x93, 0x4a, 0xfd, 0x20, 0xb7, 0x10, 0x24, + 0x57, 0xeb, 0xd5, 0x56, 0xb5, 0x7c, 0x9c, 0x5b, 0x2c, 0xfe, 0x02, 0x2c, 0xb2, 0x6a, 0x0a, 0x19, + 0xfc, 0x69, 0xa5, 0x7e, 0x50, 0x91, 0x43, 0xa6, 0xae, 0xc1, 0x0a, 0xa7, 0x3f, 0xa9, 0xd4, 0xca, + 0xc7, 0xc4, 0xce, 0x55, 0xc8, 0x70, 0x12, 0x25, 0x88, 0x08, 0x41, 0x96, 0x13, 0x0e, 0xaa, 0xcf, + 0x88, 0x8f, 0x73, 0x89, 0xe2, 0x01, 0x2c, 0xf1, 0x4b, 0x3c, 0xda, 0x80, 0xcb, 0xb5, 0x27, 0xe5, + 0xd6, 0xbb, 0x27, 0x61, 0x37, 0xac, 0x42, 0xc6, 0xed, 0x68, 0xd6, 0x9a, 0x4c, 0xb3, 0x4b, 0x68, + 0xb4, 0x4e, 0x72, 0x62, 0xf1, 0x0c, 0x52, 0xee, 0x15, 0x1a, 0xe5, 0xe1, 0x0a, 0xf9, 0x3f, 0xc1, + 0x9d, 0xeb, 0x80, 0xbc, 0x9e, 0x7a, 0xa3, 0xd5, 0x96, 0x2b, 0xe5, 0x83, 0x77, 0x73, 0x02, 0xb1, + 0xcb, 0xa3, 0x33, 0x9a, 0x48, 0xbc, 0xe6, 0xa3, 0xd5, 0x1a, 0xcf, 0x88, 0x2f, 0x8b, 0xe7, 0x80, + 0xa2, 0xb7, 0x4a, 0x74, 0x13, 0x0a, 0x51, 0x6a, 0xfb, 0xb4, 0x7e, 0x54, 0x6f, 0x7c, 0xbd, 0x9e, + 0xbb, 0x84, 0x6e, 0xc0, 0xb5, 0x09, 0xfd, 0x0d, 0xf9, 0x69, 0xbb, 0x7a, 0x90, 0x13, 0xd0, 0x6d, + 0xb8, 0x31, 0xa1, 0xfb, 0x44, 0x6e, 0x7c, 0xb5, 0xb2, 0xdf, 0x22, 0x2c, 0x62, 0xf1, 0x39, 0x5c, + 0x9d, 0x98, 0x9e, 0xa3, 0xbb, 0x70, 0xbb, 0xf6, 0x2e, 0x67, 0x6d, 0xc8, 0x4f, 0x9b, 0x95, 0xb2, + 0xbc, 0x7f, 0x18, 0x85, 0xa1, 0x04, 0x37, 0x27, 0xb3, 0x11, 0x23, 0xea, 0xe5, 0x5a, 0x25, 0x27, + 0x14, 0xff, 0x45, 0x80, 0x65, 0x7f, 0xce, 0x4e, 0xe2, 0xc1, 0x18, 0x6b, 0x95, 0xd6, 0x61, 0xe3, + 0xa0, 0x5d, 0xf9, 0xda, 0x69, 0xf9, 0xb8, 0x99, 0xbb, 0x84, 0xae, 0x43, 0x3e, 0xd0, 0xd1, 0x6c, + 0x95, 0xe5, 0x56, 0xb3, 0xfd, 0xf5, 0x6a, 0xeb, 0x30, 0x27, 0x10, 0x3c, 0x07, 0x7a, 0xf7, 0x1b, + 0xf5, 0x56, 0xb9, 0x5a, 0x6f, 0xe6, 0x44, 0x74, 0x07, 0x6e, 0x4d, 0xd0, 0xd8, 0xae, 0x3e, 0xad, + 0x37, 0xe4, 0x4a, 0x7b, 0xbf, 0x4c, 0x10, 0x81, 0xb6, 0xe1, 0xb5, 0x38, 0xed, 0x01, 0xce, 0x24, + 0x99, 0xfc, 0xc4, 0x91, 0x02, 0x6c, 0x0b, 0xbb, 0xbf, 0x7d, 0x07, 0x32, 0xe5, 0xa1, 0xd3, 0x6b, + 0x62, 0xeb, 0x5c, 0xeb, 0x60, 0x72, 0xf3, 0x3a, 0xc4, 0x4a, 0xdf, 0xe9, 0x7d, 0x88, 0xd6, 0x23, + 0x1b, 0x4d, 0x65, 0x60, 0x3a, 0xa3, 0x42, 0x0c, 0x5d, 0xca, 0x7d, 0xf2, 0xcf, 0xff, 0xf6, 0x3b, + 0x22, 0xa0, 0x54, 0xa9, 0xc7, 0x35, 0x3c, 0x85, 0x05, 0x19, 0x2b, 0xea, 0xe8, 0xc2, 0xaa, 0xb2, + 0x54, 0x55, 0x0a, 0x2d, 0x96, 0x2c, 0x2a, 0x5f, 0x87, 0xd4, 0x33, 0xfe, 0x85, 0x65, 0xac, 0xae, + 0xb8, 0xec, 0x52, 0x5a, 0xa3, 0xca, 0x32, 0x28, 0xed, 0x7d, 0xa5, 0x89, 0xbe, 0x2b, 0xc0, 0xda, + 0x53, 0xec, 0xb0, 0x22, 0x95, 0xfb, 0xd1, 0x63, 0xac, 0xe6, 0xe2, 0xdc, 0x5f, 0x51, 0xda, 0xd2, + 0x1b, 0x9f, 0xfc, 0x75, 0x7e, 0x15, 0x56, 0x08, 0x0f, 0xd6, 0x1d, 0xad, 0xa3, 0x38, 0x58, 0xa5, + 0xe3, 0x5f, 0x41, 0xa8, 0x44, 0x4e, 0x10, 0xbb, 0x34, 0xc0, 0x25, 0xf7, 0x33, 0x4d, 0x34, 0x80, + 0xb4, 0x67, 0x47, 0xec, 0xf8, 0xd2, 0xf4, 0xf1, 0xc9, 0xc0, 0xd2, 0x6b, 0x71, 0xe3, 0x92, 0x79, + 0xbb, 0xe3, 0xa2, 0x5f, 0x15, 0x20, 0xe7, 0x8d, 0xe7, 0x7e, 0x8d, 0x12, 0x37, 0xec, 0x8c, 0x8f, + 0x47, 0x7d, 0x5f, 0x4b, 0x48, 0xf7, 0xe3, 0x46, 0xbf, 0x8c, 0xd6, 0xc6, 0xb3, 0x36, 0xf9, 0x80, + 0x3f, 0x14, 0xe0, 0x32, 0x7b, 0x9b, 0x0e, 0x1a, 0xb2, 0x3b, 0x65, 0xc0, 0x98, 0x42, 0x7d, 0xe1, + 0xee, 0x5c, 0x46, 0x4a, 0xa5, 0x38, 0x03, 0xd7, 0x0b, 0x51, 0x03, 0x1f, 0x0b, 0x45, 0xf4, 0x7d, + 0x01, 0x72, 0xec, 0x62, 0xc6, 0x6c, 0xa4, 0x07, 0x7a, 0x69, 0xd6, 0x35, 0x30, 0x54, 0x3d, 0x8f, + 0xc5, 0xf7, 0x83, 0x38, 0x73, 0x36, 0x0a, 0x3e, 0x94, 0x90, 0x3f, 0x24, 0xcf, 0x20, 0xf6, 0x7c, + 0x0c, 0x59, 0x2f, 0x70, 0xac, 0xa0, 0x1e, 0x17, 0xb6, 0x19, 0x8f, 0x5c, 0x5e, 0x55, 0x5a, 0x2a, + 0xc6, 0x19, 0xb1, 0x86, 0x56, 0xc7, 0x46, 0xb0, 0xda, 0xf4, 0xef, 0x0b, 0xb0, 0xe6, 0x77, 0x07, + 0x33, 0xe1, 0xc1, 0x3c, 0x01, 0xf3, 0x57, 0x72, 0x0b, 0x77, 0xe6, 0x30, 0x6e, 0xca, 0x1a, 0x2a, + 0x84, 0x0d, 0x23, 0xae, 0xf9, 0x3d, 0x01, 0xd6, 0x22, 0x45, 0xe7, 0x69, 0x60, 0x8a, 0xab, 0x50, + 0xc7, 0x86, 0xeb, 0xad, 0x38, 0x83, 0xae, 0x4b, 0x1b, 0x21, 0x83, 0x4a, 0xac, 0x98, 0x3a, 0x22, + 0x86, 0xfd, 0x40, 0x80, 0x1b, 0x32, 0xb6, 0xb1, 0xae, 0xd6, 0x46, 0xbe, 0x02, 0x7e, 0x87, 0x26, + 0x78, 0xb5, 0x69, 0x31, 0x8c, 0x33, 0xa4, 0x1c, 0x67, 0xc8, 0xb6, 0x74, 0x27, 0x62, 0x88, 0x45, + 0x87, 0x3e, 0xf7, 0x8d, 0x19, 0x06, 0x12, 0xab, 0x96, 0x7f, 0x4a, 0x20, 0x79, 0x05, 0xe7, 0x39, + 0x81, 0xc4, 0xca, 0xce, 0x61, 0x20, 0x31, 0x13, 0xe6, 0x02, 0x92, 0xbf, 0x46, 0x3b, 0x0b, 0x48, + 0x94, 0x77, 0x4e, 0x20, 0x51, 0xc3, 0x88, 0x6b, 0x0c, 0x58, 0x63, 0xf7, 0xc9, 0x79, 0xbc, 0x13, + 0x17, 0xa2, 0x78, 0x67, 0x14, 0x23, 0xce, 0xf8, 0xdd, 0x10, 0x72, 0x67, 0x3a, 0x63, 0x72, 0xc1, + 0xfa, 0x15, 0x71, 0x4b, 0x6d, 0x89, 0xc3, 0xad, 0xef, 0x43, 0x00, 0x86, 0x21, 0x56, 0x36, 0xfd, + 0x4c, 0x70, 0xcb, 0x0d, 0x99, 0x8c, 0xdb, 0xc0, 0xd1, 0xe5, 0xd6, 0x5f, 0x3f, 0xe5, 0xd1, 0xe5, + 0x2b, 0x34, 0xcf, 0x79, 0x74, 0xf1, 0x82, 0x24, 0x3d, 0x16, 0x3c, 0x2b, 0xdc, 0xe7, 0xc2, 0xed, + 0x59, 0xc7, 0x82, 0xfb, 0x68, 0x59, 0xb8, 0x3d, 0x93, 0x73, 0x4e, 0x7b, 0xdc, 0xd7, 0xc6, 0xf0, + 0x51, 0xea, 0x3a, 0x66, 0xae, 0xa3, 0x34, 0x58, 0x15, 0x9e, 0x75, 0x94, 0xba, 0x45, 0xd7, 0xf9, + 0x8e, 0x52, 0xee, 0x30, 0x12, 0xb9, 0x73, 0x9e, 0xe3, 0xd4, 0xce, 0x94, 0xf8, 0x88, 0x7d, 0x61, + 0xae, 0x8a, 0xa8, 0x2d, 0xdd, 0x8b, 0x1b, 0x3d, 0x87, 0xb2, 0xe3, 0xd1, 0x07, 0x64, 0xa8, 0xdf, + 0xf2, 0x1d, 0xe1, 0x5e, 0xc9, 0x77, 0x4a, 0xac, 0x82, 0xa5, 0xe4, 0x58, 0x2c, 0x3f, 0x8a, 0xb3, + 0x60, 0xab, 0xb0, 0xe9, 0xc3, 0x32, 0x57, 0x66, 0x97, 0xf8, 0x77, 0xe3, 0xc4, 0x13, 0x7f, 0x2a, + 0xc0, 0x0d, 0xea, 0x8a, 0xd8, 0x67, 0xce, 0x38, 0xf7, 0xec, 0xce, 0x61, 0x76, 0x48, 0xd7, 0x14, + 0x43, 0xd1, 0xcd, 0x92, 0x49, 0x78, 0x34, 0x6c, 0xfb, 0x0c, 0xed, 0x78, 0x0a, 0xd0, 0x3f, 0x08, + 0x70, 0x85, 0x5f, 0x77, 0x46, 0xbe, 0x47, 0x99, 0xa9, 0xb8, 0x8a, 0x7b, 0x2b, 0x2b, 0xbc, 0x79, + 0x21, 0x19, 0xf6, 0x28, 0x26, 0x7d, 0x39, 0xce, 0xf8, 0x3b, 0xd2, 0x4d, 0xdf, 0x49, 0xc7, 0xe5, + 0x35, 0xd5, 0xb4, 0x4b, 0x6d, 0x9b, 0xaa, 0x20, 0x8e, 0xfe, 0x5b, 0x01, 0x2e, 0xbb, 0x5b, 0xb9, + 0x6f, 0x8c, 0x39, 0xcd, 0x0f, 0x3c, 0x2a, 0xc6, 0xe2, 0xa0, 0x15, 0x67, 0xe1, 0x3b, 0xc5, 0x47, + 0x31, 0x16, 0x7e, 0x14, 0x78, 0xb4, 0xfa, 0xb8, 0xf4, 0x51, 0xf8, 0x81, 0xea, 0x63, 0xf4, 0x4b, + 0x90, 0x2e, 0xab, 0x6a, 0xed, 0x4c, 0x69, 0xb4, 0x4e, 0x62, 0xd1, 0xb0, 0x3d, 0xb5, 0xe8, 0xef, + 0x2b, 0xd4, 0x4f, 0x49, 0x34, 0x25, 0x14, 0x5c, 0x2e, 0x25, 0xc3, 0x31, 0x89, 0xeb, 0xbe, 0x27, + 0xf8, 0x3f, 0x73, 0x68, 0x9d, 0xa0, 0x2f, 0xcc, 0x4c, 0xa4, 0xe8, 0x90, 0xb1, 0x7e, 0x7a, 0x3b, + 0xce, 0x84, 0x5b, 0x85, 0x42, 0xd4, 0x04, 0xff, 0x39, 0x34, 0x80, 0x65, 0x1e, 0xc4, 0xe9, 0xee, + 0x88, 0x1b, 0x39, 0xfe, 0xf8, 0x2f, 0x4e, 0x98, 0x3c, 0xfa, 0x0b, 0x01, 0xd6, 0x5c, 0xd0, 0x7b, + 0x6f, 0x0e, 0x53, 0x53, 0x93, 0x89, 0x1f, 0x21, 0x14, 0x1e, 0x5e, 0x40, 0x82, 0x87, 0xe9, 0x4b, + 0x71, 0x96, 0x6e, 0x4a, 0xeb, 0xd4, 0xd2, 0x2e, 0x11, 0xa2, 0xe6, 0xfa, 0x50, 0xfe, 0x77, 0x02, + 0x5c, 0x76, 0x0d, 0x1e, 0xbf, 0x7f, 0xd8, 0xe8, 0xcd, 0x8b, 0xd4, 0x31, 0x5d, 0xab, 0xbf, 0x74, + 0x31, 0x21, 0x6e, 0x78, 0xfc, 0x1e, 0x23, 0x6d, 0x96, 0xba, 0x7d, 0xe3, 0xb9, 0xd2, 0x27, 0xb7, + 0x2a, 0x22, 0x6c, 0x58, 0xdd, 0xc0, 0x1a, 0xfd, 0x4d, 0x01, 0x36, 0xe8, 0x66, 0xf8, 0x0d, 0x36, + 0xa4, 0xbf, 0x20, 0xf8, 0x29, 0x52, 0xd2, 0x40, 0x45, 0x51, 0xda, 0x8d, 0xb3, 0xeb, 0x1a, 0xda, + 0x28, 0xf9, 0x0a, 0x8b, 0x25, 0xae, 0x8a, 0x5c, 0x8e, 0xbf, 0xeb, 0x1a, 0xc4, 0x67, 0xfb, 0x7f, + 0x6a, 0xd0, 0xd4, 0x1c, 0xd9, 0x6f, 0xd0, 0x00, 0xef, 0xfd, 0x95, 0xf0, 0x83, 0xf2, 0xf7, 0x04, + 0xf4, 0x0e, 0xa4, 0xca, 0x43, 0xa7, 0xb7, 0x55, 0x3e, 0xa9, 0x4a, 0x45, 0xb4, 0xdd, 0x73, 0x1c, + 0xd3, 0x7e, 0x5c, 0x2a, 0x75, 0x35, 0xa7, 0x37, 0x7c, 0xbe, 0xd3, 0x31, 0x06, 0x25, 0x32, 0xb6, + 0x37, 0x03, 0xf3, 0xfd, 0x6e, 0x89, 0xa8, 0xdf, 0x4d, 0x3c, 0xd8, 0x79, 0x58, 0x14, 0xc4, 0xdd, + 0x9c, 0x62, 0x9a, 0x7d, 0x9e, 0x41, 0x95, 0xbe, 0x6d, 0x1b, 0x7a, 0x90, 0xd2, 0xb5, 0xcc, 0xce, + 0xe3, 0x08, 0xcf, 0xe3, 0x08, 0xcf, 0x37, 0xee, 0x4e, 0x1b, 0x91, 0x70, 0xd0, 0x61, 0x9f, 0x2f, + 0x52, 0xd7, 0xbc, 0xf9, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf6, 0x2f, 0x40, 0xc5, 0xb5, 0x3b, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConnInterface +var _ grpc.ClientConn // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 +const _ = grpc.SupportPackageIsVersion4 // AuthServiceClient is the client API for AuthService service. // @@ -5705,10 +3752,10 @@ type AuthServiceClient interface { } type authServiceClient struct { - cc grpc.ClientConnInterface + cc *grpc.ClientConn } -func NewAuthServiceClient(cc grpc.ClientConnInterface) AuthServiceClient { +func NewAuthServiceClient(cc *grpc.ClientConn) AuthServiceClient { return &authServiceClient{cc} } @@ -6047,100 +4094,100 @@ type AuthServiceServer interface { type UnimplementedAuthServiceServer struct { } -func (*UnimplementedAuthServiceServer) Healthz(context.Context, *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) Healthz(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Healthz not implemented") } -func (*UnimplementedAuthServiceServer) Ready(context.Context, *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) Ready(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Ready not implemented") } -func (*UnimplementedAuthServiceServer) Validate(context.Context, *empty.Empty) (*_struct.Struct, error) { +func (*UnimplementedAuthServiceServer) Validate(ctx context.Context, req *empty.Empty) (*_struct.Struct, error) { return nil, status.Errorf(codes.Unimplemented, "method Validate not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUserSessions(context.Context, *empty.Empty) (*UserSessionViews, error) { +func (*UnimplementedAuthServiceServer) GetMyUserSessions(ctx context.Context, req *empty.Empty) (*UserSessionViews, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserSessions not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUser(context.Context, *empty.Empty) (*UserView, error) { +func (*UnimplementedAuthServiceServer) GetMyUser(ctx context.Context, req *empty.Empty) (*UserView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUser not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUserProfile(context.Context, *empty.Empty) (*UserProfileView, error) { +func (*UnimplementedAuthServiceServer) GetMyUserProfile(ctx context.Context, req *empty.Empty) (*UserProfileView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserProfile not implemented") } -func (*UnimplementedAuthServiceServer) UpdateMyUserProfile(context.Context, *UpdateUserProfileRequest) (*UserProfile, error) { +func (*UnimplementedAuthServiceServer) UpdateMyUserProfile(ctx context.Context, req *UpdateUserProfileRequest) (*UserProfile, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateMyUserProfile not implemented") } -func (*UnimplementedAuthServiceServer) ChangeMyUserName(context.Context, *ChangeUserNameRequest) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) ChangeMyUserName(ctx context.Context, req *ChangeUserNameRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeMyUserName not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUserEmail(context.Context, *empty.Empty) (*UserEmailView, error) { +func (*UnimplementedAuthServiceServer) GetMyUserEmail(ctx context.Context, req *empty.Empty) (*UserEmailView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserEmail not implemented") } -func (*UnimplementedAuthServiceServer) ChangeMyUserEmail(context.Context, *UpdateUserEmailRequest) (*UserEmail, error) { +func (*UnimplementedAuthServiceServer) ChangeMyUserEmail(ctx context.Context, req *UpdateUserEmailRequest) (*UserEmail, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeMyUserEmail not implemented") } -func (*UnimplementedAuthServiceServer) VerifyMyUserEmail(context.Context, *VerifyMyUserEmailRequest) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) VerifyMyUserEmail(ctx context.Context, req *VerifyMyUserEmailRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method VerifyMyUserEmail not implemented") } -func (*UnimplementedAuthServiceServer) ResendMyEmailVerificationMail(context.Context, *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) ResendMyEmailVerificationMail(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ResendMyEmailVerificationMail not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUserPhone(context.Context, *empty.Empty) (*UserPhoneView, error) { +func (*UnimplementedAuthServiceServer) GetMyUserPhone(ctx context.Context, req *empty.Empty) (*UserPhoneView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserPhone not implemented") } -func (*UnimplementedAuthServiceServer) ChangeMyUserPhone(context.Context, *UpdateUserPhoneRequest) (*UserPhone, error) { +func (*UnimplementedAuthServiceServer) ChangeMyUserPhone(ctx context.Context, req *UpdateUserPhoneRequest) (*UserPhone, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeMyUserPhone not implemented") } -func (*UnimplementedAuthServiceServer) RemoveMyUserPhone(context.Context, *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) RemoveMyUserPhone(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveMyUserPhone not implemented") } -func (*UnimplementedAuthServiceServer) VerifyMyUserPhone(context.Context, *VerifyUserPhoneRequest) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) VerifyMyUserPhone(ctx context.Context, req *VerifyUserPhoneRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method VerifyMyUserPhone not implemented") } -func (*UnimplementedAuthServiceServer) ResendMyPhoneVerificationCode(context.Context, *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) ResendMyPhoneVerificationCode(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ResendMyPhoneVerificationCode not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUserAddress(context.Context, *empty.Empty) (*UserAddressView, error) { +func (*UnimplementedAuthServiceServer) GetMyUserAddress(ctx context.Context, req *empty.Empty) (*UserAddressView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserAddress not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUserChanges(context.Context, *ChangesRequest) (*Changes, error) { +func (*UnimplementedAuthServiceServer) GetMyUserChanges(ctx context.Context, req *ChangesRequest) (*Changes, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserChanges not implemented") } -func (*UnimplementedAuthServiceServer) UpdateMyUserAddress(context.Context, *UpdateUserAddressRequest) (*UserAddress, error) { +func (*UnimplementedAuthServiceServer) UpdateMyUserAddress(ctx context.Context, req *UpdateUserAddressRequest) (*UserAddress, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateMyUserAddress not implemented") } -func (*UnimplementedAuthServiceServer) GetMyMfas(context.Context, *empty.Empty) (*MultiFactors, error) { +func (*UnimplementedAuthServiceServer) GetMyMfas(ctx context.Context, req *empty.Empty) (*MultiFactors, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyMfas not implemented") } -func (*UnimplementedAuthServiceServer) ChangeMyPassword(context.Context, *PasswordChange) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) ChangeMyPassword(ctx context.Context, req *PasswordChange) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeMyPassword not implemented") } -func (*UnimplementedAuthServiceServer) GetMyPasswordComplexityPolicy(context.Context, *empty.Empty) (*PasswordComplexityPolicy, error) { +func (*UnimplementedAuthServiceServer) GetMyPasswordComplexityPolicy(ctx context.Context, req *empty.Empty) (*PasswordComplexityPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyPasswordComplexityPolicy not implemented") } -func (*UnimplementedAuthServiceServer) SearchMyExternalIDPs(context.Context, *ExternalIDPSearchRequest) (*ExternalIDPSearchResponse, error) { +func (*UnimplementedAuthServiceServer) SearchMyExternalIDPs(ctx context.Context, req *ExternalIDPSearchRequest) (*ExternalIDPSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchMyExternalIDPs not implemented") } -func (*UnimplementedAuthServiceServer) RemoveMyExternalIDP(context.Context, *ExternalIDPRemoveRequest) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) RemoveMyExternalIDP(ctx context.Context, req *ExternalIDPRemoveRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveMyExternalIDP not implemented") } -func (*UnimplementedAuthServiceServer) AddMfaOTP(context.Context, *empty.Empty) (*MfaOtpResponse, error) { +func (*UnimplementedAuthServiceServer) AddMfaOTP(ctx context.Context, req *empty.Empty) (*MfaOtpResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AddMfaOTP not implemented") } -func (*UnimplementedAuthServiceServer) VerifyMfaOTP(context.Context, *VerifyMfaOtp) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) VerifyMfaOTP(ctx context.Context, req *VerifyMfaOtp) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method VerifyMfaOTP not implemented") } -func (*UnimplementedAuthServiceServer) RemoveMfaOTP(context.Context, *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) RemoveMfaOTP(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveMfaOTP not implemented") } -func (*UnimplementedAuthServiceServer) SearchMyUserGrant(context.Context, *UserGrantSearchRequest) (*UserGrantSearchResponse, error) { +func (*UnimplementedAuthServiceServer) SearchMyUserGrant(ctx context.Context, req *UserGrantSearchRequest) (*UserGrantSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchMyUserGrant not implemented") } -func (*UnimplementedAuthServiceServer) SearchMyProjectOrgs(context.Context, *MyProjectOrgSearchRequest) (*MyProjectOrgSearchResponse, error) { +func (*UnimplementedAuthServiceServer) SearchMyProjectOrgs(ctx context.Context, req *MyProjectOrgSearchRequest) (*MyProjectOrgSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchMyProjectOrgs not implemented") } -func (*UnimplementedAuthServiceServer) GetMyZitadelPermissions(context.Context, *empty.Empty) (*MyPermissions, error) { +func (*UnimplementedAuthServiceServer) GetMyZitadelPermissions(ctx context.Context, req *empty.Empty) (*MyPermissions, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyZitadelPermissions not implemented") } -func (*UnimplementedAuthServiceServer) GetMyProjectPermissions(context.Context, *empty.Empty) (*MyPermissions, error) { +func (*UnimplementedAuthServiceServer) GetMyProjectPermissions(ctx context.Context, req *empty.Empty) (*MyPermissions, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyProjectPermissions not implemented") } diff --git a/pkg/grpc/auth/auth.pb.gw.go b/pkg/grpc/auth/auth.pb.gw.go index ed7359ce12..cc7db28b3d 100644 --- a/pkg/grpc/auth/auth.pb.gw.go +++ b/pkg/grpc/auth/auth.pb.gw.go @@ -13,7 +13,6 @@ import ( "io" "net/http" - "github.com/golang/protobuf/descriptor" "github.com/golang/protobuf/proto" "github.com/golang/protobuf/ptypes/empty" "github.com/grpc-ecosystem/grpc-gateway/runtime" @@ -24,13 +23,11 @@ import ( "google.golang.org/grpc/status" ) -// Suppress "imported and not used" errors var _ codes.Code var _ io.Reader var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray -var _ = descriptor.ForMessage func request_AuthService_Healthz_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty @@ -41,15 +38,6 @@ func request_AuthService_Healthz_0(ctx context.Context, marshaler runtime.Marsha } -func local_request_AuthService_Healthz_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.Healthz(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_Ready_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -59,15 +47,6 @@ func request_AuthService_Ready_0(ctx context.Context, marshaler runtime.Marshale } -func local_request_AuthService_Ready_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.Ready(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_Validate_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -77,15 +56,6 @@ func request_AuthService_Validate_0(ctx context.Context, marshaler runtime.Marsh } -func local_request_AuthService_Validate_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.Validate(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_GetMyUserSessions_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -95,15 +65,6 @@ func request_AuthService_GetMyUserSessions_0(ctx context.Context, marshaler runt } -func local_request_AuthService_GetMyUserSessions_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetMyUserSessions(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_GetMyUser_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -113,15 +74,6 @@ func request_AuthService_GetMyUser_0(ctx context.Context, marshaler runtime.Mars } -func local_request_AuthService_GetMyUser_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetMyUser(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_GetMyUserProfile_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -131,15 +83,6 @@ func request_AuthService_GetMyUserProfile_0(ctx context.Context, marshaler runti } -func local_request_AuthService_GetMyUserProfile_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetMyUserProfile(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_UpdateMyUserProfile_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UpdateUserProfileRequest var metadata runtime.ServerMetadata @@ -157,23 +100,6 @@ func request_AuthService_UpdateMyUserProfile_0(ctx context.Context, marshaler ru } -func local_request_AuthService_UpdateMyUserProfile_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UpdateUserProfileRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.UpdateMyUserProfile(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_ChangeMyUserName_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ChangeUserNameRequest var metadata runtime.ServerMetadata @@ -191,23 +117,6 @@ func request_AuthService_ChangeMyUserName_0(ctx context.Context, marshaler runti } -func local_request_AuthService_ChangeMyUserName_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeUserNameRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.ChangeMyUserName(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_GetMyUserEmail_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -217,15 +126,6 @@ func request_AuthService_GetMyUserEmail_0(ctx context.Context, marshaler runtime } -func local_request_AuthService_GetMyUserEmail_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetMyUserEmail(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_ChangeMyUserEmail_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UpdateUserEmailRequest var metadata runtime.ServerMetadata @@ -243,23 +143,6 @@ func request_AuthService_ChangeMyUserEmail_0(ctx context.Context, marshaler runt } -func local_request_AuthService_ChangeMyUserEmail_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UpdateUserEmailRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.ChangeMyUserEmail(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_VerifyMyUserEmail_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq VerifyMyUserEmailRequest var metadata runtime.ServerMetadata @@ -277,23 +160,6 @@ func request_AuthService_VerifyMyUserEmail_0(ctx context.Context, marshaler runt } -func local_request_AuthService_VerifyMyUserEmail_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq VerifyMyUserEmailRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.VerifyMyUserEmail(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_ResendMyEmailVerificationMail_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -311,23 +177,6 @@ func request_AuthService_ResendMyEmailVerificationMail_0(ctx context.Context, ma } -func local_request_AuthService_ResendMyEmailVerificationMail_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.ResendMyEmailVerificationMail(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_GetMyUserPhone_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -337,15 +186,6 @@ func request_AuthService_GetMyUserPhone_0(ctx context.Context, marshaler runtime } -func local_request_AuthService_GetMyUserPhone_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetMyUserPhone(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_ChangeMyUserPhone_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UpdateUserPhoneRequest var metadata runtime.ServerMetadata @@ -363,23 +203,6 @@ func request_AuthService_ChangeMyUserPhone_0(ctx context.Context, marshaler runt } -func local_request_AuthService_ChangeMyUserPhone_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UpdateUserPhoneRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.ChangeMyUserPhone(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_RemoveMyUserPhone_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -389,15 +212,6 @@ func request_AuthService_RemoveMyUserPhone_0(ctx context.Context, marshaler runt } -func local_request_AuthService_RemoveMyUserPhone_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.RemoveMyUserPhone(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_VerifyMyUserPhone_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq VerifyUserPhoneRequest var metadata runtime.ServerMetadata @@ -415,23 +229,6 @@ func request_AuthService_VerifyMyUserPhone_0(ctx context.Context, marshaler runt } -func local_request_AuthService_VerifyMyUserPhone_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq VerifyUserPhoneRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.VerifyMyUserPhone(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_ResendMyPhoneVerificationCode_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -449,23 +246,6 @@ func request_AuthService_ResendMyPhoneVerificationCode_0(ctx context.Context, ma } -func local_request_AuthService_ResendMyPhoneVerificationCode_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.ResendMyPhoneVerificationCode(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_GetMyUserAddress_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -475,15 +255,6 @@ func request_AuthService_GetMyUserAddress_0(ctx context.Context, marshaler runti } -func local_request_AuthService_GetMyUserAddress_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetMyUserAddress(ctx, &protoReq) - return msg, metadata, err - -} - var ( filter_AuthService_GetMyUserChanges_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -504,22 +275,6 @@ func request_AuthService_GetMyUserChanges_0(ctx context.Context, marshaler runti } -func local_request_AuthService_GetMyUserChanges_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangesRequest - var metadata runtime.ServerMetadata - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_GetMyUserChanges_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetMyUserChanges(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_UpdateMyUserAddress_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UpdateUserAddressRequest var metadata runtime.ServerMetadata @@ -537,23 +292,6 @@ func request_AuthService_UpdateMyUserAddress_0(ctx context.Context, marshaler ru } -func local_request_AuthService_UpdateMyUserAddress_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UpdateUserAddressRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.UpdateMyUserAddress(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_GetMyMfas_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -563,15 +301,6 @@ func request_AuthService_GetMyMfas_0(ctx context.Context, marshaler runtime.Mars } -func local_request_AuthService_GetMyMfas_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetMyMfas(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_ChangeMyPassword_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq PasswordChange var metadata runtime.ServerMetadata @@ -589,23 +318,6 @@ func request_AuthService_ChangeMyPassword_0(ctx context.Context, marshaler runti } -func local_request_AuthService_ChangeMyPassword_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PasswordChange - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.ChangeMyPassword(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_GetMyPasswordComplexityPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -615,15 +327,6 @@ func request_AuthService_GetMyPasswordComplexityPolicy_0(ctx context.Context, ma } -func local_request_AuthService_GetMyPasswordComplexityPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetMyPasswordComplexityPolicy(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_SearchMyExternalIDPs_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ExternalIDPSearchRequest var metadata runtime.ServerMetadata @@ -641,23 +344,6 @@ func request_AuthService_SearchMyExternalIDPs_0(ctx context.Context, marshaler r } -func local_request_AuthService_SearchMyExternalIDPs_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ExternalIDPSearchRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SearchMyExternalIDPs(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_RemoveMyExternalIDP_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ExternalIDPRemoveRequest var metadata runtime.ServerMetadata @@ -696,44 +382,6 @@ func request_AuthService_RemoveMyExternalIDP_0(ctx context.Context, marshaler ru } -func local_request_AuthService_RemoveMyExternalIDP_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ExternalIDPRemoveRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["idp_config_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "idp_config_id") - } - - protoReq.IdpConfigId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "idp_config_id", err) - } - - val, ok = pathParams["external_user_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "external_user_id") - } - - protoReq.ExternalUserId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "external_user_id", err) - } - - msg, err := server.RemoveMyExternalIDP(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_AddMfaOTP_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -751,23 +399,6 @@ func request_AuthService_AddMfaOTP_0(ctx context.Context, marshaler runtime.Mars } -func local_request_AuthService_AddMfaOTP_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.AddMfaOTP(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_VerifyMfaOTP_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq VerifyMfaOtp var metadata runtime.ServerMetadata @@ -785,23 +416,6 @@ func request_AuthService_VerifyMfaOTP_0(ctx context.Context, marshaler runtime.M } -func local_request_AuthService_VerifyMfaOTP_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq VerifyMfaOtp - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.VerifyMfaOTP(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_RemoveMfaOTP_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -811,15 +425,6 @@ func request_AuthService_RemoveMfaOTP_0(ctx context.Context, marshaler runtime.M } -func local_request_AuthService_RemoveMfaOTP_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.RemoveMfaOTP(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_SearchMyUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UserGrantSearchRequest var metadata runtime.ServerMetadata @@ -837,23 +442,6 @@ func request_AuthService_SearchMyUserGrant_0(ctx context.Context, marshaler runt } -func local_request_AuthService_SearchMyUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserGrantSearchRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SearchMyUserGrant(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_SearchMyProjectOrgs_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq MyProjectOrgSearchRequest var metadata runtime.ServerMetadata @@ -871,23 +459,6 @@ func request_AuthService_SearchMyProjectOrgs_0(ctx context.Context, marshaler ru } -func local_request_AuthService_SearchMyProjectOrgs_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq MyProjectOrgSearchRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SearchMyProjectOrgs(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_GetMyZitadelPermissions_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -897,15 +468,6 @@ func request_AuthService_GetMyZitadelPermissions_0(ctx context.Context, marshale } -func local_request_AuthService_GetMyZitadelPermissions_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetMyZitadelPermissions(ctx, &protoReq) - return msg, metadata, err - -} - func request_AuthService_GetMyProjectPermissions_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -915,663 +477,6 @@ func request_AuthService_GetMyProjectPermissions_0(ctx context.Context, marshale } -func local_request_AuthService_GetMyProjectPermissions_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetMyProjectPermissions(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterAuthServiceHandlerServer registers the http handlers for service AuthService to "mux". -// UnaryRPC :call AuthServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -func RegisterAuthServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server AuthServiceServer) error { - - mux.Handle("GET", pattern_AuthService_Healthz_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_Healthz_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_Healthz_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_Ready_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_Ready_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_Ready_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_Validate_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_Validate_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_Validate_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_GetMyUserSessions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_GetMyUserSessions_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_GetMyUserSessions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_GetMyUser_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_GetMyUser_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_GetMyUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_GetMyUserProfile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_GetMyUserProfile_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_GetMyUserProfile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_AuthService_UpdateMyUserProfile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_UpdateMyUserProfile_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_UpdateMyUserProfile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_AuthService_ChangeMyUserName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_ChangeMyUserName_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_ChangeMyUserName_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_GetMyUserEmail_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_GetMyUserEmail_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_GetMyUserEmail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_AuthService_ChangeMyUserEmail_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_ChangeMyUserEmail_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_ChangeMyUserEmail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_AuthService_VerifyMyUserEmail_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_VerifyMyUserEmail_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_VerifyMyUserEmail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_AuthService_ResendMyEmailVerificationMail_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_ResendMyEmailVerificationMail_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_ResendMyEmailVerificationMail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_GetMyUserPhone_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_GetMyUserPhone_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_GetMyUserPhone_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_AuthService_ChangeMyUserPhone_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_ChangeMyUserPhone_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_ChangeMyUserPhone_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_AuthService_RemoveMyUserPhone_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_RemoveMyUserPhone_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_RemoveMyUserPhone_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_AuthService_VerifyMyUserPhone_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_VerifyMyUserPhone_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_VerifyMyUserPhone_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_AuthService_ResendMyPhoneVerificationCode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_ResendMyPhoneVerificationCode_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_ResendMyPhoneVerificationCode_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_GetMyUserAddress_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_GetMyUserAddress_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_GetMyUserAddress_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_GetMyUserChanges_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_GetMyUserChanges_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_GetMyUserChanges_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_AuthService_UpdateMyUserAddress_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_UpdateMyUserAddress_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_UpdateMyUserAddress_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_GetMyMfas_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_GetMyMfas_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_GetMyMfas_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_AuthService_ChangeMyPassword_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_ChangeMyPassword_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_ChangeMyPassword_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_GetMyPasswordComplexityPolicy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_GetMyPasswordComplexityPolicy_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_GetMyPasswordComplexityPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_AuthService_SearchMyExternalIDPs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_SearchMyExternalIDPs_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_SearchMyExternalIDPs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_AuthService_RemoveMyExternalIDP_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_RemoveMyExternalIDP_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_RemoveMyExternalIDP_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_AuthService_AddMfaOTP_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_AddMfaOTP_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_AddMfaOTP_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_AuthService_VerifyMfaOTP_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_VerifyMfaOTP_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_VerifyMfaOTP_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_AuthService_RemoveMfaOTP_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_RemoveMfaOTP_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_RemoveMfaOTP_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_AuthService_SearchMyUserGrant_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_SearchMyUserGrant_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_SearchMyUserGrant_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_AuthService_SearchMyProjectOrgs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_SearchMyProjectOrgs_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_SearchMyProjectOrgs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_GetMyZitadelPermissions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_GetMyZitadelPermissions_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_GetMyZitadelPermissions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_GetMyProjectPermissions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_GetMyProjectPermissions_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_GetMyProjectPermissions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - // RegisterAuthServiceHandlerFromEndpoint is same as RegisterAuthServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. func RegisterAuthServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { diff --git a/pkg/grpc/auth/auth.swagger.json b/pkg/grpc/auth/auth.swagger.json index ee34ce79dd..0c03d0f578 100644 --- a/pkg/grpc/auth/auth.swagger.json +++ b/pkg/grpc/auth/auth.swagger.json @@ -21,19 +21,13 @@ "paths": { "/global/projectorgs/_search": { "post": { - "operationId": "AuthService_SearchMyProjectOrgs", + "operationId": "SearchMyProjectOrgs", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MyProjectOrgSearchResponse" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -54,19 +48,13 @@ "/healthz": { "get": { "summary": "Readiness", - "operationId": "AuthService_Healthz", + "operationId": "Healthz", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -76,19 +64,13 @@ }, "/permissions/me": { "get": { - "operationId": "AuthService_GetMyProjectPermissions", + "operationId": "GetMyProjectPermissions", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MyPermissions" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -99,19 +81,13 @@ "/permissions/zitadel/me": { "get": { "summary": "Permission", - "operationId": "AuthService_GetMyZitadelPermissions", + "operationId": "GetMyZitadelPermissions", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MyPermissions" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -121,19 +97,13 @@ }, "/policies/passwords/complexity": { "get": { - "operationId": "AuthService_GetMyPasswordComplexityPolicy", + "operationId": "GetMyPasswordComplexityPolicy", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1PasswordComplexityPolicy" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -143,19 +113,13 @@ }, "/ready": { "get": { - "operationId": "AuthService_Ready", + "operationId": "Ready", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -165,19 +129,13 @@ }, "/usergrants/me/_search": { "post": { - "operationId": "AuthService_SearchMyUserGrant", + "operationId": "SearchMyUserGrant", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserGrantSearchResponse" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -198,19 +156,13 @@ "/users/me": { "get": { "summary": "User", - "operationId": "AuthService_GetMyUser", + "operationId": "GetMyUser", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserView" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -220,19 +172,13 @@ }, "/users/me/address": { "get": { - "operationId": "AuthService_GetMyUserAddress", + "operationId": "GetMyUserAddress", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserAddressView" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -240,19 +186,13 @@ ] }, "put": { - "operationId": "AuthService_UpdateMyUserAddress", + "operationId": "UpdateMyUserAddress", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserAddress" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -272,19 +212,13 @@ }, "/users/me/changes": { "get": { - "operationId": "AuthService_GetMyUserChanges", + "operationId": "GetMyUserChanges", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1Changes" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -317,19 +251,13 @@ }, "/users/me/email": { "get": { - "operationId": "AuthService_GetMyUserEmail", + "operationId": "GetMyUserEmail", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserEmailView" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -337,19 +265,13 @@ ] }, "put": { - "operationId": "AuthService_ChangeMyUserEmail", + "operationId": "ChangeMyUserEmail", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserEmail" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -369,19 +291,13 @@ }, "/users/me/email/_resendverification": { "post": { - "operationId": "AuthService_ResendMyEmailVerificationMail", + "operationId": "ResendMyEmailVerificationMail", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -401,19 +317,13 @@ }, "/users/me/email/_verify": { "post": { - "operationId": "AuthService_VerifyMyUserEmail", + "operationId": "VerifyMyUserEmail", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -434,19 +344,13 @@ "/users/me/externalidps/_search": { "post": { "summary": "ExternalIDP", - "operationId": "AuthService_SearchMyExternalIDPs", + "operationId": "SearchMyExternalIDPs", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1ExternalIDPSearchResponse" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -466,19 +370,13 @@ }, "/users/me/externalidps/{idp_config_id}/{external_user_id}": { "delete": { - "operationId": "AuthService_RemoveMyExternalIDP", + "operationId": "RemoveMyExternalIDP", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -502,19 +400,13 @@ }, "/users/me/mfas": { "get": { - "operationId": "AuthService_GetMyMfas", + "operationId": "GetMyMfas", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MultiFactors" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -524,19 +416,13 @@ }, "/users/me/mfas/otp": { "delete": { - "operationId": "AuthService_RemoveMfaOTP", + "operationId": "RemoveMfaOTP", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -545,19 +431,13 @@ }, "post": { "summary": "MFA", - "operationId": "AuthService_AddMfaOTP", + "operationId": "AddMfaOTP", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MfaOtpResponse" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -577,19 +457,13 @@ }, "/users/me/mfas/otp/_verify": { "put": { - "operationId": "AuthService_VerifyMfaOTP", + "operationId": "VerifyMfaOTP", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -610,19 +484,13 @@ "/users/me/passwords/_change": { "put": { "summary": "Password", - "operationId": "AuthService_ChangeMyPassword", + "operationId": "ChangeMyPassword", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -642,19 +510,13 @@ }, "/users/me/phone": { "get": { - "operationId": "AuthService_GetMyUserPhone", + "operationId": "GetMyUserPhone", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserPhoneView" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -662,19 +524,13 @@ ] }, "delete": { - "operationId": "AuthService_RemoveMyUserPhone", + "operationId": "RemoveMyUserPhone", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -682,19 +538,13 @@ ] }, "put": { - "operationId": "AuthService_ChangeMyUserPhone", + "operationId": "ChangeMyUserPhone", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserPhone" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -714,19 +564,13 @@ }, "/users/me/phone/_resendverification": { "post": { - "operationId": "AuthService_ResendMyPhoneVerificationCode", + "operationId": "ResendMyPhoneVerificationCode", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -746,19 +590,13 @@ }, "/users/me/phone/_verify": { "post": { - "operationId": "AuthService_VerifyMyUserPhone", + "operationId": "VerifyMyUserPhone", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -778,19 +616,13 @@ }, "/users/me/profile": { "get": { - "operationId": "AuthService_GetMyUserProfile", + "operationId": "GetMyUserProfile", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserProfileView" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -798,19 +630,13 @@ ] }, "put": { - "operationId": "AuthService_UpdateMyUserProfile", + "operationId": "UpdateMyUserProfile", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserProfile" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -831,19 +657,13 @@ "/users/me/sessions": { "get": { "summary": "Authorization", - "operationId": "AuthService_GetMyUserSessions", + "operationId": "GetMyUserSessions", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserSessionViews" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -853,19 +673,13 @@ }, "/users/me/username": { "put": { - "operationId": "AuthService_ChangeMyUserName", + "operationId": "ChangeMyUserName", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "parameters": [ @@ -885,19 +699,13 @@ }, "/validate": { "get": { - "operationId": "AuthService_Validate", + "operationId": "Validate", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object" } - }, - "default": { - "description": "An unexpected error response", - "schema": { - "$ref": "#/definitions/runtimeError" - } } }, "tags": [ @@ -907,21 +715,6 @@ } }, "definitions": { - "protobufAny": { - "type": "object", - "properties": { - "type_url": { - "type": "string", - "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." - }, - "value": { - "type": "string", - "format": "byte", - "description": "Must be a valid serialized protocol buffer of the above specified type." - } - }, - "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := ptypes.MarshalAny(foo)\n ...\n foo := \u0026pb.Foo{}\n if err := ptypes.UnmarshalAny(any, foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" - }, "protobufNullValue": { "type": "string", "enum": [ @@ -930,27 +723,6 @@ "default": "NULL_VALUE", "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." }, - "runtimeError": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "code": { - "type": "integer", - "format": "int32" - }, - "message": { - "type": "string" - }, - "details": { - "type": "array", - "items": { - "$ref": "#/definitions/protobufAny" - } - } - } - }, "v1Change": { "type": "object", "properties": { diff --git a/pkg/grpc/management/management.pb.go b/pkg/grpc/management/management.pb.go index 9ae977b25d..7116afc150 100644 --- a/pkg/grpc/management/management.pb.go +++ b/pkg/grpc/management/management.pb.go @@ -22651,11 +22651,11 @@ func file_management_proto_init() { // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConnInterface +var _ grpc.ClientConn // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 +const _ = grpc.SupportPackageIsVersion4 // ManagementServiceClient is the client API for ManagementService service. // @@ -22819,10 +22819,10 @@ type ManagementServiceClient interface { } type managementServiceClient struct { - cc grpc.ClientConnInterface + cc *grpc.ClientConn } -func NewManagementServiceClient(cc grpc.ClientConnInterface) ManagementServiceClient { +func NewManagementServiceClient(cc *grpc.ClientConn) ManagementServiceClient { return &managementServiceClient{cc} } diff --git a/pkg/grpc/management/management.swagger.json b/pkg/grpc/management/management.swagger.json deleted file mode 100644 index 27c55b6c34..0000000000 --- a/pkg/grpc/management/management.swagger.json +++ /dev/null @@ -1,6777 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Management API", - "version": "0.1", - "contact": { - "url": "https://github.com/caos/zitadel/pkg/management" - } - }, - "schemes": [ - "https" - ], - "consumes": [ - "application/json", - "application/grpc" - ], - "produces": [ - "application/json", - "application/grpc" - ], - "paths": { - "/global/orgs/_bydomain": { - "get": { - "summary": "search a organisation by its domain overall organisations", - "operationId": "GetOrgByDomainGlobal", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1OrgView" - } - } - }, - "parameters": [ - { - "name": "domain", - "in": "query", - "required": false, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/global/users/_byemail": { - "get": { - "summary": "GetUserByEmailGlobal returns User, global search is overall organisations", - "operationId": "GetUserByEmailGlobal", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserView" - } - } - }, - "parameters": [ - { - "name": "email", - "in": "query", - "required": false, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/grantedprojects/_search": { - "post": { - "summary": "returns all projects my organisation got granted from another organisation", - "operationId": "SearchGrantedProjects", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectGrantSearchResponse" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1GrantedProjectSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/grantedprojects/{project_id}/grants/{id}": { - "get": { - "summary": "returns a project my organisation got granted from another organisation", - "operationId": "GetGrantedProjectByID", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectGrantView" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/healthz": { - "get": { - "summary": "READINESS", - "operationId": "Healthz", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "tags": [ - "ManagementService" - ] - } - }, - "/iam": { - "get": { - "summary": "GetIam returns some needed settings of the iam (Global Organisation ID, Zitadel Project ID)", - "operationId": "GetIam", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Iam" - } - } - }, - "tags": [ - "ManagementService" - ] - } - }, - "/orgs/me": { - "get": { - "operationId": "GetMyOrg", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1OrgView" - } - } - }, - "tags": [ - "ManagementService" - ] - } - }, - "/orgs/me/_deactivate": { - "put": { - "operationId": "DeactivateMyOrg", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Org" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "properties": {} - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/orgs/me/_reactivate": { - "put": { - "operationId": "ReactivateMyOrg", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Org" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "properties": {} - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/orgs/me/domains": { - "post": { - "operationId": "AddMyOrgDomain", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1OrgDomain" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1AddOrgDomainRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/orgs/me/domains/_search": { - "post": { - "operationId": "SearchMyOrgDomains", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1OrgDomainSearchResponse" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1OrgDomainSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/orgs/me/domains/{domain}": { - "delete": { - "operationId": "RemoveMyOrgDomain", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/orgs/me/iampolicy": { - "get": { - "operationId": "GetMyOrgIamPolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1OrgIamPolicy" - } - } - }, - "tags": [ - "ManagementService" - ] - } - }, - "/orgs/me/members": { - "post": { - "operationId": "AddMyOrgMember", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1OrgMember" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1AddOrgMemberRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/orgs/me/members/_search": { - "post": { - "operationId": "SearchMyOrgMembers", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1OrgMemberSearchResponse" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1OrgMemberSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/orgs/me/members/{user_id}": { - "delete": { - "operationId": "RemoveMyOrgMember", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "ChangeMyOrgMember", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1OrgMember" - } - } - }, - "parameters": [ - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ChangeOrgMemberRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/orgs/members/roles": { - "get": { - "operationId": "GetOrgMemberRoles", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1OrgMemberRoles" - } - } - }, - "tags": [ - "ManagementService" - ] - } - }, - "/orgs/{id}/changes": { - "get": { - "summary": "OrgChanges returns the event stream of the org object", - "operationId": "OrgChanges", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Changes" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "sec_id", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "limit", - "in": "query", - "required": false, - "type": "string", - "format": "uint64" - }, - { - "name": "sequence_offset", - "in": "query", - "required": false, - "type": "string", - "format": "uint64" - }, - { - "name": "asc", - "in": "query", - "required": false, - "type": "boolean", - "format": "boolean" - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/policies/passwords/age": { - "get": { - "summary": "returns default if nothing other set on organisation", - "operationId": "GetPasswordAgePolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1PasswordAgePolicy" - } - } - }, - "tags": [ - "ManagementService" - ] - }, - "delete": { - "operationId": "DeletePasswordAgePolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "post": { - "operationId": "CreatePasswordAgePolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1PasswordAgePolicy" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1PasswordAgePolicyCreate" - } - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "UpdatePasswordAgePolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1PasswordAgePolicy" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1PasswordAgePolicyUpdate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/policies/passwords/complexity": { - "get": { - "summary": "returns default policy if nothing other set on organisation", - "operationId": "GetPasswordComplexityPolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1PasswordComplexityPolicy" - } - } - }, - "tags": [ - "ManagementService" - ] - }, - "delete": { - "operationId": "DeletePasswordComplexityPolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "post": { - "operationId": "CreatePasswordComplexityPolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1PasswordComplexityPolicy" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1PasswordComplexityPolicyCreate" - } - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "UpdatePasswordComplexityPolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1PasswordComplexityPolicy" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1PasswordComplexityPolicyUpdate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/policies/passwords/lockout": { - "get": { - "summary": "returns default if nothing other set on organisation", - "operationId": "GetPasswordLockoutPolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1PasswordLockoutPolicy" - } - } - }, - "tags": [ - "ManagementService" - ] - }, - "delete": { - "operationId": "DeletePasswordLockoutPolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "post": { - "operationId": "CreatePasswordLockoutPolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1PasswordLockoutPolicy" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1PasswordLockoutPolicyCreate" - } - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "UpdatePasswordLockoutPolicy", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1PasswordLockoutPolicy" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1PasswordLockoutPolicyUpdate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projectgrants/{project_grant_id}/users/grants/_search": { - "post": { - "summary": "search user grants based on a projectgrant\nThis request is required that the user authorizations of zitadel can be differentiated", - "operationId": "SearchProjectGrantUserGrants", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrantSearchResponse" - } - } - }, - "parameters": [ - { - "name": "project_grant_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantUserGrantSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projectgrants/{project_grant_id}/users/{user_id}/grants": { - "post": { - "summary": "create user grant based on a projectgrant\nThis request is required that the user authorizations of zitadel can be differentiated", - "operationId": "CreateProjectGrantUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrant" - } - } - }, - "parameters": [ - { - "name": "project_grant_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantUserGrantCreate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projectgrants/{project_grant_id}/users/{user_id}/grants/{id}": { - "get": { - "summary": "get user grant based on a projectgrant\nThis request is required that the user authorizations of zitadel can be differentiated", - "operationId": "ProjectGrantUserGrantByID", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrantView" - } - } - }, - "parameters": [ - { - "name": "project_grant_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "summary": "update user grant based on a projectgrant\nThis request is required that the user authorizations of zitadel can be differentiated", - "operationId": "UpdateProjectGrantUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrant" - } - } - }, - "parameters": [ - { - "name": "project_grant_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantUserGrantUpdate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projectgrants/{project_grant_id}/users/{user_id}/grants/{id}/_deactivate": { - "put": { - "summary": "deactivate user grant based on a projectgrant\nThis request is required that the user authorizations of zitadel can be differentiated", - "operationId": "DeactivateProjectGrantUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrant" - } - } - }, - "parameters": [ - { - "name": "project_grant_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantUserGrantID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projectgrants/{project_grant_id}/users/{user_id}/grants/{id}/_reactivate": { - "put": { - "summary": "reactivate user grant based on a projectgrant\nThis request is required that the user authorizations of zitadel can be differentiated", - "operationId": "ReactivateProjectGrantUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrant" - } - } - }, - "parameters": [ - { - "name": "project_grant_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantUserGrantID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects": { - "post": { - "operationId": "CreateProject", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Project" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectCreateRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/_search": { - "post": { - "operationId": "SearchProjects", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectSearchResponse" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/grants/members/roles": { - "get": { - "operationId": "GetProjectGrantMemberRoles", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectGrantMemberRoles" - } - } - }, - "tags": [ - "ManagementService" - ] - } - }, - "/projects/members/roles": { - "get": { - "operationId": "GetProjectMemberRoles", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectMemberRoles" - } - } - }, - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{id}": { - "get": { - "operationId": "ProjectByID", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectView" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "UpdateProject", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Project" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectUpdateRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{id}/_deactivate": { - "put": { - "operationId": "DeactivateProject", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Project" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{id}/_reactivate": { - "put": { - "operationId": "ReactivateProject", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Project" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{id}/applications/{sec_id}/changes": { - "get": { - "summary": "ApplicationChanges returns the event stream of the application object", - "operationId": "ApplicationChanges", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Changes" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "sec_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "limit", - "in": "query", - "required": false, - "type": "string", - "format": "uint64" - }, - { - "name": "sequence_offset", - "in": "query", - "required": false, - "type": "string", - "format": "uint64" - }, - { - "name": "asc", - "in": "query", - "required": false, - "type": "boolean", - "format": "boolean" - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{id}/changes": { - "get": { - "summary": "ProjectChanges returns the event stream of the project object", - "operationId": "ProjectChanges", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Changes" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "sec_id", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "limit", - "in": "query", - "required": false, - "type": "string", - "format": "uint64" - }, - { - "name": "sequence_offset", - "in": "query", - "required": false, - "type": "string", - "format": "uint64" - }, - { - "name": "asc", - "in": "query", - "required": false, - "type": "boolean", - "format": "boolean" - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{id}/members": { - "post": { - "operationId": "AddProjectMember", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectMember" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectMemberAdd" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{id}/members/{user_id}": { - "delete": { - "operationId": "RemoveProjectMember", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "ChangeProjectMember", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectMember" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectMemberChange" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{id}/roles": { - "post": { - "operationId": "AddProjectRole", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectRole" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectRoleAdd" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{id}/roles/_bulk": { - "post": { - "summary": "add a list of project roles in one request", - "operationId": "BulkAddProjectRole", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectRoleAddBulk" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{id}/roles/{key}": { - "delete": { - "summary": "RemoveProjectRole removes role from UserGrants, ProjectGrants and from Project", - "operationId": "RemoveProjectRole", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "key", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "ChangeProjectRole", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectRole" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "key", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectRoleChange" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/applications/_search": { - "post": { - "operationId": "SearchApplications", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ApplicationSearchResponse" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ApplicationSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/applications/{application_id}/oidcconfig": { - "put": { - "operationId": "UpdateApplicationOIDCConfig", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1OIDCConfig" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "application_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1OIDCConfigUpdate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/applications/{id}": { - "get": { - "operationId": "ApplicationByID", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ApplicationView" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "delete": { - "operationId": "RemoveApplication", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "UpdateApplication", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Application" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ApplicationUpdate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/applications/{id}/_deactivate": { - "put": { - "operationId": "DeactivateApplication", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Application" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ApplicationID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/applications/{id}/_reactivate": { - "put": { - "operationId": "ReactivateApplication", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Application" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ApplicationID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/applications/{id}/oidcconfig/_changeclientsecret": { - "put": { - "operationId": "RegenerateOIDCClientSecret", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ClientSecret" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ApplicationID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/grants": { - "post": { - "operationId": "CreateProjectGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectGrant" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantCreate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/grants/_search": { - "post": { - "operationId": "SearchProjectGrants", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectGrantSearchResponse" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/grants/{grant_id}/members": { - "post": { - "operationId": "AddProjectGrantMember", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectGrantMember" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "grant_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantMemberAdd" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/grants/{grant_id}/members/_search": { - "post": { - "operationId": "SearchProjectGrantMembers", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectGrantMemberSearchResponse" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "grant_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantMemberSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/grants/{grant_id}/members/{user_id}": { - "delete": { - "operationId": "RemoveProjectGrantMember", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "grant_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "ChangeProjectGrantMember", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectGrantMember" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "grant_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantMemberChange" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/grants/{id}": { - "get": { - "operationId": "ProjectGrantByID", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectGrantView" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "delete": { - "summary": "RemoveProjectGrant removes project grant and all user grants for this project grant", - "operationId": "RemoveProjectGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "UpdateProjectGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectGrant" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantUpdate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/grants/{id}/_deactivate": { - "put": { - "operationId": "DeactivateProjectGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectGrant" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/grants/{id}/_reactivate": { - "put": { - "operationId": "ReactivateProjectGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectGrant" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectGrantID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/members/_search": { - "post": { - "operationId": "SearchProjectMembers", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectMemberSearchResponse" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectMemberSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/oidcapplications": { - "post": { - "operationId": "CreateOIDCApplication", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Application" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1OIDCApplicationCreate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/roles/_search": { - "post": { - "operationId": "SearchProjectRoles", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ProjectRoleSearchResponse" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectRoleSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/users/grants/_search": { - "post": { - "summary": "search user grants based on a project\nThis request is required that the user authorizations of zitadel can be differentiated", - "operationId": "SearchProjectUserGrants", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrantSearchResponse" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectUserGrantSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/users/{user_id}/grants": { - "post": { - "summary": "create user grant based on a project\nThis request is required that the user authorizations of zitadel can be differentiated", - "operationId": "CreateProjectUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrant" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserGrantCreate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/users/{user_id}/grants/{id}": { - "get": { - "summary": "get user grant based on a project\nThis request is required that the user authorizations of zitadel can be differentiated", - "operationId": "ProjectUserGrantByID", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrantView" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "summary": "update user grant based on a project\nThis request is required that the user authorizations of zitadel can be differentiated", - "operationId": "UpdateProjectUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrant" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectUserGrantUpdate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/users/{user_id}/grants/{id}/_deactivate": { - "put": { - "summary": "deactivate user grant based on a project\nThis request is required that the user authorizations of zitadel can be differentiated", - "operationId": "DeactivateProjectUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrant" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectUserGrantID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/projects/{project_id}/users/{user_id}/grants/{id}/_reactivate": { - "put": { - "summary": "reactivate user grant based on a project\nThis request is required that the user authorizations of zitadel can be differentiated", - "operationId": "ReactivateProjectUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrant" - } - } - }, - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1ProjectUserGrantID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/ready": { - "get": { - "operationId": "Ready", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "tags": [ - "ManagementService" - ] - } - }, - "/usergrants/_bulk": { - "post": { - "summary": "add a list of user grants in one request", - "operationId": "BulkCreateUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserGrantCreateBulk" - } - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "summary": "update a list of user grants in one request", - "operationId": "BulkUpdateUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserGrantUpdateBulk" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users": { - "post": { - "operationId": "CreateUser", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1User" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1CreateUserRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/_isunique": { - "get": { - "operationId": "IsUserUnique", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UniqueUserResponse" - } - } - }, - "parameters": [ - { - "name": "user_name", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "email", - "in": "query", - "required": false, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/_search": { - "post": { - "summary": "Limit should always be set, there is a default limit set by the service", - "operationId": "SearchUsers", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserSearchResponse" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/grants/_search": { - "post": { - "operationId": "SearchUserGrants", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrantSearchResponse" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserGrantSearchRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}": { - "get": { - "operationId": "GetUserByID", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserView" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "delete": { - "operationId": "DeleteUser", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/_deactivate": { - "put": { - "operationId": "DeactivateUser", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1User" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/_lock": { - "put": { - "operationId": "LockUser", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1User" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/_reactivate": { - "put": { - "operationId": "ReactivateUser", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1User" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/_unlock": { - "put": { - "operationId": "UnlockUser", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1User" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/address": { - "get": { - "operationId": "GetUserAddress", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserAddressView" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "UpdateUserAddress", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserAddress" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UpdateUserAddressRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/changes": { - "get": { - "summary": "UserChanges returns the event stream of the user object", - "operationId": "UserChanges", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1Changes" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "sec_id", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "limit", - "in": "query", - "required": false, - "type": "string", - "format": "uint64" - }, - { - "name": "sequence_offset", - "in": "query", - "required": false, - "type": "string", - "format": "uint64" - }, - { - "name": "asc", - "in": "query", - "required": false, - "type": "boolean", - "format": "boolean" - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/email": { - "get": { - "operationId": "GetUserEmail", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserEmailView" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "ChangeUserEmail", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserEmail" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UpdateUserEmailRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/email/_resendverification": { - "post": { - "operationId": "ResendEmailVerificationMail", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/mfas": { - "get": { - "operationId": "GetUserMfas", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1MultiFactors" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/password/_initialize": { - "post": { - "summary": "A Manager is only allowed to set an initial password, on the next login the user has to change his password", - "operationId": "SetInitialPassword", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1PasswordRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/password/_sendsetnotification": { - "post": { - "summary": "Sends an Notification (Email/SMS) with a password reset Link", - "operationId": "SendSetPasswordNotification", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1SetPasswordNotificationRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/phone": { - "get": { - "operationId": "GetUserPhone", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserPhoneView" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "delete": { - "operationId": "RemoveUserPhone", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "ChangeUserPhone", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserPhone" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UpdateUserPhoneRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/phone/_resendverification": { - "post": { - "operationId": "ResendPhoneVerificationCode", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{id}/profile": { - "get": { - "operationId": "GetUserProfile", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserProfileView" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "UpdateUserProfile", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserProfile" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UpdateUserProfileRequest" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{user_id}/grants": { - "post": { - "operationId": "CreateUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrant" - } - } - }, - "parameters": [ - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserGrantCreate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{user_id}/grants/{id}": { - "get": { - "operationId": "UserGrantByID", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrantView" - } - } - }, - "parameters": [ - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "delete": { - "operationId": "RemoveUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "ManagementService" - ] - }, - "put": { - "operationId": "UpdateUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrant" - } - } - }, - "parameters": [ - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserGrantUpdate" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{user_id}/grants/{id}/_deactivate": { - "put": { - "operationId": "DeactivateUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrant" - } - } - }, - "parameters": [ - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserGrantID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/users/{user_id}/grants/{id}/_reactivate": { - "put": { - "operationId": "ReactivateUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1UserGrant" - } - } - }, - "parameters": [ - { - "name": "user_id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserGrantID" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/usersgrants/_bulk": { - "delete": { - "summary": "remove a list of user grants in one request", - "operationId": "BulkRemoveUserGrant", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "properties": {} - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1UserGrantRemoveBulk" - } - } - ], - "tags": [ - "ManagementService" - ] - } - }, - "/validate": { - "get": { - "operationId": "Validate", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/protobufStruct" - } - } - }, - "tags": [ - "ManagementService" - ] - } - } - }, - "definitions": { - "protobufListValue": { - "type": "object", - "properties": { - "values": { - "type": "array", - "items": { - "$ref": "#/definitions/protobufValue" - }, - "description": "Repeated field of dynamically typed values." - } - }, - "description": "`ListValue` is a wrapper around a repeated field of values.\n\nThe JSON representation for `ListValue` is JSON array." - }, - "protobufNullValue": { - "type": "string", - "enum": [ - "NULL_VALUE" - ], - "default": "NULL_VALUE", - "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." - }, - "protobufStruct": { - "type": "object", - "properties": { - "fields": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/protobufValue" - }, - "description": "Unordered map of dynamically typed values." - } - }, - "description": "`Struct` represents a structured data value, consisting of fields\nwhich map to dynamically typed values. In some languages, `Struct`\nmight be supported by a native representation. For example, in\nscripting languages like JS a struct is represented as an\nobject. The details of that representation are described together\nwith the proto support for the language.\n\nThe JSON representation for `Struct` is JSON object." - }, - "protobufValue": { - "type": "object", - "properties": { - "null_value": { - "$ref": "#/definitions/protobufNullValue", - "description": "Represents a null value." - }, - "number_value": { - "type": "number", - "format": "double", - "description": "Represents a double value." - }, - "string_value": { - "type": "string", - "description": "Represents a string value." - }, - "bool_value": { - "type": "boolean", - "format": "boolean", - "description": "Represents a boolean value." - }, - "struct_value": { - "$ref": "#/definitions/protobufStruct", - "description": "Represents a structured value." - }, - "list_value": { - "$ref": "#/definitions/protobufListValue", - "description": "Represents a repeated `Value`." - } - }, - "description": "`Value` represents a dynamically typed value which can be either\nnull, a number, a string, a boolean, a recursive struct value, or a\nlist of values. A producer of value is expected to set one of that\nvariants, absence of any variant indicates an error.\n\nThe JSON representation for `Value` is JSON value." - }, - "v1AddOrgDomainRequest": { - "type": "object", - "properties": { - "domain": { - "type": "string" - } - } - }, - "v1AddOrgMemberRequest": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1AppState": { - "type": "string", - "enum": [ - "APPSTATE_UNSPECIFIED", - "APPSTATE_ACTIVE", - "APPSTATE_INACTIVE" - ], - "default": "APPSTATE_UNSPECIFIED" - }, - "v1Application": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/v1AppState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "name": { - "type": "string" - }, - "oidc_config": { - "$ref": "#/definitions/v1OIDCConfig" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1ApplicationID": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "project_id": { - "type": "string" - } - } - }, - "v1ApplicationSearchKey": { - "type": "string", - "enum": [ - "APPLICATIONSERACHKEY_UNSPECIFIED", - "APPLICATIONSEARCHKEY_APP_NAME" - ], - "default": "APPLICATIONSERACHKEY_UNSPECIFIED" - }, - "v1ApplicationSearchQuery": { - "type": "object", - "properties": { - "key": { - "$ref": "#/definitions/v1ApplicationSearchKey" - }, - "method": { - "$ref": "#/definitions/v1SearchMethod" - }, - "value": { - "type": "string" - } - } - }, - "v1ApplicationSearchRequest": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ApplicationSearchQuery" - } - } - } - }, - "v1ApplicationSearchResponse": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "total_result": { - "type": "string", - "format": "uint64" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ApplicationView" - } - } - } - }, - "v1ApplicationUpdate": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "v1ApplicationView": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/v1AppState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "name": { - "type": "string" - }, - "oidc_config": { - "$ref": "#/definitions/v1OIDCConfig" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1Change": { - "type": "object", - "properties": { - "change_date": { - "type": "string", - "format": "date-time" - }, - "event_type": { - "$ref": "#/definitions/v1LocalizedMessage" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "editor_id": { - "type": "string" - }, - "editor": { - "type": "string" - }, - "data": { - "$ref": "#/definitions/protobufStruct" - } - } - }, - "v1ChangeOrgMemberRequest": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1Changes": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/v1Change" - } - }, - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - } - } - }, - "v1ClientSecret": { - "type": "object", - "properties": { - "client_secret": { - "type": "string" - } - } - }, - "v1CreateUserRequest": { - "type": "object", - "properties": { - "user_name": { - "type": "string" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - }, - "nick_name": { - "type": "string" - }, - "preferred_language": { - "type": "string" - }, - "gender": { - "$ref": "#/definitions/v1Gender" - }, - "email": { - "type": "string" - }, - "is_email_verified": { - "type": "boolean", - "format": "boolean" - }, - "phone": { - "type": "string" - }, - "is_phone_verified": { - "type": "boolean", - "format": "boolean" - }, - "country": { - "type": "string" - }, - "locality": { - "type": "string" - }, - "postal_code": { - "type": "string" - }, - "region": { - "type": "string" - }, - "street_address": { - "type": "string" - }, - "password": { - "type": "string" - } - } - }, - "v1Gender": { - "type": "string", - "enum": [ - "GENDER_UNSPECIFIED", - "GENDER_FEMALE", - "GENDER_MALE", - "GENDER_DIVERSE" - ], - "default": "GENDER_UNSPECIFIED" - }, - "v1GrantedProjectSearchRequest": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ProjectSearchQuery" - } - } - } - }, - "v1Iam": { - "type": "object", - "properties": { - "global_org_id": { - "type": "string" - }, - "iam_project_id": { - "type": "string" - }, - "set_up_done": { - "type": "boolean", - "format": "boolean" - }, - "set_up_started": { - "type": "boolean", - "format": "boolean" - } - } - }, - "v1LocalizedMessage": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "localized_message": { - "type": "string" - } - } - }, - "v1MFAState": { - "type": "string", - "enum": [ - "MFASTATE_UNSPECIFIED", - "MFASTATE_NOT_READY", - "MFASTATE_READY", - "MFASTATE_REMOVED" - ], - "default": "MFASTATE_UNSPECIFIED" - }, - "v1MfaType": { - "type": "string", - "enum": [ - "MFATYPE_UNSPECIFIED", - "MFATYPE_SMS", - "MFATYPE_OTP" - ], - "default": "MFATYPE_UNSPECIFIED" - }, - "v1MultiFactor": { - "type": "object", - "properties": { - "type": { - "$ref": "#/definitions/v1MfaType" - }, - "state": { - "$ref": "#/definitions/v1MFAState" - } - } - }, - "v1MultiFactors": { - "type": "object", - "properties": { - "mfas": { - "type": "array", - "items": { - "$ref": "#/definitions/v1MultiFactor" - } - } - } - }, - "v1NotificationType": { - "type": "string", - "enum": [ - "NOTIFICATIONTYPE_EMAIL", - "NOTIFICATIONTYPE_SMS" - ], - "default": "NOTIFICATIONTYPE_EMAIL" - }, - "v1OIDCApplicationCreate": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "redirect_uris": { - "type": "array", - "items": { - "type": "string" - } - }, - "response_types": { - "type": "array", - "items": { - "$ref": "#/definitions/v1OIDCResponseType" - } - }, - "grant_types": { - "type": "array", - "items": { - "$ref": "#/definitions/v1OIDCGrantType" - } - }, - "application_type": { - "$ref": "#/definitions/v1OIDCApplicationType" - }, - "auth_method_type": { - "$ref": "#/definitions/v1OIDCAuthMethodType" - }, - "post_logout_redirect_uris": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1OIDCApplicationType": { - "type": "string", - "enum": [ - "OIDCAPPLICATIONTYPE_WEB", - "OIDCAPPLICATIONTYPE_USER_AGENT", - "OIDCAPPLICATIONTYPE_NATIVE" - ], - "default": "OIDCAPPLICATIONTYPE_WEB" - }, - "v1OIDCAuthMethodType": { - "type": "string", - "enum": [ - "OIDCAUTHMETHODTYPE_BASIC", - "OIDCAUTHMETHODTYPE_POST", - "OIDCAUTHMETHODTYPE_NONE" - ], - "default": "OIDCAUTHMETHODTYPE_BASIC" - }, - "v1OIDCConfig": { - "type": "object", - "properties": { - "redirect_uris": { - "type": "array", - "items": { - "type": "string" - } - }, - "response_types": { - "type": "array", - "items": { - "$ref": "#/definitions/v1OIDCResponseType" - } - }, - "grant_types": { - "type": "array", - "items": { - "$ref": "#/definitions/v1OIDCGrantType" - } - }, - "application_type": { - "$ref": "#/definitions/v1OIDCApplicationType" - }, - "client_id": { - "type": "string" - }, - "client_secret": { - "type": "string" - }, - "auth_method_type": { - "$ref": "#/definitions/v1OIDCAuthMethodType" - }, - "post_logout_redirect_uris": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1OIDCConfigUpdate": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "application_id": { - "type": "string" - }, - "redirect_uris": { - "type": "array", - "items": { - "type": "string" - } - }, - "response_types": { - "type": "array", - "items": { - "$ref": "#/definitions/v1OIDCResponseType" - } - }, - "grant_types": { - "type": "array", - "items": { - "$ref": "#/definitions/v1OIDCGrantType" - } - }, - "application_type": { - "$ref": "#/definitions/v1OIDCApplicationType" - }, - "auth_method_type": { - "$ref": "#/definitions/v1OIDCAuthMethodType" - }, - "post_logout_redirect_uris": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1OIDCGrantType": { - "type": "string", - "enum": [ - "OIDCGRANTTYPE_AUTHORIZATION_CODE", - "OIDCGRANTTYPE_IMPLICIT", - "OIDCGRANTTYPE_REFRESH_TOKEN" - ], - "default": "OIDCGRANTTYPE_AUTHORIZATION_CODE" - }, - "v1OIDCResponseType": { - "type": "string", - "enum": [ - "OIDCRESPONSETYPE_CODE", - "OIDCRESPONSETYPE_ID_TOKEN", - "OIDCRESPONSETYPE_TOKEN" - ], - "default": "OIDCRESPONSETYPE_CODE" - }, - "v1Org": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/v1OrgState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "name": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1OrgDomain": { - "type": "object", - "properties": { - "org_id": { - "type": "string" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "domain": { - "type": "string" - }, - "verified": { - "type": "boolean", - "format": "boolean" - }, - "primary": { - "type": "boolean", - "format": "boolean" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1OrgDomainSearchKey": { - "type": "string", - "enum": [ - "ORGDOMAINSEARCHKEY_UNSPECIFIED", - "ORGDOMAINSEARCHKEY_DOMAIN" - ], - "default": "ORGDOMAINSEARCHKEY_UNSPECIFIED" - }, - "v1OrgDomainSearchQuery": { - "type": "object", - "properties": { - "key": { - "$ref": "#/definitions/v1OrgDomainSearchKey" - }, - "method": { - "$ref": "#/definitions/v1SearchMethod" - }, - "value": { - "type": "string" - } - } - }, - "v1OrgDomainSearchRequest": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1OrgDomainSearchQuery" - } - } - } - }, - "v1OrgDomainSearchResponse": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "total_result": { - "type": "string", - "format": "uint64" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/v1OrgDomainView" - } - } - } - }, - "v1OrgDomainView": { - "type": "object", - "properties": { - "org_id": { - "type": "string" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "domain": { - "type": "string" - }, - "verified": { - "type": "boolean", - "format": "boolean" - }, - "primary": { - "type": "boolean", - "format": "boolean" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1OrgIamPolicy": { - "type": "object", - "properties": { - "org_id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "user_login_must_be_domain": { - "type": "boolean", - "format": "boolean" - }, - "default": { - "type": "boolean", - "format": "boolean" - } - } - }, - "v1OrgMember": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1OrgMemberRoles": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1OrgMemberSearchKey": { - "type": "string", - "enum": [ - "ORGMEMBERSEARCHKEY_UNSPECIFIED", - "ORGMEMBERSEARCHKEY_FIRST_NAME", - "ORGMEMBERSEARCHKEY_LAST_NAME", - "ORGMEMBERSEARCHKEY_EMAIL", - "ORGMEMBERSEARCHKEY_USER_ID" - ], - "default": "ORGMEMBERSEARCHKEY_UNSPECIFIED" - }, - "v1OrgMemberSearchQuery": { - "type": "object", - "properties": { - "key": { - "$ref": "#/definitions/v1OrgMemberSearchKey" - }, - "method": { - "$ref": "#/definitions/v1SearchMethod" - }, - "value": { - "type": "string" - } - } - }, - "v1OrgMemberSearchRequest": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1OrgMemberSearchQuery" - } - } - } - }, - "v1OrgMemberSearchResponse": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "total_result": { - "type": "string", - "format": "uint64" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/v1OrgMemberView" - } - } - } - }, - "v1OrgMemberView": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "user_name": { - "type": "string" - }, - "email": { - "type": "string" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - } - } - }, - "v1OrgState": { - "type": "string", - "enum": [ - "ORGSTATE_UNSPECIFIED", - "ORGSTATE_ACTIVE", - "ORGSTATE_INACTIVE" - ], - "default": "ORGSTATE_UNSPECIFIED" - }, - "v1OrgView": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/v1OrgState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "name": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1PasswordAgePolicy": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/v1PolicyState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "max_age_days": { - "type": "string", - "format": "uint64" - }, - "expire_warn_days": { - "type": "string", - "format": "uint64" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "is_default": { - "type": "boolean", - "format": "boolean" - } - } - }, - "v1PasswordAgePolicyCreate": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "max_age_days": { - "type": "string", - "format": "uint64" - }, - "expire_warn_days": { - "type": "string", - "format": "uint64" - } - } - }, - "v1PasswordAgePolicyUpdate": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "max_age_days": { - "type": "string", - "format": "uint64" - }, - "expire_warn_days": { - "type": "string", - "format": "uint64" - } - } - }, - "v1PasswordComplexityPolicy": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/v1PolicyState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "min_length": { - "type": "string", - "format": "uint64" - }, - "has_lowercase": { - "type": "boolean", - "format": "boolean" - }, - "has_uppercase": { - "type": "boolean", - "format": "boolean" - }, - "has_number": { - "type": "boolean", - "format": "boolean" - }, - "has_symbol": { - "type": "boolean", - "format": "boolean" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "is_default": { - "type": "boolean", - "format": "boolean" - } - } - }, - "v1PasswordComplexityPolicyCreate": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "min_length": { - "type": "string", - "format": "uint64" - }, - "has_lowercase": { - "type": "boolean", - "format": "boolean" - }, - "has_uppercase": { - "type": "boolean", - "format": "boolean" - }, - "has_number": { - "type": "boolean", - "format": "boolean" - }, - "has_symbol": { - "type": "boolean", - "format": "boolean" - } - } - }, - "v1PasswordComplexityPolicyUpdate": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "min_length": { - "type": "string", - "format": "uint64" - }, - "has_lowercase": { - "type": "boolean", - "format": "boolean" - }, - "has_uppercase": { - "type": "boolean", - "format": "boolean" - }, - "has_number": { - "type": "boolean", - "format": "boolean" - }, - "has_symbol": { - "type": "boolean", - "format": "boolean" - } - } - }, - "v1PasswordLockoutPolicy": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/v1PolicyState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "max_attempts": { - "type": "string", - "format": "uint64" - }, - "show_lock_out_failures": { - "type": "boolean", - "format": "boolean" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "is_default": { - "type": "boolean", - "format": "boolean" - } - } - }, - "v1PasswordLockoutPolicyCreate": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "max_attempts": { - "type": "string", - "format": "uint64" - }, - "show_lock_out_failures": { - "type": "boolean", - "format": "boolean" - } - } - }, - "v1PasswordLockoutPolicyUpdate": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "max_attempts": { - "type": "string", - "format": "uint64" - }, - "show_lock_out_failures": { - "type": "boolean", - "format": "boolean" - } - } - }, - "v1PasswordRequest": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "password": { - "type": "string" - } - } - }, - "v1PolicyState": { - "type": "string", - "enum": [ - "POLICYSTATE_UNSPECIFIED", - "POLICYSTATE_ACTIVE", - "POLICYSTATE_INACTIVE", - "POLICYSTATE_DELETED" - ], - "default": "POLICYSTATE_UNSPECIFIED" - }, - "v1Project": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/v1ProjectState" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1ProjectCreateRequest": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - } - }, - "v1ProjectGrant": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "project_id": { - "type": "string" - }, - "granted_org_id": { - "type": "string" - }, - "role_keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "state": { - "$ref": "#/definitions/v1ProjectGrantState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1ProjectGrantCreate": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "granted_org_id": { - "type": "string" - }, - "role_keys": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1ProjectGrantID": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "id": { - "type": "string" - } - } - }, - "v1ProjectGrantMember": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1ProjectGrantMemberAdd": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "grant_id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1ProjectGrantMemberChange": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "grant_id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1ProjectGrantMemberRoles": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1ProjectGrantMemberSearchKey": { - "type": "string", - "enum": [ - "PROJECTGRANTMEMBERSEARCHKEY_UNSPECIFIED", - "PROJECTGRANTMEMBERSEARCHKEY_FIRST_NAME", - "PROJECTGRANTMEMBERSEARCHKEY_LAST_NAME", - "PROJECTGRANTMEMBERSEARCHKEY_EMAIL", - "PROJECTGRANTMEMBERSEARCHKEY_USER_ID", - "PROJECTGRANTMEMBERSEARCHKEY_USER_NAME" - ], - "default": "PROJECTGRANTMEMBERSEARCHKEY_UNSPECIFIED" - }, - "v1ProjectGrantMemberSearchQuery": { - "type": "object", - "properties": { - "key": { - "$ref": "#/definitions/v1ProjectGrantMemberSearchKey" - }, - "method": { - "$ref": "#/definitions/v1SearchMethod" - }, - "value": { - "type": "string" - } - } - }, - "v1ProjectGrantMemberSearchRequest": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "grant_id": { - "type": "string" - }, - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ProjectGrantMemberSearchQuery" - } - } - } - }, - "v1ProjectGrantMemberSearchResponse": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "total_result": { - "type": "string", - "format": "uint64" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ProjectGrantMemberView" - } - } - } - }, - "v1ProjectGrantMemberView": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "user_name": { - "type": "string" - }, - "email": { - "type": "string" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1ProjectGrantSearchKey": { - "type": "string", - "enum": [ - "PROJECTGRANTSEARCHKEY_UNSPECIFIED", - "PROJECTGRANTSEARCHKEY_PROJECT_NAME", - "PROJECTGRANTSEARCHKEY_ROLE_KEY" - ], - "default": "PROJECTGRANTSEARCHKEY_UNSPECIFIED" - }, - "v1ProjectGrantSearchQuery": { - "type": "object", - "properties": { - "key": { - "$ref": "#/definitions/v1ProjectGrantSearchKey" - }, - "method": { - "$ref": "#/definitions/v1SearchMethod" - }, - "value": { - "type": "string" - } - } - }, - "v1ProjectGrantSearchRequest": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ProjectGrantSearchQuery" - } - } - } - }, - "v1ProjectGrantSearchResponse": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "total_result": { - "type": "string", - "format": "uint64" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ProjectGrantView" - } - } - } - }, - "v1ProjectGrantState": { - "type": "string", - "enum": [ - "PROJECTGRANTSTATE_UNSPECIFIED", - "PROJECTGRANTSTATE_ACTIVE", - "PROJECTGRANTSTATE_INACTIVE" - ], - "default": "PROJECTGRANTSTATE_UNSPECIFIED" - }, - "v1ProjectGrantUpdate": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "role_keys": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1ProjectGrantUserGrantCreate": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "project_grant_id": { - "type": "string" - }, - "project_id": { - "type": "string" - }, - "role_keys": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1ProjectGrantUserGrantID": { - "type": "object", - "properties": { - "project_grant_id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "id": { - "type": "string" - } - } - }, - "v1ProjectGrantUserGrantSearchRequest": { - "type": "object", - "properties": { - "project_grant_id": { - "type": "string" - }, - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1UserGrantSearchQuery" - } - } - } - }, - "v1ProjectGrantUserGrantUpdate": { - "type": "object", - "properties": { - "project_grant_id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "role_keys": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1ProjectGrantView": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "project_id": { - "type": "string" - }, - "granted_org_id": { - "type": "string" - }, - "granted_org_name": { - "type": "string" - }, - "role_keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "state": { - "$ref": "#/definitions/v1ProjectGrantState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "project_name": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "resource_owner": { - "type": "string" - }, - "resource_owner_name": { - "type": "string" - } - } - }, - "v1ProjectID": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - } - }, - "v1ProjectMember": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1ProjectMemberAdd": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1ProjectMemberChange": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1ProjectMemberRoles": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1ProjectMemberSearchKey": { - "type": "string", - "enum": [ - "PROJECTMEMBERSEARCHKEY_UNSPECIFIED", - "PROJECTMEMBERSEARCHKEY_FIRST_NAME", - "PROJECTMEMBERSEARCHKEY_LAST_NAME", - "PROJECTMEMBERSEARCHKEY_EMAIL", - "PROJECTMEMBERSEARCHKEY_USER_ID", - "PROJECTMEMBERSEARCHKEY_USER_NAME" - ], - "default": "PROJECTMEMBERSEARCHKEY_UNSPECIFIED" - }, - "v1ProjectMemberSearchQuery": { - "type": "object", - "properties": { - "key": { - "$ref": "#/definitions/v1ProjectMemberSearchKey" - }, - "method": { - "$ref": "#/definitions/v1SearchMethod" - }, - "value": { - "type": "string" - } - } - }, - "v1ProjectMemberSearchRequest": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ProjectMemberSearchQuery" - } - } - } - }, - "v1ProjectMemberSearchResponse": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "total_result": { - "type": "string", - "format": "uint64" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ProjectMemberView" - } - } - } - }, - "v1ProjectMemberView": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "user_name": { - "type": "string" - }, - "email": { - "type": "string" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1ProjectRole": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "key": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "group": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1ProjectRoleAdd": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "key": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "group": { - "type": "string" - } - } - }, - "v1ProjectRoleAddBulk": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "project_roles": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ProjectRoleAdd" - } - } - } - }, - "v1ProjectRoleChange": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "key": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "group": { - "type": "string" - } - } - }, - "v1ProjectRoleSearchKey": { - "type": "string", - "enum": [ - "PROJECTROLESEARCHKEY_UNSPECIFIED", - "PROJECTROLESEARCHKEY_KEY", - "PROJECTROLESEARCHKEY_DISPLAY_NAME" - ], - "default": "PROJECTROLESEARCHKEY_UNSPECIFIED" - }, - "v1ProjectRoleSearchQuery": { - "type": "object", - "properties": { - "key": { - "$ref": "#/definitions/v1ProjectRoleSearchKey" - }, - "method": { - "$ref": "#/definitions/v1SearchMethod" - }, - "value": { - "type": "string" - } - } - }, - "v1ProjectRoleSearchRequest": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ProjectRoleSearchQuery" - } - } - } - }, - "v1ProjectRoleSearchResponse": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "total_result": { - "type": "string", - "format": "uint64" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ProjectRoleView" - } - } - } - }, - "v1ProjectRoleView": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "key": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "group": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1ProjectSearchKey": { - "type": "string", - "enum": [ - "PROJECTSEARCHKEY_UNSPECIFIED", - "PROJECTSEARCHKEY_PROJECT_NAME" - ], - "default": "PROJECTSEARCHKEY_UNSPECIFIED" - }, - "v1ProjectSearchQuery": { - "type": "object", - "properties": { - "key": { - "$ref": "#/definitions/v1ProjectSearchKey" - }, - "method": { - "$ref": "#/definitions/v1SearchMethod" - }, - "value": { - "type": "string" - } - } - }, - "v1ProjectSearchRequest": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ProjectSearchQuery" - } - } - } - }, - "v1ProjectSearchResponse": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "total_result": { - "type": "string", - "format": "uint64" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ProjectView" - } - } - } - }, - "v1ProjectState": { - "type": "string", - "enum": [ - "PROJECTSTATE_UNSPECIFIED", - "PROJECTSTATE_ACTIVE", - "PROJECTSTATE_INACTIVE" - ], - "default": "PROJECTSTATE_UNSPECIFIED" - }, - "v1ProjectUpdateRequest": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "v1ProjectUserGrantID": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "id": { - "type": "string" - } - } - }, - "v1ProjectUserGrantSearchRequest": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1UserGrantSearchQuery" - } - } - } - }, - "v1ProjectUserGrantUpdate": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "role_keys": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1ProjectView": { - "type": "object", - "properties": { - "project_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/v1ProjectState" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "resource_owner": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1SearchMethod": { - "type": "string", - "enum": [ - "SEARCHMETHOD_EQUALS", - "SEARCHMETHOD_STARTS_WITH", - "SEARCHMETHOD_CONTAINS", - "SEARCHMETHOD_EQUALS_IGNORE_CASE", - "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE", - "SEARCHMETHOD_CONTAINS_IGNORE_CASE", - "SEARCHMETHOD_NOT_EQUALS", - "SEARCHMETHOD_GREATER_THAN", - "SEARCHMETHOD_LESS_THAN", - "SEARCHMETHOD_IS_ONE_OF", - "SEARCHMETHOD_LIST_CONTAINS" - ], - "default": "SEARCHMETHOD_EQUALS" - }, - "v1SetPasswordNotificationRequest": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/v1NotificationType" - } - } - }, - "v1UniqueUserResponse": { - "type": "object", - "properties": { - "is_unique": { - "type": "boolean", - "format": "boolean" - } - } - }, - "v1UpdateUserAddressRequest": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "country": { - "type": "string" - }, - "locality": { - "type": "string" - }, - "postal_code": { - "type": "string" - }, - "region": { - "type": "string" - }, - "street_address": { - "type": "string" - } - } - }, - "v1UpdateUserEmailRequest": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "email": { - "type": "string" - }, - "is_email_verified": { - "type": "boolean", - "format": "boolean" - } - } - }, - "v1UpdateUserPhoneRequest": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "is_phone_verified": { - "type": "boolean", - "format": "boolean" - } - } - }, - "v1UpdateUserProfileRequest": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - }, - "nick_name": { - "type": "string" - }, - "preferred_language": { - "type": "string" - }, - "gender": { - "$ref": "#/definitions/v1Gender" - } - } - }, - "v1User": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/v1UserState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "user_name": { - "type": "string" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "nick_name": { - "type": "string" - }, - "preferred_language": { - "type": "string" - }, - "gender": { - "$ref": "#/definitions/v1Gender" - }, - "email": { - "type": "string" - }, - "is_email_verified": { - "type": "boolean", - "format": "boolean" - }, - "phone": { - "type": "string" - }, - "is_phone_verified": { - "type": "boolean", - "format": "boolean" - }, - "country": { - "type": "string" - }, - "locality": { - "type": "string" - }, - "postal_code": { - "type": "string" - }, - "region": { - "type": "string" - }, - "street_address": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1UserAddress": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "country": { - "type": "string" - }, - "locality": { - "type": "string" - }, - "postal_code": { - "type": "string" - }, - "region": { - "type": "string" - }, - "street_address": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - } - } - }, - "v1UserAddressView": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "country": { - "type": "string" - }, - "locality": { - "type": "string" - }, - "postal_code": { - "type": "string" - }, - "region": { - "type": "string" - }, - "street_address": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - } - } - }, - "v1UserEmail": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "email": { - "type": "string" - }, - "is_email_verified": { - "type": "boolean", - "format": "boolean" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - } - } - }, - "v1UserEmailView": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "email": { - "type": "string" - }, - "is_email_verified": { - "type": "boolean", - "format": "boolean" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - } - } - }, - "v1UserGrant": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "org_id": { - "type": "string" - }, - "project_id": { - "type": "string" - }, - "role_keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "state": { - "$ref": "#/definitions/v1UserGrantState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "sequence": { - "type": "string", - "format": "uint64" - } - } - }, - "v1UserGrantCreate": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "project_id": { - "type": "string" - }, - "role_keys": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1UserGrantCreateBulk": { - "type": "object", - "properties": { - "user_grants": { - "type": "array", - "items": { - "$ref": "#/definitions/v1UserGrantCreate" - } - } - } - }, - "v1UserGrantID": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "id": { - "type": "string" - } - } - }, - "v1UserGrantRemoveBulk": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1UserGrantSearchKey": { - "type": "string", - "enum": [ - "USERGRANTSEARCHKEY_UNSPECIFIED", - "USERGRANTSEARCHKEY_PROJECT_ID", - "USERGRANTSEARCHKEY_USER_ID", - "USERGRANTSEARCHKEY_ORG_ID", - "USERGRANTSEARCHKEY_ROLE_KEY" - ], - "default": "USERGRANTSEARCHKEY_UNSPECIFIED" - }, - "v1UserGrantSearchQuery": { - "type": "object", - "properties": { - "key": { - "$ref": "#/definitions/v1UserGrantSearchKey" - }, - "method": { - "$ref": "#/definitions/v1SearchMethod" - }, - "value": { - "type": "string" - } - } - }, - "v1UserGrantSearchRequest": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1UserGrantSearchQuery" - } - } - } - }, - "v1UserGrantSearchResponse": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "total_result": { - "type": "string", - "format": "uint64" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/v1UserGrantView" - } - } - } - }, - "v1UserGrantState": { - "type": "string", - "enum": [ - "USERGRANTSTATE_UNSPECIFIED", - "USERGRANTSTATE_ACTIVE", - "USERGRANTSTATE_INACTIVE" - ], - "default": "USERGRANTSTATE_UNSPECIFIED" - }, - "v1UserGrantUpdate": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "role_keys": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "v1UserGrantUpdateBulk": { - "type": "object", - "properties": { - "user_grants": { - "type": "array", - "items": { - "$ref": "#/definitions/v1UserGrantUpdate" - } - } - } - }, - "v1UserGrantView": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "org_id": { - "type": "string" - }, - "project_id": { - "type": "string" - }, - "role_keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "state": { - "$ref": "#/definitions/v1UserGrantState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "user_name": { - "type": "string" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - }, - "email": { - "type": "string" - }, - "org_name": { - "type": "string" - }, - "org_domain": { - "type": "string" - }, - "project_name": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "resource_owner": { - "type": "string" - }, - "display_name": { - "type": "string" - } - } - }, - "v1UserID": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - } - }, - "v1UserPhone": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "is_phone_verified": { - "type": "boolean", - "format": "boolean" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - } - } - }, - "v1UserPhoneView": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "is_phone_verified": { - "type": "boolean", - "format": "boolean" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - } - } - }, - "v1UserProfile": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - }, - "nick_name": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "preferred_language": { - "type": "string" - }, - "gender": { - "$ref": "#/definitions/v1Gender" - }, - "user_name": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - } - } - }, - "v1UserProfileView": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - }, - "nick_name": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "preferred_language": { - "type": "string" - }, - "gender": { - "$ref": "#/definitions/v1Gender" - }, - "user_name": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "login_names": { - "type": "array", - "items": { - "type": "string" - } - }, - "preferred_login_name": { - "type": "string" - } - } - }, - "v1UserSearchKey": { - "type": "string", - "enum": [ - "USERSEARCHKEY_UNSPECIFIED", - "USERSEARCHKEY_USER_NAME", - "USERSEARCHKEY_FIRST_NAME", - "USERSEARCHKEY_LAST_NAME", - "USERSEARCHKEY_NICK_NAME", - "USERSEARCHKEY_DISPLAY_NAME", - "USERSEARCHKEY_EMAIL", - "USERSEARCHKEY_STATE" - ], - "default": "USERSEARCHKEY_UNSPECIFIED" - }, - "v1UserSearchQuery": { - "type": "object", - "properties": { - "key": { - "$ref": "#/definitions/v1UserSearchKey" - }, - "method": { - "$ref": "#/definitions/v1SearchMethod" - }, - "value": { - "type": "string" - } - } - }, - "v1UserSearchRequest": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "sorting_column": { - "$ref": "#/definitions/v1UserSearchKey" - }, - "asc": { - "type": "boolean", - "format": "boolean" - }, - "queries": { - "type": "array", - "items": { - "$ref": "#/definitions/v1UserSearchQuery" - } - } - } - }, - "v1UserSearchResponse": { - "type": "object", - "properties": { - "offset": { - "type": "string", - "format": "uint64" - }, - "limit": { - "type": "string", - "format": "uint64" - }, - "total_result": { - "type": "string", - "format": "uint64" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/v1UserView" - } - } - } - }, - "v1UserState": { - "type": "string", - "enum": [ - "USERSTATE_UNSPECIFIED", - "USERSTATE_ACTIVE", - "USERSTATE_INACTIVE", - "USERSTATE_DELETED", - "USERSTATE_LOCKED", - "USERSTATE_SUSPEND", - "USERSTATE_INITIAL" - ], - "default": "USERSTATE_UNSPECIFIED" - }, - "v1UserView": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "state": { - "$ref": "#/definitions/v1UserState" - }, - "creation_date": { - "type": "string", - "format": "date-time" - }, - "change_date": { - "type": "string", - "format": "date-time" - }, - "last_login": { - "type": "string", - "format": "date-time" - }, - "password_changed": { - "type": "string", - "format": "date-time" - }, - "user_name": { - "type": "string" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - }, - "display_name": { - "type": "string" - }, - "nick_name": { - "type": "string" - }, - "preferred_language": { - "type": "string" - }, - "gender": { - "$ref": "#/definitions/v1Gender" - }, - "email": { - "type": "string" - }, - "is_email_verified": { - "type": "boolean", - "format": "boolean" - }, - "phone": { - "type": "string" - }, - "is_phone_verified": { - "type": "boolean", - "format": "boolean" - }, - "country": { - "type": "string" - }, - "locality": { - "type": "string" - }, - "postal_code": { - "type": "string" - }, - "region": { - "type": "string" - }, - "street_address": { - "type": "string" - }, - "sequence": { - "type": "string", - "format": "uint64" - }, - "resource_owner": { - "type": "string" - }, - "login_names": { - "type": "array", - "items": { - "type": "string" - } - }, - "preferred_login_name": { - "type": "string" - } - } - } - } -}