From 3cb272e76ec8c2f160d790ad36257131dbf12af8 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 19 Aug 2020 09:53:03 +0200 Subject: [PATCH] Switch to uuids and simplify names - bundles, settings and values now have uuids as identifier - removed unnecessary name parts (SettingsBundle -> Bundle, SettingsValue -> Value, ...) --- go.mod | 14 +- go.sum | 164 +-- pkg/proto/v0/settings.pb.go | 2113 ++++++++++++++++------------ pkg/proto/v0/settings.pb.micro.go | 151 +- pkg/proto/v0/settings.pb.web.go | 685 +++++---- pkg/proto/v0/settings.proto | 266 ++-- pkg/proto/v0/settings.swagger.json | 407 ++++-- pkg/server/grpc/server.go | 2 +- pkg/server/http/server.go | 2 +- pkg/service/v0/service.go | 161 ++- pkg/service/v0/validator.go | 132 +- pkg/settings/settings.go | 14 +- pkg/store/filesystem/bundles.go | 101 +- pkg/store/filesystem/paths.go | 45 +- pkg/store/filesystem/store.go | 10 +- pkg/store/filesystem/values.go | 163 +-- ui/client/settings/index.js | 142 +- 17 files changed, 2631 insertions(+), 1941 deletions(-) diff --git a/go.mod b/go.mod index cb0fdd09c3..9279a43341 100644 --- a/go.mod +++ b/go.mod @@ -8,42 +8,32 @@ require ( contrib.go.opencensus.io/exporter/zipkin v0.1.1 github.com/Masterminds/sprig/v3 v3.1.0 // indirect github.com/UnnoTed/fileb0x v1.1.4 - github.com/cespare/reflex v0.2.0 // indirect github.com/go-chi/chi v4.1.2+incompatible github.com/go-chi/render v1.0.1 github.com/go-ozzo/ozzo-validation/v4 v4.2.1 - github.com/go-playground/universal-translator v0.17.0 // indirect + github.com/gofrs/uuid v3.3.0+incompatible github.com/golang/protobuf v1.4.2 - github.com/gomodule/redigo v2.0.0+incompatible // indirect github.com/grpc-ecosystem/grpc-gateway v1.14.4 github.com/huandu/xstrings v1.3.2 // indirect github.com/imdario/mergo v0.3.11 // indirect - github.com/mholt/certmagic v0.9.3 // indirect github.com/micro/cli/v2 v2.1.2 - github.com/micro/go-micro v1.18.0 // indirect github.com/micro/go-micro/v2 v2.9.1 github.com/mitchellh/gox v1.0.1 github.com/mitchellh/reflectwalk v1.0.1 // indirect - github.com/ogier/pflag v0.0.1 // indirect github.com/oklog/run v1.0.0 github.com/openzipkin/zipkin-go v0.2.2 github.com/owncloud/ocis-pkg/v2 v2.2.2-0.20200812103920-db41b5a3d14d github.com/restic/calens v0.2.0 github.com/spf13/viper v1.6.3 github.com/stretchr/testify v1.6.1 - github.com/zenazn/goji v0.9.0 // indirect go.opencensus.io v0.22.4 golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de // indirect golang.org/x/lint v0.0.0-20200302205851-738671d3881b golang.org/x/net v0.0.0-20200625001655-4c5254603344 - golang.org/x/tools v0.0.0-20200811215021-48a8ffc5b207 + golang.org/x/tools v0.0.0-20200811215021-48a8ffc5b207 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/genproto v0.0.0-20200420144010-e5e8543f8aeb - google.golang.org/grpc v1.31.0 google.golang.org/protobuf v1.23.0 - gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect - gopkg.in/go-playground/validator.v9 v9.31.0 // indirect - gopkg.in/ldap.v2 v2.5.1 // indirect ) replace google.golang.org/grpc => google.golang.org/grpc v1.26.0 diff --git a/go.sum b/go.sum index 3d8abf39ff..8ee48b3b44 100644 --- a/go.sum +++ b/go.sum @@ -21,13 +21,11 @@ cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIA 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= -contrib.go.opencensus.io/exporter/jaeger v0.2.0 h1:nhTv/Ry3lGmqbJ/JGvCjWxBl5ozRfqo86Ngz59UAlfk= -contrib.go.opencensus.io/exporter/jaeger v0.2.0/go.mod h1:ukdzwIYYHgZ7QYtwVFQUjiT28BJHiMhTERo32s6qVgM= +contrib.go.opencensus.io/exporter/jaeger v0.2.1 h1:yGBYzYMewVL0yO9qqJv3Z5+IRhPdU7e9o/2oKpX4YvI= contrib.go.opencensus.io/exporter/jaeger v0.2.1/go.mod h1:Y8IsLgdxqh1QxYxPC5IgXVmBaeLUeQFfBeBi9PbeZd0= contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= contrib.go.opencensus.io/exporter/ocagent v0.6.0 h1:Z1n6UAyr0QwM284yUuh5Zd8JlvxUGAhFZcgMJkMPrGM= contrib.go.opencensus.io/exporter/ocagent v0.6.0/go.mod h1:zmKjrJcdo0aYcVS7bmEeSEBLPA9YJp5bjrofdU3pIXs= -contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= contrib.go.opencensus.io/exporter/prometheus v0.2.0/go.mod h1:TYmVAyE8Tn1lyPcltF5IYYfWp2KHu7lQGIZnj8iZMys= contrib.go.opencensus.io/exporter/zipkin v0.1.1 h1:PR+1zWqY8ceXs1qDQQIlgXe+sdiwCf0n32bH4+Epk8g= contrib.go.opencensus.io/exporter/zipkin v0.1.1/go.mod h1:GMvdSl3eJ2gapOaLKzTKE3qDgUkJ86k9k3yY2eqwkzc= @@ -67,9 +65,7 @@ github.com/Masterminds/sprig/v3 v3.0.1/go.mod h1:Cp7HwZjmqKrC+Y7XqSJOU2yRvAJRGLi github.com/Masterminds/sprig/v3 v3.1.0 h1:j7GpgZ7PdFqNsmncycTHsLmVPf5/3wJtlgW9TNDYD9Y= github.com/Masterminds/sprig/v3 v3.1.0/go.mod h1:ONGMf7UfYGAbMXCZmQLy8x3lCDIPrEZE/rU8pmrbihA= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= github.com/Microsoft/hcsshim v0.8.7-0.20191101173118-65519b62243c/go.mod h1:7xhjOwRV2+0HXGmM0jxaEu+ZiXJFoVZOTfL/dmqbrD8= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= @@ -105,11 +101,9 @@ github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt github.com/aws/aws-sdk-go v1.20.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.19/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.29.26/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg= github.com/aws/aws-sdk-go v1.33.19/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= -github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -122,22 +116,18 @@ github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvF github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= -github.com/bwmarrin/discordgo v0.19.0/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= -github.com/bwmarrin/discordgo v0.20.1/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/bwmarrin/discordgo v0.20.2/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/caddyserver/certmagic v0.10.6/go.mod h1:Y8jcUBctgk/IhpAzlHKfimZNyXCkfGgRTC0orl8gROQ= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/cenkalti/backoff/v4 v4.0.0/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/reflex v0.2.0 h1:6d9WpWJseKjJvZEevKP7Pk42nPx2+BUTqmhNk8wZPwM= -github.com/cespare/reflex v0.2.0/go.mod h1:ooqOLJ4algvHP/oYvKWfWJ9tFUzCLDk5qkIJduMYrgI= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.0 h1:yTUvW7Vhb89inJ+8irsUqiWjh8iT6sQPZiQzI6ReGkA= github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM= +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/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/cheggaaa/pb v1.0.28/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= @@ -165,7 +155,6 @@ github.com/coreos/bbolt v1.3.3 h1:n6AiVyVRKQFNb6mJlwESEvvLoDyiTzXX7ORAUlkeBdY= github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.18+incompatible h1:Zz1aXgDrFFi1nadh58tA9ktt06cmPTwNNP3dXwIq1lE= github.com/coreos/etcd v3.3.18+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= @@ -180,26 +169,22 @@ github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMElOWxok= +github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -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/creack/pty v1.1.9 h1:uDmaGzcdjhF4i/plgjmEsriH11Y0o7RKapEf/LDaM3w= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cs3org/cato v0.0.0-20200626150132-28a40e643719/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= -github.com/cs3org/go-cs3apis v0.0.0-20200306065539-29abc33f5be0 h1:jTKILSBtDm0GEw3FtXPxc5wxGpaw2pxzREg1GBV9LIQ= -github.com/cs3org/go-cs3apis v0.0.0-20200306065539-29abc33f5be0/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= +github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd h1:uMaudkC7znaiIKT9rxIhoRYzrhTg1Nc78X7XEqhmjSk= github.com/cs3org/go-cs3apis v0.0.0-20200730121022-c4f3d4f7ddfd/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v0.1.0 h1:PYzDejKm/+xG3OTS2WgzBxcksVogEGmPgjJVegwSR2c= -github.com/cs3org/reva v0.1.0/go.mod h1:8j6QyyAq9Kjj7RPfJb7M1aEmw5DmsuCJKUULXxYOyRo= +github.com/cs3org/reva v1.1.0 h1:Gih6ECHvMMGSx523SFluFlDmNMuhYelXYShdWvjvW38= github.com/cs3org/reva v1.1.0/go.mod h1:fBzTrNuAKdQ62ybjpdu8nyhBin90/3/3s6DGQDCdBp4= 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= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/decker502/dnspod-go v0.2.0/go.mod h1:qsurYu1FgxcDwfSwXJdLt4kRsBLZeosEb9uq4Sy+08g= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= @@ -207,7 +192,6 @@ github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQ github.com/dnaeon/go-vcr v0.0.0-20180814043457-aafff18a5cc2/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/dnsimple/dnsimple-go v0.30.0/go.mod h1:O5TJ0/U6r7AfT8niYNlmohpLbCSG+c71tQlGr9SeGrg= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v1.4.2-0.20190710153559-aa8249ae1b8b/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -234,7 +218,6 @@ github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI github.com/forestgiant/sliceutil v0.0.0-20160425183142-94783f95db6c/go.mod h1:pFdJbAhRf7rh6YYMUdIQGyzne6zYL1tCUW8QV2B3UfY= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsouza/go-dockerclient v1.4.4/go.mod h1:PrwszSL5fbmsESocROrOGq/NULMXRw+bajY0ltzD6MA= github.com/fsouza/go-dockerclient v1.6.0/go.mod h1:YWwtNPuL4XTX1SKJQk86cWPmmqwx+4np9qfPbb+znGc= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -242,14 +225,10 @@ github.com/gizak/termui/v3 v3.1.0 h1:ZZmVDgwHl7gR7elfKf1xc4IudXZ5qqfDh4wExk4Iajc github.com/gizak/termui/v3 v3.1.0/go.mod h1:bXQEBkJpzxUAKf0+xq9MSWAvWZlE7c+aidmyFlkYTrY= github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/go-acme/lego/v3 v3.1.0/go.mod h1:074uqt+JS6plx+c9Xaiz6+L+GBb+7itGtzfcDM2AhEE= -github.com/go-acme/lego/v3 v3.3.0/go.mod h1:iGSY2vQrvQs3WezicSB/oVbO2eCrD88dpWPwb1qLqu0= github.com/go-acme/lego/v3 v3.4.0/go.mod h1:xYbLDuxq3Hy4bMUT1t9JIuz6GWIWb3m5X+TeTHYaT7M= github.com/go-asn1-ber/asn1-ber v1.5.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= -github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= -github.com/go-chi/chi v4.1.0+incompatible h1:ETj3cggsVIY2Xao5ExCu6YhEh5MD6JTfcBzS37R260w= -github.com/go-chi/chi v4.1.0+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-chi/chi v4.1.2+incompatible h1:fGFk2Gmi/YKXk0OmGfBh0WgmN3XB8lVnEyNz34tQRec= github.com/go-chi/chi v4.1.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-chi/render v1.0.1 h1:4/5tis2cKaNdnv9zFLfXzcquC9HbeZgCnxGnKrltBS8= github.com/go-chi/render v1.0.1/go.mod h1:pq4Rr7HbnsdaeHagklXub+p6Wd16Af5l9koip1OvJns= @@ -261,8 +240,7 @@ github.com/go-git/go-billy/v5 v5.0.0 h1:7NQHvd9FVid8VL4qVUMm8XifBK+2xCoZ2lSk0agR github.com/go-git/go-billy/v5 v5.0.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= github.com/go-git/go-git-fixtures/v4 v4.0.1 h1:q+IFMfLx200Q3scvt2hN79JsEzy4AmBTp/pqnefH+Bc= github.com/go-git/go-git-fixtures/v4 v4.0.1/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw= -github.com/go-git/go-git/v5 v5.0.0 h1:k5RWPm4iJwYtfWoxIJy4wJX9ON7ihPeZZYC1fLYDnpg= -github.com/go-git/go-git/v5 v5.0.0/go.mod h1:oYD8y9kWsGINPFJoLdaScGCN6dlKg23blmClfZwtUVA= +github.com/go-git/go-git/v5 v5.1.0 h1:HxJn9g/E7eYvKW3Fm7Jt4ee8LXfPOm/H1cdDu8vEssk= github.com/go-git/go-git/v5 v5.1.0/go.mod h1:ZKfuPUoY1ZqIG4QG9BDBh3G4gLM5zvPuSJAozQrZuyM= 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= @@ -271,19 +249,13 @@ github.com/go-ini/ini v1.44.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3I github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-ldap/ldap/v3 v3.2.3/go.mod h1:iYS1MdmrmceOJ1QOTnRXrIs7i3kloqtmGQjRvjKpyMg= -github.com/go-log/log v0.1.0/go.mod h1:4mBwpdRMFLiuXZDCwU2lKQFsoSCo72j3HqBK9d81N2M= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= -github.com/go-ozzo/ozzo-validation v3.6.0+incompatible h1:msy24VGS42fKO9K1vLz82/GeYW1cILu7Nuuj1N3BBkE= github.com/go-ozzo/ozzo-validation/v4 v4.2.1 h1:XALUNshPYumA7UShB7iM3ZVlqIBn0jfwjqAMIoyE1N0= github.com/go-ozzo/ozzo-validation/v4 v4.2.1/go.mod h1:2NKgrcHl3z6cJs+3Oo940FPRiTzuqKbvfrL2RxCj6Ew= -github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= 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= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= @@ -465,6 +437,7 @@ github.com/gobwas/ws v1.0.3/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/E github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/gofrs/uuid v3.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v3.3.0+incompatible h1:8K4tyRfvU1CYPgJsveYFQMhpFd/wXNM7iK6rR7UHz84= github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -477,7 +450,6 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekf github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= @@ -500,10 +472,10 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0 h1:oOuy+ugB+P/kBdUnG5QaMXSIyJ1q38wWSojYCb3z5VQ= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v1.8.2/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0= -github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= 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= @@ -548,9 +520,9 @@ github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvK github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 h1:THDBEeQ9xZ8JEaCLyLQqXMMdRqNr0QAUJTIkQAUtFjg= github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE= +github.com/grpc-ecosystem/go-grpc-middleware v1.2.0 h1:0IKlLyQ3Hs9nDaiK5cSHAGmcQEIC8l2Ts1u6x5Dfrqg= github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= @@ -583,7 +555,6 @@ 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/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= -github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= @@ -606,13 +577,12 @@ github.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqx github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/joncalhoun/qson v0.0.0-20170526102502-8a9cab3a62b1/go.mod h1:DFXrEwSRX0p/aSvxE21319menCBFeQO0jXpRj7LEZUA= github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= 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/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= @@ -632,7 +602,6 @@ github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/kolo/xmlrpc v0.0.0-20190717152603-07c4ee3fd181/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ= github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -644,8 +613,6 @@ 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.3/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/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= @@ -655,15 +622,10 @@ github.com/labstack/echo v3.2.1+incompatible h1:J2M7YArHx4gi8p/3fDw8tX19SXhBCoRp github.com/labstack/echo v3.2.1+incompatible/go.mod h1:0INS7j/VjnFxD4E2wkz67b8cVwCLbBmJyDaka6Cmk1s= github.com/labstack/gommon v0.2.7 h1:2qOPq/twXDrQ6ooBGrn3mrmVOC+biLlatwgIu8lbzRM= github.com/labstack/gommon v0.2.7/go.mod h1:/tj9csK2iPSBvn+3NLM9e52usepMtrd5ilFYA+wQNJ4= -github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/linode/linodego v0.10.0/go.mod h1:cziNP7pbvE3mXIPneHj0oRY8L1WtGEIKlZ8LANE4eXA= github.com/liquidweb/liquidweb-go v1.6.0/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ= -github.com/lucas-clemente/quic-go v0.12.1/go.mod h1:UXJJPE4RfFef/xPO5wQm0tITK8gNfqwTxjbE7s3Vb8s= -github.com/lucas-clemente/quic-go v0.13.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= github.com/lucas-clemente/quic-go v0.14.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= github.com/luna-duclos/instrumentedsql v1.1.2/go.mod h1:4LGbEqDnopzNAiyxPPDXhLspyunZxgPTMJBKtC6U0BQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -689,7 +651,6 @@ github.com/markbates/sigtx v1.0.0/go.mod h1:QF1Hv6Ic6Ca6W+T+DL0Y/ypborFKyvUY9Hmu github.com/markbates/willie v1.0.9/go.mod h1:fsrFVWl91+gXpx/6dv715j7i11fYPfZ9ZGfH0DQzY7w= github.com/marten-seemann/chacha20 v0.2.0/go.mod h1:HSdjFau7GzYRj+ahFNwsO3ouVJr1HFkWoEwNDb4TMtE= github.com/marten-seemann/qpack v0.1.0/go.mod h1:LFt1NU/Ptjip0C2CPkhimBz5CGE3WGDAUWqna+CNTrI= -github.com/marten-seemann/qtls v0.3.2/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= github.com/marten-seemann/qtls v0.4.1/go.mod h1:pxVXcHHw1pNIt8Qo0pwSYQEoZ8yYOOPXTCZLQQunvRc= github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -709,33 +670,15 @@ github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpe github.com/mattn/goveralls v0.0.5/go.mod h1:Xg2LHi51faXLyKXwsndxiW6uxEEQT9+3sjGzzwU4xy0= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mholt/certmagic v0.7.5/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= -github.com/mholt/certmagic v0.8.3/go.mod h1:91uJzK5K8IWtYQqTi5R2tsxV1pCde+wdGfaRaOZi6aQ= -github.com/mholt/certmagic v0.9.1/go.mod h1:nu8jbsbtwK4205EDH/ZUMTKsfYpJA1Q7MKXHfgTihNw= -github.com/mholt/certmagic v0.9.3/go.mod h1:nu8jbsbtwK4205EDH/ZUMTKsfYpJA1Q7MKXHfgTihNw= -github.com/micro/cli v0.2.0 h1:ut3rV5JWqZjsXIa2MvGF+qMUP8DAUTvHX9Br5gO4afA= -github.com/micro/cli v0.2.0/go.mod h1:jRT9gmfVKWSS6pkKcXQ8YhUyj6bzwxK8Fp5b0Y7qNnk= -github.com/micro/cli/v2 v2.1.1/go.mod h1:EguNh6DAoWKm9nmk+k/Rg0H3lQnDxqzu5x5srOtGtYg= github.com/micro/cli/v2 v2.1.2 h1:43J1lChg/rZCC1rvdqZNFSQDrGT7qfMrtp6/ztpIkEM= github.com/micro/cli/v2 v2.1.2/go.mod h1:EguNh6DAoWKm9nmk+k/Rg0H3lQnDxqzu5x5srOtGtYg= -github.com/micro/go-micro v1.16.0/go.mod h1:A0F58bHLh2m0LAI9QyhvmbN8c1cxhAZo3cM6s+iDsrM= -github.com/micro/go-micro v1.18.0 h1:gP70EZVHpJuUIT0YWth192JmlIci+qMOEByHm83XE9E= -github.com/micro/go-micro v1.18.0/go.mod h1:klwUJL1gkdY1MHFyz+fFJXn52dKcty4hoe95Mp571AA= -github.com/micro/go-micro/v2 v2.0.0/go.mod h1:v7QP5UhKRt37ixjJe8DouWmg0/eE6dltr5h0idJ9BpE= -github.com/micro/go-micro/v2 v2.6.0 h1:HH6uEqTu6pkBtAlwAqQW2sf33640iEa1s9puGIctpO0= -github.com/micro/go-micro/v2 v2.6.0/go.mod h1:60HMKlDN4ShZDJRrlgdcAmkCWNhQbYv+CDG3r7iLE34= +github.com/micro/go-micro/v2 v2.9.1 h1:+S9koIrNWARjpP6k2TZ7kt0uC9zUJtNXzIdZTZRms7Q= github.com/micro/go-micro/v2 v2.9.1/go.mod h1:x55ZM3Puy0FyvvkR3e0ha0xsE9DFwfPSUMWAIbFY0SY= -github.com/micro/go-plugins/wrapper/trace/opencensus/v2 v2.0.1 h1:7IkXfl94MdLZQwk0lNmu9Cg5WP42Zak9EtQMeN4SvVs= -github.com/micro/go-plugins/wrapper/trace/opencensus/v2 v2.0.1/go.mod h1:QrkcwcDtIs2hIJpIEhozekyf6Rfz5C36kFI8+zzCpX0= +github.com/micro/go-plugins/wrapper/trace/opencensus/v2 v2.9.1 h1:IaZUsLp0Omb/ozDnRKEvVY56C0UocBdPxxg2S2Pk2j0= github.com/micro/go-plugins/wrapper/trace/opencensus/v2 v2.9.1/go.mod h1:26UmOLM/I487NqTg3n6zJiBrYmIb684M2Zp4WH98XzU= -github.com/micro/mdns v0.3.0 h1:bYycYe+98AXR3s8Nq5qvt6C573uFTDPIYzJemWON0QE= -github.com/micro/mdns v0.3.0/go.mod h1:KJ0dW7KmicXU2BV++qkLlmHYcVv7/hHnbtguSWt9Aoc= -github.com/micro/protoc-gen-micro v1.0.0/go.mod h1:C8ij4DJhapBmypcT00AXdb0cZ675/3PqUO02buWWqbE= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.27 h1:aEH/kqUzUxGJ/UHcEKdJY+ugH6WEzsEBBSPa8zuy1aM= github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= @@ -757,6 +700,7 @@ github.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.3.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8= github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= @@ -774,21 +718,12 @@ github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5 github.com/moul/http2curl v0.0.0-20170919181001-9ac6cf4d929b/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04/go.mod h1:5sN+Lt1CaY4wsPvgQH/jsuJi4XO2ssZbdsIizr4CVC8= -github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.2 h1:+RB5hMpXUUA2dfxuhBTEkMOrYmM+gKIZYS1KjSostMI= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= -github.com/nats-io/nats-server/v2 v2.1.0/go.mod h1:r5y0WgCag0dTj/qiHkHrXAcKQ/f5GMOZaEGdoxxnJ4I= -github.com/nats-io/nats-server/v2 v2.1.2 h1:i2Ly0B+1+rzNZHHWtD4ZwKi+OU5l+uQo1iDHZ2PmiIc= -github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= github.com/nats-io/nats-server/v2 v2.1.6 h1:qAaHZaS8pRRNQLFaiBA1rq5WynyEGp9DFgmMfoaiXGY= github.com/nats-io/nats-server/v2 v2.1.6/go.mod h1:BL1NOtaBQ5/y97djERRVWNouMW7GT3gxnmbE/eC8u8A= -github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= -github.com/nats-io/nats.go v1.9.1 h1:ik3HbLhZ0YABLto7iX80pZLPw/6dx3T+++MZJwLnMrQ= -github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= github.com/nats-io/nats.go v1.9.2 h1:oDeERm3NcZVrPpdR/JpGdWHMv3oJ8yY30YwxKq+DU2s= github.com/nats-io/nats.go v1.9.2/go.mod h1:AjGArbfyR50+afOUotNX2Xs5SYHf+CoOa5HH1eEl2HE= -github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= -github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3 h1:6JrEfig+HzTH85yxzhSVbjHRJv9cn0p6n3IngIcM5/k= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.4 h1:aEsHIssIk6ETN5m2/MD8Y4B2X7FfXrBAUdkyRvbVYzA= @@ -799,17 +734,13 @@ github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uY github.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q= 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/nlopes/slack v0.6.0/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk= github.com/nlopes/slack v0.6.1-0.20191106133607-d06c2a2b3249/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk= github.com/nrdcg/auroradns v1.0.0/go.mod h1:6JPXKzIRzZzMqtTDgueIhTi6rFf1QvYE/HzqidhOhjw= -github.com/nrdcg/dnspod-go v0.3.0/go.mod h1:vZSoFSFeQVm2gWLMkyX61LZ8HI3BaqtHZWgPTGKr6KQ= github.com/nrdcg/dnspod-go v0.4.0/go.mod h1:vZSoFSFeQVm2gWLMkyX61LZ8HI3BaqtHZWgPTGKr6KQ= github.com/nrdcg/goinwx v0.6.1/go.mod h1:XPiut7enlbEdntAqalBIqcYcTEVhpv/dKWgDCX2SwKQ= github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4rRpRiyw= github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d h1:x3S6kxmy49zXVVyhcnrFqxvNVCBPb2KZ9hV2RBdS840= github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d/go.mod h1:IuKpRQcYE1Tfu+oAQqaLisqDeXgjyyltCfsaoYN18NQ= -github.com/ogier/pflag v0.0.1 h1:RW6JSWSu/RkSatfcLtogGfFgpim5p7ARQ10ECk5O750= -github.com/ogier/pflag v0.0.1/go.mod h1:zkFki7tvTa0tafRvTBIZTvzYyAu6kQhPZFnshFFPE+g= github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= @@ -835,7 +766,6 @@ github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/ory/fosite v0.29.0/go.mod h1:0atSZmXO7CAcs6NPMI/Qtot8tmZYj04Nddoold4S2h0= -github.com/ory/fosite v0.30.4/go.mod h1:Lq9qQ9Sl6mcea2Tt8J7PU+wUeFYPZ+vg7N3zPVKGbN8= github.com/ory/fosite v0.32.2/go.mod h1:UeBhRgW6nAjTcd8S7kAo0IFsY/rTPyOXPq/t8N20Q8I= github.com/ory/go-acc v0.0.0-20181118080137-ddc355013f90/go.mod h1:sxnvPCxChFuSmTJGj8FdMupeq1BezCiEpDjTUXQ4hf4= github.com/ory/go-acc v0.2.1/go.mod h1:0omgy2aa3nDBJ45VAKeLHH8ccPBudxLeic4xiDRtug0= @@ -846,8 +776,6 @@ github.com/ory/herodot v0.6.2/go.mod h1:3BOneqcyBsVybCPAJoi92KN2BpJHcmDqAMcAAaJi github.com/ory/viper v1.5.6/go.mod h1:TYmpFpKLxjQwvT4f0QPpkOn4sDXU1kDgAwJpgLYiQ28= github.com/ory/x v0.0.85/go.mod h1:s44V8t3xyjWZREcU+mWlp4h302rTuM4aLXcW+y5FbQ8= github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= -github.com/owncloud/ocis-pkg/v2 v2.2.2-0.20200527082518-5641fa4a4c8c h1:hYhKSfMkPO4kRLrKqRHPmePGTCpGDGji+s4yW30+tmM= -github.com/owncloud/ocis-pkg/v2 v2.2.2-0.20200527082518-5641fa4a4c8c/go.mod h1:s894msGwDsULmsROHkbsXFCP/eSqDcteDFUntZOiJdc= github.com/owncloud/ocis-pkg/v2 v2.2.2-0.20200812103920-db41b5a3d14d h1:eruHqxLfS3fiPO1ylg60T++wShVqtayI4LxUhwOEuN4= github.com/owncloud/ocis-pkg/v2 v2.2.2-0.20200812103920-db41b5a3d14d/go.mod h1:FSzIvhx9HcZcq4jgNaDowNvM7PTX/XCyoMvyfzidUpE= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= @@ -856,9 +784,9 @@ github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfD github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.4.0 h1:u3Z1r+oOXJIkxqw34zVhyPgjBsm6X2wn21NWs/HfSeg= github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -873,31 +801,31 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 h1:J9b7z+QKAmPf4YLrFg6oQUotqHQeUNWwkvo7jZp1GLU= github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.2.1 h1:JnMpQc6ppsNgw9QPAGF6Dod479itz7lvlsMzzNayLOI= github.com/prometheus/client_golang v1.2.1/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U= +github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= 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/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.7.0 h1:L+1lyG48J1zAQXA3RBX/nG/B3gjlHq0zTt2tlbJLyCY= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= +github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -905,6 +833,7 @@ github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDa github.com/prometheus/procfs v0.0.5 h1:3+auTFlqw+ZaQYJARz6ArODtkaIwtvBTx3N2NehQlL8= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.6/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/statsd_exporter v0.15.0/go.mod h1:Dv8HnkoLQkeEjkIE4/2ndAA7WL1zHKK7WMqFQqu72rw= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= @@ -921,10 +850,10 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rs/cors v1.6.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/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/zerolog v1.18.0 h1:CbAm3kP2Tptby1i9sYy2MGRg0uxIN9cyDb59Ys7W8z8= -github.com/rs/zerolog v1.18.0/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= +github.com/rs/zerolog v1.19.0 h1:hYz4ZVdUgjXTBUmrkrw55j1nHx68LfOKIQk5IYtyScg= github.com/rs/zerolog v1.19.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJRjo= github.com/rubenv/sql-migrate v0.0.0-20190212093014-1007f53448d7/go.mod h1:WS0rl9eEliYI8DPnr3TOwz4439pay+qNgzJoVya/DmY= +github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -971,6 +900,7 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= +github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg= github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= @@ -981,6 +911,7 @@ github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3 github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -991,7 +922,6 @@ github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.6.3 h1:pDDu1OyEDTKzpJwdq4TiuLyMsUgRa/BT5cn5O62NoHs= github.com/spf13/viper v1.6.3/go.mod h1:jUMtyi0/lB5yZH/FjyGAoH7IMNrIhlBf6pXZmbMDvzw= -github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1001,8 +931,7 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.0 h1:jlIyCplCJFULU/01vCkhKuTyc3OorI3bJFuw6obfgho= -github.com/stretchr/testify v1.6.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.1.1/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= @@ -1026,6 +955,7 @@ github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2/go.mod h1:ygrT4B9ZSb27d github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= github.com/uber/jaeger-client-go v2.15.0+incompatible h1:NP3qsSqNxh8VYr956ur1N/1C1PjvOJnJykCzcD5QHbk= github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-client-go v2.25.0+incompatible h1:IxcNZ7WRY1Y3G4poYlx24szfsn/3LvK9QHCq9oQw8+U= github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -1052,12 +982,9 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c/go.mod h1:UrdRz5enIKZ63MEE3IF9l2/ebyx59GyGgPi+tICQdmM= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.4 h1:hi1bXHMVrlQh6WwxAy+qZCV/SYIlqo+Ushwdpa4tAKg= go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU= @@ -1071,20 +998,19 @@ go.opencensus.io v0.22.2 h1:75k/FF0Q2YM8QYo07VPddOLBslDt1MZOdEslOHvmzAs= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4 h1:LYy1Hy3MJdrCdMwwzxA/dRok4ejH+RwNGbuoD9fCjto= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0 h1:OI5t8sDa1Or+q8AeE+yKeB/SDYioSHAgcVljj9JIETY= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.2.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0 h1:sFPn2GLc3poCkfrpIXGhBD2X0CMIo4Q/zSULXrj/+uc= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277/go.mod h1:2X8KaoNd1J0lZV+PxJk/5+DGbO/tpwLR1m++a7FnB/Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.12.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.13.0 h1:nR6NoDBgAf67s68NhaXbsojM+2gxp3S1hWkHDl27pVU= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= golang.org/x/crypto v0.0.0-20180621125126-a49355c7e3f8/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1104,24 +1030,17 @@ golang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200117160349-530e935923ad h1:Jh8cai0fqIK+f6nG0UgPW5wFk8wmiMhM3AyciDBdtQg= -golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59 h1:3zb4D3T4G8jdExgVU/95+vQXfpEPiMdCaZgmGVxjNHM= golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -1179,7 +1098,6 @@ golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1199,9 +1117,7 @@ golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190930134127-c5a3c61f89f3/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191011234655-491137f69257/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191027093000-83d349e8ac1a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191109021931-daa7c04131f5/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1211,6 +1127,7 @@ golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3ob golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrSV+Z2tcbze+pEc3v5W4= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1218,6 +1135,7 @@ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1227,6 +1145,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1253,11 +1172,9 @@ golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181206074257-70b957f3b65e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190116161447-11f53e031339/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1268,19 +1185,15 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190710143415-6ec70d6a5542/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191105231009-c1f44814a5cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4 h1:Hynbrlo6LbYI3H1IqXpkVDOcX/3HiPdhVEuyj5a59RM= -golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191113165036-4c7a9d0fe056/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1296,6 +1209,7 @@ golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 h1:ogLJMz+qpzav7lGMh10LMvAkM/fAoGlaiiHYiFYdm80= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1344,10 +1258,8 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190624190245-7f2218787638/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190711191110-9a621aea19f8/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= -golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1370,8 +1282,6 @@ golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200526224456-8b020aee10d2 h1:21BqcH/onxtGHn1A2GDOJjZnbt4Nlez629S3eaR+eYs= -golang.org/x/tools v0.0.0-20200526224456-8b020aee10d2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200811215021-48a8ffc5b207 h1:8Kg+JssU1jBZs8GIrL5pl4nVyaqyyhdmHAR4D1zGErg= golang.org/x/tools v0.0.0-20200811215021-48a8ffc5b207/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1393,6 +1303,7 @@ google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsb google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.29.0 h1:BaiDisFir8O4IJxvAabCGGkQ6yCJegNQqSVoYUNAnbk= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1400,6 +1311,7 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1 h1:QzqyMA1tlu6CgqCDUtU9V+ZKhLFT2dkJuANu5QaxI3I= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -1437,12 +1349,12 @@ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miE google.golang.org/protobuf v1.21.0 h1:qdOKuR/EIArgaWNjetjgTzgVTAZ+S/WXVrq9HW9zimw= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= gopkg.in/Acconut/lockfile.v1 v1.1.0/go.mod h1:6UCz3wJ8tSFUsPR6uP/j8uegEtDuEEqFxlpi0JI4Umw= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1453,9 +1365,6 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= -gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= -gopkg.in/go-playground/validator.v9 v9.30.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= -gopkg.in/go-playground/validator.v9 v9.31.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= gopkg.in/gorp.v1 v1.7.2/go.mod h1:Wo3h+DBQZIxATwftsglhdD/62zRFPhGhTiu5jUJmCaw= gopkg.in/h2non/gock.v1 v1.0.14/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE= @@ -1464,7 +1373,6 @@ gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= gopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw= gopkg.in/ns1/ns1-go.v2 v2.0.0-20190730140822-b51389932cbc/go.mod h1:VV+3haRsgDiVLxyifmMBrBIuCWFBPYKbRssXB9z67Hw= gopkg.in/resty.v1 v1.9.1/go.mod h1:vo52Hzryw9PnPHcJfPsBiFW62XhNx5OczbV9y+IMpgc= @@ -1473,10 +1381,8 @@ gopkg.in/square/go-jose.v2 v2.1.9/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76 gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.5.0 h1:OZ4sdq+Y+SHfYB7vfthi1Ei8b0vkP8ZPQgUfUwdUSqo= gopkg.in/square/go-jose.v2 v2.5.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= -gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= -gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= gopkg.in/telegram-bot-api.v4 v4.6.4/go.mod h1:5DpGO5dbumb40px+dXcwCpcjmeHNYLpk0bp3XRNvWDM= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= @@ -1489,9 +1395,11 @@ gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +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= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/proto/v0/settings.pb.go b/pkg/proto/v0/settings.pb.go index 6fdddc6a9b..a548a539f6 100644 --- a/pkg/proto/v0/settings.pb.go +++ b/pkg/proto/v0/settings.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.21.0-devel -// protoc v3.11.4 +// protoc v3.12.3 // source: settings.proto package proto @@ -27,17 +27,132 @@ const ( // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 +type Resource_Type int32 + +const ( + Resource_TYPE_UNKNOWN Resource_Type = 0 + Resource_TYPE_SYSTEM Resource_Type = 1 + Resource_TYPE_FILE Resource_Type = 2 + Resource_TYPE_SHARE Resource_Type = 3 + Resource_TYPE_SETTING Resource_Type = 4 + Resource_TYPE_BUNDLE Resource_Type = 5 + Resource_TYPE_USER Resource_Type = 6 + Resource_TYPE_GROUP Resource_Type = 7 +) + +// Enum value maps for Resource_Type. +var ( + Resource_Type_name = map[int32]string{ + 0: "TYPE_UNKNOWN", + 1: "TYPE_SYSTEM", + 2: "TYPE_FILE", + 3: "TYPE_SHARE", + 4: "TYPE_SETTING", + 5: "TYPE_BUNDLE", + 6: "TYPE_USER", + 7: "TYPE_GROUP", + } + Resource_Type_value = map[string]int32{ + "TYPE_UNKNOWN": 0, + "TYPE_SYSTEM": 1, + "TYPE_FILE": 2, + "TYPE_SHARE": 3, + "TYPE_SETTING": 4, + "TYPE_BUNDLE": 5, + "TYPE_USER": 6, + "TYPE_GROUP": 7, + } +) + +func (x Resource_Type) Enum() *Resource_Type { + p := new(Resource_Type) + *p = x + return p +} + +func (x Resource_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Resource_Type) Descriptor() protoreflect.EnumDescriptor { + return file_settings_proto_enumTypes[0].Descriptor() +} + +func (Resource_Type) Type() protoreflect.EnumType { + return &file_settings_proto_enumTypes[0] +} + +func (x Resource_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Resource_Type.Descriptor instead. +func (Resource_Type) EnumDescriptor() ([]byte, []int) { + return file_settings_proto_rawDescGZIP(), []int{15, 0} +} + +type Bundle_Type int32 + +const ( + Bundle_TYPE_UNKNOWN Bundle_Type = 0 + Bundle_TYPE_DEFAULT Bundle_Type = 1 + Bundle_TYPE_ROLE Bundle_Type = 2 +) + +// Enum value maps for Bundle_Type. +var ( + Bundle_Type_name = map[int32]string{ + 0: "TYPE_UNKNOWN", + 1: "TYPE_DEFAULT", + 2: "TYPE_ROLE", + } + Bundle_Type_value = map[string]int32{ + "TYPE_UNKNOWN": 0, + "TYPE_DEFAULT": 1, + "TYPE_ROLE": 2, + } +) + +func (x Bundle_Type) Enum() *Bundle_Type { + p := new(Bundle_Type) + *p = x + return p +} + +func (x Bundle_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Bundle_Type) Descriptor() protoreflect.EnumDescriptor { + return file_settings_proto_enumTypes[1].Descriptor() +} + +func (Bundle_Type) Type() protoreflect.EnumType { + return &file_settings_proto_enumTypes[1] +} + +func (x Bundle_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Bundle_Type.Descriptor instead. +func (Bundle_Type) EnumDescriptor() ([]byte, []int) { + return file_settings_proto_rawDescGZIP(), []int{16, 0} +} + +// --- // requests and responses for settings bundles -type SaveSettingsBundleRequest struct { +// --- +type SaveBundleRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SettingsBundle *SettingsBundle `protobuf:"bytes,1,opt,name=settings_bundle,json=settingsBundle,proto3" json:"settings_bundle,omitempty"` + Bundle *Bundle `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle,omitempty"` } -func (x *SaveSettingsBundleRequest) Reset() { - *x = SaveSettingsBundleRequest{} +func (x *SaveBundleRequest) Reset() { + *x = SaveBundleRequest{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45,13 +160,13 @@ func (x *SaveSettingsBundleRequest) Reset() { } } -func (x *SaveSettingsBundleRequest) String() string { +func (x *SaveBundleRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SaveSettingsBundleRequest) ProtoMessage() {} +func (*SaveBundleRequest) ProtoMessage() {} -func (x *SaveSettingsBundleRequest) ProtoReflect() protoreflect.Message { +func (x *SaveBundleRequest) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63,28 +178,28 @@ func (x *SaveSettingsBundleRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SaveSettingsBundleRequest.ProtoReflect.Descriptor instead. -func (*SaveSettingsBundleRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use SaveBundleRequest.ProtoReflect.Descriptor instead. +func (*SaveBundleRequest) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{0} } -func (x *SaveSettingsBundleRequest) GetSettingsBundle() *SettingsBundle { +func (x *SaveBundleRequest) GetBundle() *Bundle { if x != nil { - return x.SettingsBundle + return x.Bundle } return nil } -type SaveSettingsBundleResponse struct { +type SaveBundleResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SettingsBundle *SettingsBundle `protobuf:"bytes,1,opt,name=settings_bundle,json=settingsBundle,proto3" json:"settings_bundle,omitempty"` + Bundle *Bundle `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle,omitempty"` } -func (x *SaveSettingsBundleResponse) Reset() { - *x = SaveSettingsBundleResponse{} +func (x *SaveBundleResponse) Reset() { + *x = SaveBundleResponse{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92,13 +207,13 @@ func (x *SaveSettingsBundleResponse) Reset() { } } -func (x *SaveSettingsBundleResponse) String() string { +func (x *SaveBundleResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SaveSettingsBundleResponse) ProtoMessage() {} +func (*SaveBundleResponse) ProtoMessage() {} -func (x *SaveSettingsBundleResponse) ProtoReflect() protoreflect.Message { +func (x *SaveBundleResponse) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -110,28 +225,28 @@ func (x *SaveSettingsBundleResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SaveSettingsBundleResponse.ProtoReflect.Descriptor instead. -func (*SaveSettingsBundleResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use SaveBundleResponse.ProtoReflect.Descriptor instead. +func (*SaveBundleResponse) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{1} } -func (x *SaveSettingsBundleResponse) GetSettingsBundle() *SettingsBundle { +func (x *SaveBundleResponse) GetBundle() *Bundle { if x != nil { - return x.SettingsBundle + return x.Bundle } return nil } -type GetSettingsBundleRequest struct { +type GetBundleRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Identifier *Identifier `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` + BundleId string `protobuf:"bytes,1,opt,name=bundle_id,json=bundleId,proto3" json:"bundle_id,omitempty"` } -func (x *GetSettingsBundleRequest) Reset() { - *x = GetSettingsBundleRequest{} +func (x *GetBundleRequest) Reset() { + *x = GetBundleRequest{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -139,13 +254,13 @@ func (x *GetSettingsBundleRequest) Reset() { } } -func (x *GetSettingsBundleRequest) String() string { +func (x *GetBundleRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetSettingsBundleRequest) ProtoMessage() {} +func (*GetBundleRequest) ProtoMessage() {} -func (x *GetSettingsBundleRequest) ProtoReflect() protoreflect.Message { +func (x *GetBundleRequest) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -157,28 +272,28 @@ func (x *GetSettingsBundleRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetSettingsBundleRequest.ProtoReflect.Descriptor instead. -func (*GetSettingsBundleRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetBundleRequest.ProtoReflect.Descriptor instead. +func (*GetBundleRequest) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{2} } -func (x *GetSettingsBundleRequest) GetIdentifier() *Identifier { +func (x *GetBundleRequest) GetBundleId() string { if x != nil { - return x.Identifier + return x.BundleId } - return nil + return "" } -type GetSettingsBundleResponse struct { +type GetBundleResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SettingsBundle *SettingsBundle `protobuf:"bytes,1,opt,name=settings_bundle,json=settingsBundle,proto3" json:"settings_bundle,omitempty"` + Bundle *Bundle `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle,omitempty"` } -func (x *GetSettingsBundleResponse) Reset() { - *x = GetSettingsBundleResponse{} +func (x *GetBundleResponse) Reset() { + *x = GetBundleResponse{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -186,13 +301,13 @@ func (x *GetSettingsBundleResponse) Reset() { } } -func (x *GetSettingsBundleResponse) String() string { +func (x *GetBundleResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetSettingsBundleResponse) ProtoMessage() {} +func (*GetBundleResponse) ProtoMessage() {} -func (x *GetSettingsBundleResponse) ProtoReflect() protoreflect.Message { +func (x *GetBundleResponse) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -204,28 +319,28 @@ func (x *GetSettingsBundleResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetSettingsBundleResponse.ProtoReflect.Descriptor instead. -func (*GetSettingsBundleResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetBundleResponse.ProtoReflect.Descriptor instead. +func (*GetBundleResponse) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{3} } -func (x *GetSettingsBundleResponse) GetSettingsBundle() *SettingsBundle { +func (x *GetBundleResponse) GetBundle() *Bundle { if x != nil { - return x.SettingsBundle + return x.Bundle } return nil } -type ListSettingsBundlesRequest struct { +type ListBundlesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Identifier *Identifier `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` + AccountUuid string `protobuf:"bytes,1,opt,name=account_uuid,json=accountUuid,proto3" json:"account_uuid,omitempty"` } -func (x *ListSettingsBundlesRequest) Reset() { - *x = ListSettingsBundlesRequest{} +func (x *ListBundlesRequest) Reset() { + *x = ListBundlesRequest{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -233,13 +348,13 @@ func (x *ListSettingsBundlesRequest) Reset() { } } -func (x *ListSettingsBundlesRequest) String() string { +func (x *ListBundlesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListSettingsBundlesRequest) ProtoMessage() {} +func (*ListBundlesRequest) ProtoMessage() {} -func (x *ListSettingsBundlesRequest) ProtoReflect() protoreflect.Message { +func (x *ListBundlesRequest) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -251,28 +366,28 @@ func (x *ListSettingsBundlesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListSettingsBundlesRequest.ProtoReflect.Descriptor instead. -func (*ListSettingsBundlesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListBundlesRequest.ProtoReflect.Descriptor instead. +func (*ListBundlesRequest) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{4} } -func (x *ListSettingsBundlesRequest) GetIdentifier() *Identifier { +func (x *ListBundlesRequest) GetAccountUuid() string { if x != nil { - return x.Identifier + return x.AccountUuid } - return nil + return "" } -type ListSettingsBundlesResponse struct { +type ListBundlesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SettingsBundles []*SettingsBundle `protobuf:"bytes,1,rep,name=settings_bundles,json=settingsBundles,proto3" json:"settings_bundles,omitempty"` + Bundles []*Bundle `protobuf:"bytes,1,rep,name=bundles,proto3" json:"bundles,omitempty"` } -func (x *ListSettingsBundlesResponse) Reset() { - *x = ListSettingsBundlesResponse{} +func (x *ListBundlesResponse) Reset() { + *x = ListBundlesResponse{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -280,13 +395,13 @@ func (x *ListSettingsBundlesResponse) Reset() { } } -func (x *ListSettingsBundlesResponse) String() string { +func (x *ListBundlesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListSettingsBundlesResponse) ProtoMessage() {} +func (*ListBundlesResponse) ProtoMessage() {} -func (x *ListSettingsBundlesResponse) ProtoReflect() protoreflect.Message { +func (x *ListBundlesResponse) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -298,29 +413,29 @@ func (x *ListSettingsBundlesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListSettingsBundlesResponse.ProtoReflect.Descriptor instead. -func (*ListSettingsBundlesResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ListBundlesResponse.ProtoReflect.Descriptor instead. +func (*ListBundlesResponse) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{5} } -func (x *ListSettingsBundlesResponse) GetSettingsBundles() []*SettingsBundle { +func (x *ListBundlesResponse) GetBundles() []*Bundle { if x != nil { - return x.SettingsBundles + return x.Bundles } return nil } // requests and responses for settings values -type SaveSettingsValueRequest struct { +type SaveValueRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SettingsValue *SettingsValue `protobuf:"bytes,1,opt,name=settings_value,json=settingsValue,proto3" json:"settings_value,omitempty"` + Value *Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *SaveSettingsValueRequest) Reset() { - *x = SaveSettingsValueRequest{} +func (x *SaveValueRequest) Reset() { + *x = SaveValueRequest{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -328,13 +443,13 @@ func (x *SaveSettingsValueRequest) Reset() { } } -func (x *SaveSettingsValueRequest) String() string { +func (x *SaveValueRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SaveSettingsValueRequest) ProtoMessage() {} +func (*SaveValueRequest) ProtoMessage() {} -func (x *SaveSettingsValueRequest) ProtoReflect() protoreflect.Message { +func (x *SaveValueRequest) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -346,28 +461,28 @@ func (x *SaveSettingsValueRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SaveSettingsValueRequest.ProtoReflect.Descriptor instead. -func (*SaveSettingsValueRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use SaveValueRequest.ProtoReflect.Descriptor instead. +func (*SaveValueRequest) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{6} } -func (x *SaveSettingsValueRequest) GetSettingsValue() *SettingsValue { +func (x *SaveValueRequest) GetValue() *Value { if x != nil { - return x.SettingsValue + return x.Value } return nil } -type SaveSettingsValueResponse struct { +type SaveValueResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SettingsValue *SettingsValue `protobuf:"bytes,1,opt,name=settings_value,json=settingsValue,proto3" json:"settings_value,omitempty"` + Value *ValueWithIdentifier `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *SaveSettingsValueResponse) Reset() { - *x = SaveSettingsValueResponse{} +func (x *SaveValueResponse) Reset() { + *x = SaveValueResponse{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -375,13 +490,13 @@ func (x *SaveSettingsValueResponse) Reset() { } } -func (x *SaveSettingsValueResponse) String() string { +func (x *SaveValueResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SaveSettingsValueResponse) ProtoMessage() {} +func (*SaveValueResponse) ProtoMessage() {} -func (x *SaveSettingsValueResponse) ProtoReflect() protoreflect.Message { +func (x *SaveValueResponse) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -393,28 +508,28 @@ func (x *SaveSettingsValueResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SaveSettingsValueResponse.ProtoReflect.Descriptor instead. -func (*SaveSettingsValueResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use SaveValueResponse.ProtoReflect.Descriptor instead. +func (*SaveValueResponse) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{7} } -func (x *SaveSettingsValueResponse) GetSettingsValue() *SettingsValue { +func (x *SaveValueResponse) GetValue() *ValueWithIdentifier { if x != nil { - return x.SettingsValue + return x.Value } return nil } -type GetSettingsValueRequest struct { +type GetValueRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Identifier *Identifier `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } -func (x *GetSettingsValueRequest) Reset() { - *x = GetSettingsValueRequest{} +func (x *GetValueRequest) Reset() { + *x = GetValueRequest{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -422,13 +537,13 @@ func (x *GetSettingsValueRequest) Reset() { } } -func (x *GetSettingsValueRequest) String() string { +func (x *GetValueRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetSettingsValueRequest) ProtoMessage() {} +func (*GetValueRequest) ProtoMessage() {} -func (x *GetSettingsValueRequest) ProtoReflect() protoreflect.Message { +func (x *GetValueRequest) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -440,28 +555,28 @@ func (x *GetSettingsValueRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetSettingsValueRequest.ProtoReflect.Descriptor instead. -func (*GetSettingsValueRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetValueRequest.ProtoReflect.Descriptor instead. +func (*GetValueRequest) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{8} } -func (x *GetSettingsValueRequest) GetIdentifier() *Identifier { +func (x *GetValueRequest) GetId() string { if x != nil { - return x.Identifier + return x.Id } - return nil + return "" } -type GetSettingsValueResponse struct { +type GetValueResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SettingsValue *SettingsValue `protobuf:"bytes,1,opt,name=settings_value,json=settingsValue,proto3" json:"settings_value,omitempty"` + Value *ValueWithIdentifier `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *GetSettingsValueResponse) Reset() { - *x = GetSettingsValueResponse{} +func (x *GetValueResponse) Reset() { + *x = GetValueResponse{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -469,13 +584,13 @@ func (x *GetSettingsValueResponse) Reset() { } } -func (x *GetSettingsValueResponse) String() string { +func (x *GetValueResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetSettingsValueResponse) ProtoMessage() {} +func (*GetValueResponse) ProtoMessage() {} -func (x *GetSettingsValueResponse) ProtoReflect() protoreflect.Message { +func (x *GetValueResponse) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -487,28 +602,29 @@ func (x *GetSettingsValueResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetSettingsValueResponse.ProtoReflect.Descriptor instead. -func (*GetSettingsValueResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetValueResponse.ProtoReflect.Descriptor instead. +func (*GetValueResponse) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{9} } -func (x *GetSettingsValueResponse) GetSettingsValue() *SettingsValue { +func (x *GetValueResponse) GetValue() *ValueWithIdentifier { if x != nil { - return x.SettingsValue + return x.Value } return nil } -type ListSettingsValuesRequest struct { +type ListValuesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Identifier *Identifier `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` + BundleId string `protobuf:"bytes,1,opt,name=bundle_id,json=bundleId,proto3" json:"bundle_id,omitempty"` + AccountUuid string `protobuf:"bytes,2,opt,name=account_uuid,json=accountUuid,proto3" json:"account_uuid,omitempty"` } -func (x *ListSettingsValuesRequest) Reset() { - *x = ListSettingsValuesRequest{} +func (x *ListValuesRequest) Reset() { + *x = ListValuesRequest{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -516,13 +632,13 @@ func (x *ListSettingsValuesRequest) Reset() { } } -func (x *ListSettingsValuesRequest) String() string { +func (x *ListValuesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListSettingsValuesRequest) ProtoMessage() {} +func (*ListValuesRequest) ProtoMessage() {} -func (x *ListSettingsValuesRequest) ProtoReflect() protoreflect.Message { +func (x *ListValuesRequest) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -534,28 +650,35 @@ func (x *ListSettingsValuesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListSettingsValuesRequest.ProtoReflect.Descriptor instead. -func (*ListSettingsValuesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListValuesRequest.ProtoReflect.Descriptor instead. +func (*ListValuesRequest) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{10} } -func (x *ListSettingsValuesRequest) GetIdentifier() *Identifier { +func (x *ListValuesRequest) GetBundleId() string { if x != nil { - return x.Identifier + return x.BundleId } - return nil + return "" } -type ListSettingsValuesResponse struct { +func (x *ListValuesRequest) GetAccountUuid() string { + if x != nil { + return x.AccountUuid + } + return "" +} + +type ListValuesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SettingsValues []*SettingsValue `protobuf:"bytes,1,rep,name=settings_values,json=settingsValues,proto3" json:"settings_values,omitempty"` + Values []*ValueWithIdentifier `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` } -func (x *ListSettingsValuesResponse) Reset() { - *x = ListSettingsValuesResponse{} +func (x *ListValuesResponse) Reset() { + *x = ListValuesResponse{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -563,13 +686,13 @@ func (x *ListSettingsValuesResponse) Reset() { } } -func (x *ListSettingsValuesResponse) String() string { +func (x *ListValuesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListSettingsValuesResponse) ProtoMessage() {} +func (*ListValuesResponse) ProtoMessage() {} -func (x *ListSettingsValuesResponse) ProtoReflect() protoreflect.Message { +func (x *ListValuesResponse) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -581,34 +704,142 @@ func (x *ListSettingsValuesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListSettingsValuesResponse.ProtoReflect.Descriptor instead. -func (*ListSettingsValuesResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ListValuesResponse.ProtoReflect.Descriptor instead. +func (*ListValuesResponse) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{11} } -func (x *ListSettingsValuesResponse) GetSettingsValues() []*SettingsValue { +func (x *ListValuesResponse) GetValues() []*ValueWithIdentifier { if x != nil { - return x.SettingsValues + return x.Values + } + return nil +} + +type GetValueByUniqueIdentifiersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountUuid string `protobuf:"bytes,1,opt,name=account_uuid,json=accountUuid,proto3" json:"account_uuid,omitempty"` + SettingId string `protobuf:"bytes,2,opt,name=setting_id,json=settingId,proto3" json:"setting_id,omitempty"` +} + +func (x *GetValueByUniqueIdentifiersRequest) Reset() { + *x = GetValueByUniqueIdentifiersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_settings_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetValueByUniqueIdentifiersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetValueByUniqueIdentifiersRequest) ProtoMessage() {} + +func (x *GetValueByUniqueIdentifiersRequest) ProtoReflect() protoreflect.Message { + mi := &file_settings_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 GetValueByUniqueIdentifiersRequest.ProtoReflect.Descriptor instead. +func (*GetValueByUniqueIdentifiersRequest) Descriptor() ([]byte, []int) { + return file_settings_proto_rawDescGZIP(), []int{12} +} + +func (x *GetValueByUniqueIdentifiersRequest) GetAccountUuid() string { + if x != nil { + return x.AccountUuid + } + return "" +} + +func (x *GetValueByUniqueIdentifiersRequest) GetSettingId() string { + if x != nil { + return x.SettingId + } + return "" +} + +type ValueWithIdentifier struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Identifier *Identifier `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` + Value *Value `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *ValueWithIdentifier) Reset() { + *x = ValueWithIdentifier{} + if protoimpl.UnsafeEnabled { + mi := &file_settings_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValueWithIdentifier) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValueWithIdentifier) ProtoMessage() {} + +func (x *ValueWithIdentifier) ProtoReflect() protoreflect.Message { + mi := &file_settings_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 ValueWithIdentifier.ProtoReflect.Descriptor instead. +func (*ValueWithIdentifier) Descriptor() ([]byte, []int) { + return file_settings_proto_rawDescGZIP(), []int{13} +} + +func (x *ValueWithIdentifier) GetIdentifier() *Identifier { + if x != nil { + return x.Identifier + } + return nil +} + +func (x *ValueWithIdentifier) GetValue() *Value { + if x != nil { + return x.Value } return nil } -// generic payloads type Identifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Extension string `protobuf:"bytes,1,opt,name=extension,proto3" json:"extension,omitempty"` - BundleKey string `protobuf:"bytes,2,opt,name=bundle_key,json=bundleKey,proto3" json:"bundle_key,omitempty"` - SettingKey string `protobuf:"bytes,3,opt,name=setting_key,json=settingKey,proto3" json:"setting_key,omitempty"` - AccountUuid string `protobuf:"bytes,4,opt,name=account_uuid,json=accountUuid,proto3" json:"account_uuid,omitempty"` + Extension string `protobuf:"bytes,1,opt,name=extension,proto3" json:"extension,omitempty"` + Bundle string `protobuf:"bytes,2,opt,name=bundle,proto3" json:"bundle,omitempty"` + Setting string `protobuf:"bytes,3,opt,name=setting,proto3" json:"setting,omitempty"` } func (x *Identifier) Reset() { *x = Identifier{} if protoimpl.UnsafeEnabled { - mi := &file_settings_proto_msgTypes[12] + mi := &file_settings_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -621,7 +852,7 @@ func (x *Identifier) String() string { func (*Identifier) ProtoMessage() {} func (x *Identifier) ProtoReflect() protoreflect.Message { - mi := &file_settings_proto_msgTypes[12] + mi := &file_settings_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -634,7 +865,7 @@ func (x *Identifier) ProtoReflect() protoreflect.Message { // Deprecated: Use Identifier.ProtoReflect.Descriptor instead. func (*Identifier) Descriptor() ([]byte, []int) { - return file_settings_proto_rawDescGZIP(), []int{12} + return file_settings_proto_rawDescGZIP(), []int{14} } func (x *Identifier) GetExtension() string { @@ -644,55 +875,46 @@ func (x *Identifier) GetExtension() string { return "" } -func (x *Identifier) GetBundleKey() string { +func (x *Identifier) GetBundle() string { if x != nil { - return x.BundleKey + return x.Bundle } return "" } -func (x *Identifier) GetSettingKey() string { +func (x *Identifier) GetSetting() string { if x != nil { - return x.SettingKey + return x.Setting } return "" } -func (x *Identifier) GetAccountUuid() string { - if x != nil { - return x.AccountUuid - } - return "" -} - -// payloads for settings bundles -type SettingsBundle struct { +type Resource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Identifier *Identifier `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` - DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - Settings []*Setting `protobuf:"bytes,3,rep,name=settings,proto3" json:"settings,omitempty"` + Type Resource_Type `protobuf:"varint,1,opt,name=type,proto3,enum=proto.Resource_Type" json:"type,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } -func (x *SettingsBundle) Reset() { - *x = SettingsBundle{} +func (x *Resource) Reset() { + *x = Resource{} if protoimpl.UnsafeEnabled { - mi := &file_settings_proto_msgTypes[13] + mi := &file_settings_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SettingsBundle) String() string { +func (x *Resource) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SettingsBundle) ProtoMessage() {} +func (*Resource) ProtoMessage() {} -func (x *SettingsBundle) ProtoReflect() protoreflect.Message { - mi := &file_settings_proto_msgTypes[13] +func (x *Resource) ProtoReflect() protoreflect.Message { + mi := &file_settings_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -703,53 +925,143 @@ func (x *SettingsBundle) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SettingsBundle.ProtoReflect.Descriptor instead. -func (*SettingsBundle) Descriptor() ([]byte, []int) { - return file_settings_proto_rawDescGZIP(), []int{13} +// Deprecated: Use Resource.ProtoReflect.Descriptor instead. +func (*Resource) Descriptor() ([]byte, []int) { + return file_settings_proto_rawDescGZIP(), []int{15} } -func (x *SettingsBundle) GetIdentifier() *Identifier { +func (x *Resource) GetType() Resource_Type { if x != nil { - return x.Identifier + return x.Type } - return nil + return Resource_TYPE_UNKNOWN } -func (x *SettingsBundle) GetDisplayName() string { +func (x *Resource) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type Bundle 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"` + Type Bundle_Type `protobuf:"varint,3,opt,name=type,proto3,enum=proto.Bundle_Type" json:"type,omitempty"` + Extension string `protobuf:"bytes,4,opt,name=extension,proto3" json:"extension,omitempty"` + DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Settings []*Setting `protobuf:"bytes,6,rep,name=settings,proto3" json:"settings,omitempty"` + Resource *Resource `protobuf:"bytes,7,opt,name=resource,proto3" json:"resource,omitempty"` +} + +func (x *Bundle) Reset() { + *x = Bundle{} + if protoimpl.UnsafeEnabled { + mi := &file_settings_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Bundle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Bundle) ProtoMessage() {} + +func (x *Bundle) ProtoReflect() protoreflect.Message { + mi := &file_settings_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 Bundle.ProtoReflect.Descriptor instead. +func (*Bundle) Descriptor() ([]byte, []int) { + return file_settings_proto_rawDescGZIP(), []int{16} +} + +func (x *Bundle) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Bundle) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Bundle) GetType() Bundle_Type { + if x != nil { + return x.Type + } + return Bundle_TYPE_UNKNOWN +} + +func (x *Bundle) GetExtension() string { + if x != nil { + return x.Extension + } + return "" +} + +func (x *Bundle) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } -func (x *SettingsBundle) GetSettings() []*Setting { +func (x *Bundle) GetSettings() []*Setting { if x != nil { return x.Settings } return nil } +func (x *Bundle) GetResource() *Resource { + if x != nil { + return x.Resource + } + return nil +} + type Setting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SettingKey string `protobuf:"bytes,1,opt,name=setting_key,json=settingKey,proto3" json:"setting_key,omitempty"` - DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,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"` + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` // Types that are assignable to Value: // *Setting_IntValue // *Setting_StringValue // *Setting_BoolValue // *Setting_SingleChoiceValue // *Setting_MultiChoiceValue - Value isSetting_Value `protobuf_oneof:"value"` + Value isSetting_Value `protobuf_oneof:"value"` + Resource *Resource `protobuf:"bytes,11,opt,name=resource,proto3" json:"resource,omitempty"` } func (x *Setting) Reset() { *x = Setting{} if protoimpl.UnsafeEnabled { - mi := &file_settings_proto_msgTypes[14] + mi := &file_settings_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -762,7 +1074,7 @@ func (x *Setting) String() string { func (*Setting) ProtoMessage() {} func (x *Setting) ProtoReflect() protoreflect.Message { - mi := &file_settings_proto_msgTypes[14] + mi := &file_settings_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -775,12 +1087,19 @@ func (x *Setting) ProtoReflect() protoreflect.Message { // Deprecated: Use Setting.ProtoReflect.Descriptor instead. func (*Setting) Descriptor() ([]byte, []int) { - return file_settings_proto_rawDescGZIP(), []int{14} + return file_settings_proto_rawDescGZIP(), []int{17} } -func (x *Setting) GetSettingKey() string { +func (x *Setting) GetId() string { if x != nil { - return x.SettingKey + return x.Id + } + return "" +} + +func (x *Setting) GetName() string { + if x != nil { + return x.Name } return "" } @@ -806,63 +1125,70 @@ func (m *Setting) GetValue() isSetting_Value { return nil } -func (x *Setting) GetIntValue() *IntSetting { +func (x *Setting) GetIntValue() *Int { if x, ok := x.GetValue().(*Setting_IntValue); ok { return x.IntValue } return nil } -func (x *Setting) GetStringValue() *StringSetting { +func (x *Setting) GetStringValue() *String { if x, ok := x.GetValue().(*Setting_StringValue); ok { return x.StringValue } return nil } -func (x *Setting) GetBoolValue() *BoolSetting { +func (x *Setting) GetBoolValue() *Bool { if x, ok := x.GetValue().(*Setting_BoolValue); ok { return x.BoolValue } return nil } -func (x *Setting) GetSingleChoiceValue() *SingleChoiceListSetting { +func (x *Setting) GetSingleChoiceValue() *SingleChoiceList { if x, ok := x.GetValue().(*Setting_SingleChoiceValue); ok { return x.SingleChoiceValue } return nil } -func (x *Setting) GetMultiChoiceValue() *MultiChoiceListSetting { +func (x *Setting) GetMultiChoiceValue() *MultiChoiceList { if x, ok := x.GetValue().(*Setting_MultiChoiceValue); ok { return x.MultiChoiceValue } return nil } +func (x *Setting) GetResource() *Resource { + if x != nil { + return x.Resource + } + return nil +} + type isSetting_Value interface { isSetting_Value() } type Setting_IntValue struct { - IntValue *IntSetting `protobuf:"bytes,4,opt,name=int_value,json=intValue,proto3,oneof"` + IntValue *Int `protobuf:"bytes,5,opt,name=int_value,json=intValue,proto3,oneof"` } type Setting_StringValue struct { - StringValue *StringSetting `protobuf:"bytes,5,opt,name=string_value,json=stringValue,proto3,oneof"` + StringValue *String `protobuf:"bytes,6,opt,name=string_value,json=stringValue,proto3,oneof"` } type Setting_BoolValue struct { - BoolValue *BoolSetting `protobuf:"bytes,6,opt,name=bool_value,json=boolValue,proto3,oneof"` + BoolValue *Bool `protobuf:"bytes,7,opt,name=bool_value,json=boolValue,proto3,oneof"` } type Setting_SingleChoiceValue struct { - SingleChoiceValue *SingleChoiceListSetting `protobuf:"bytes,7,opt,name=single_choice_value,json=singleChoiceValue,proto3,oneof"` + SingleChoiceValue *SingleChoiceList `protobuf:"bytes,8,opt,name=single_choice_value,json=singleChoiceValue,proto3,oneof"` } type Setting_MultiChoiceValue struct { - MultiChoiceValue *MultiChoiceListSetting `protobuf:"bytes,8,opt,name=multi_choice_value,json=multiChoiceValue,proto3,oneof"` + MultiChoiceValue *MultiChoiceList `protobuf:"bytes,9,opt,name=multi_choice_value,json=multiChoiceValue,proto3,oneof"` } func (*Setting_IntValue) isSetting_Value() {} @@ -875,7 +1201,7 @@ func (*Setting_SingleChoiceValue) isSetting_Value() {} func (*Setting_MultiChoiceValue) isSetting_Value() {} -type IntSetting struct { +type Int struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -887,217 +1213,8 @@ type IntSetting struct { Placeholder string `protobuf:"bytes,5,opt,name=placeholder,proto3" json:"placeholder,omitempty"` } -func (x *IntSetting) Reset() { - *x = IntSetting{} - if protoimpl.UnsafeEnabled { - mi := &file_settings_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *IntSetting) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IntSetting) ProtoMessage() {} - -func (x *IntSetting) ProtoReflect() protoreflect.Message { - mi := &file_settings_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 IntSetting.ProtoReflect.Descriptor instead. -func (*IntSetting) Descriptor() ([]byte, []int) { - return file_settings_proto_rawDescGZIP(), []int{15} -} - -func (x *IntSetting) GetDefault() int64 { - if x != nil { - return x.Default - } - return 0 -} - -func (x *IntSetting) GetMin() int64 { - if x != nil { - return x.Min - } - return 0 -} - -func (x *IntSetting) GetMax() int64 { - if x != nil { - return x.Max - } - return 0 -} - -func (x *IntSetting) GetStep() int64 { - if x != nil { - return x.Step - } - return 0 -} - -func (x *IntSetting) GetPlaceholder() string { - if x != nil { - return x.Placeholder - } - return "" -} - -type StringSetting struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Default string `protobuf:"bytes,1,opt,name=default,proto3" json:"default,omitempty"` - Required bool `protobuf:"varint,2,opt,name=required,proto3" json:"required,omitempty"` - MinLength int32 `protobuf:"varint,3,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` - MaxLength int32 `protobuf:"varint,4,opt,name=max_length,json=maxLength,proto3" json:"max_length,omitempty"` - Placeholder string `protobuf:"bytes,5,opt,name=placeholder,proto3" json:"placeholder,omitempty"` -} - -func (x *StringSetting) Reset() { - *x = StringSetting{} - if protoimpl.UnsafeEnabled { - mi := &file_settings_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StringSetting) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StringSetting) ProtoMessage() {} - -func (x *StringSetting) ProtoReflect() protoreflect.Message { - mi := &file_settings_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 StringSetting.ProtoReflect.Descriptor instead. -func (*StringSetting) Descriptor() ([]byte, []int) { - return file_settings_proto_rawDescGZIP(), []int{16} -} - -func (x *StringSetting) GetDefault() string { - if x != nil { - return x.Default - } - return "" -} - -func (x *StringSetting) GetRequired() bool { - if x != nil { - return x.Required - } - return false -} - -func (x *StringSetting) GetMinLength() int32 { - if x != nil { - return x.MinLength - } - return 0 -} - -func (x *StringSetting) GetMaxLength() int32 { - if x != nil { - return x.MaxLength - } - return 0 -} - -func (x *StringSetting) GetPlaceholder() string { - if x != nil { - return x.Placeholder - } - return "" -} - -type BoolSetting struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Default bool `protobuf:"varint,1,opt,name=default,proto3" json:"default,omitempty"` - Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"` -} - -func (x *BoolSetting) Reset() { - *x = BoolSetting{} - if protoimpl.UnsafeEnabled { - mi := &file_settings_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BoolSetting) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BoolSetting) ProtoMessage() {} - -func (x *BoolSetting) ProtoReflect() protoreflect.Message { - mi := &file_settings_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 BoolSetting.ProtoReflect.Descriptor instead. -func (*BoolSetting) Descriptor() ([]byte, []int) { - return file_settings_proto_rawDescGZIP(), []int{17} -} - -func (x *BoolSetting) GetDefault() bool { - if x != nil { - return x.Default - } - return false -} - -func (x *BoolSetting) GetLabel() string { - if x != nil { - return x.Label - } - return "" -} - -type SingleChoiceListSetting struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Options []*ListOption `protobuf:"bytes,1,rep,name=options,proto3" json:"options,omitempty"` -} - -func (x *SingleChoiceListSetting) Reset() { - *x = SingleChoiceListSetting{} +func (x *Int) Reset() { + *x = Int{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1105,13 +1222,13 @@ func (x *SingleChoiceListSetting) Reset() { } } -func (x *SingleChoiceListSetting) String() string { +func (x *Int) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SingleChoiceListSetting) ProtoMessage() {} +func (*Int) ProtoMessage() {} -func (x *SingleChoiceListSetting) ProtoReflect() protoreflect.Message { +func (x *Int) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1123,28 +1240,60 @@ func (x *SingleChoiceListSetting) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SingleChoiceListSetting.ProtoReflect.Descriptor instead. -func (*SingleChoiceListSetting) Descriptor() ([]byte, []int) { +// Deprecated: Use Int.ProtoReflect.Descriptor instead. +func (*Int) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{18} } -func (x *SingleChoiceListSetting) GetOptions() []*ListOption { +func (x *Int) GetDefault() int64 { if x != nil { - return x.Options + return x.Default } - return nil + return 0 } -type MultiChoiceListSetting struct { +func (x *Int) GetMin() int64 { + if x != nil { + return x.Min + } + return 0 +} + +func (x *Int) GetMax() int64 { + if x != nil { + return x.Max + } + return 0 +} + +func (x *Int) GetStep() int64 { + if x != nil { + return x.Step + } + return 0 +} + +func (x *Int) GetPlaceholder() string { + if x != nil { + return x.Placeholder + } + return "" +} + +type String struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Options []*ListOption `protobuf:"bytes,1,rep,name=options,proto3" json:"options,omitempty"` + Default string `protobuf:"bytes,1,opt,name=default,proto3" json:"default,omitempty"` + Required bool `protobuf:"varint,2,opt,name=required,proto3" json:"required,omitempty"` + MinLength int32 `protobuf:"varint,3,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` + MaxLength int32 `protobuf:"varint,4,opt,name=max_length,json=maxLength,proto3" json:"max_length,omitempty"` + Placeholder string `protobuf:"bytes,5,opt,name=placeholder,proto3" json:"placeholder,omitempty"` } -func (x *MultiChoiceListSetting) Reset() { - *x = MultiChoiceListSetting{} +func (x *String) Reset() { + *x = String{} if protoimpl.UnsafeEnabled { mi := &file_settings_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1152,13 +1301,13 @@ func (x *MultiChoiceListSetting) Reset() { } } -func (x *MultiChoiceListSetting) String() string { +func (x *String) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MultiChoiceListSetting) ProtoMessage() {} +func (*String) ProtoMessage() {} -func (x *MultiChoiceListSetting) ProtoReflect() protoreflect.Message { +func (x *String) ProtoReflect() protoreflect.Message { mi := &file_settings_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1170,12 +1319,189 @@ func (x *MultiChoiceListSetting) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MultiChoiceListSetting.ProtoReflect.Descriptor instead. -func (*MultiChoiceListSetting) Descriptor() ([]byte, []int) { +// Deprecated: Use String.ProtoReflect.Descriptor instead. +func (*String) Descriptor() ([]byte, []int) { return file_settings_proto_rawDescGZIP(), []int{19} } -func (x *MultiChoiceListSetting) GetOptions() []*ListOption { +func (x *String) GetDefault() string { + if x != nil { + return x.Default + } + return "" +} + +func (x *String) GetRequired() bool { + if x != nil { + return x.Required + } + return false +} + +func (x *String) GetMinLength() int32 { + if x != nil { + return x.MinLength + } + return 0 +} + +func (x *String) GetMaxLength() int32 { + if x != nil { + return x.MaxLength + } + return 0 +} + +func (x *String) GetPlaceholder() string { + if x != nil { + return x.Placeholder + } + return "" +} + +type Bool struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Default bool `protobuf:"varint,1,opt,name=default,proto3" json:"default,omitempty"` + Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"` +} + +func (x *Bool) Reset() { + *x = Bool{} + if protoimpl.UnsafeEnabled { + mi := &file_settings_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Bool) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Bool) ProtoMessage() {} + +func (x *Bool) ProtoReflect() protoreflect.Message { + mi := &file_settings_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 Bool.ProtoReflect.Descriptor instead. +func (*Bool) Descriptor() ([]byte, []int) { + return file_settings_proto_rawDescGZIP(), []int{20} +} + +func (x *Bool) GetDefault() bool { + if x != nil { + return x.Default + } + return false +} + +func (x *Bool) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +type SingleChoiceList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Options []*ListOption `protobuf:"bytes,1,rep,name=options,proto3" json:"options,omitempty"` +} + +func (x *SingleChoiceList) Reset() { + *x = SingleChoiceList{} + if protoimpl.UnsafeEnabled { + mi := &file_settings_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SingleChoiceList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SingleChoiceList) ProtoMessage() {} + +func (x *SingleChoiceList) ProtoReflect() protoreflect.Message { + mi := &file_settings_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 SingleChoiceList.ProtoReflect.Descriptor instead. +func (*SingleChoiceList) Descriptor() ([]byte, []int) { + return file_settings_proto_rawDescGZIP(), []int{21} +} + +func (x *SingleChoiceList) GetOptions() []*ListOption { + if x != nil { + return x.Options + } + return nil +} + +type MultiChoiceList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Options []*ListOption `protobuf:"bytes,1,rep,name=options,proto3" json:"options,omitempty"` +} + +func (x *MultiChoiceList) Reset() { + *x = MultiChoiceList{} + if protoimpl.UnsafeEnabled { + mi := &file_settings_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MultiChoiceList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MultiChoiceList) ProtoMessage() {} + +func (x *MultiChoiceList) ProtoReflect() protoreflect.Message { + mi := &file_settings_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 MultiChoiceList.ProtoReflect.Descriptor instead. +func (*MultiChoiceList) Descriptor() ([]byte, []int) { + return file_settings_proto_rawDescGZIP(), []int{22} +} + +func (x *MultiChoiceList) GetOptions() []*ListOption { if x != nil { return x.Options } @@ -1195,7 +1521,7 @@ type ListOption struct { func (x *ListOption) Reset() { *x = ListOption{} if protoimpl.UnsafeEnabled { - mi := &file_settings_proto_msgTypes[20] + mi := &file_settings_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1208,7 +1534,7 @@ func (x *ListOption) String() string { func (*ListOption) ProtoMessage() {} func (x *ListOption) ProtoReflect() protoreflect.Message { - mi := &file_settings_proto_msgTypes[20] + mi := &file_settings_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1221,7 +1547,7 @@ func (x *ListOption) ProtoReflect() protoreflect.Message { // Deprecated: Use ListOption.ProtoReflect.Descriptor instead. func (*ListOption) Descriptor() ([]byte, []int) { - return file_settings_proto_rawDescGZIP(), []int{20} + return file_settings_proto_rawDescGZIP(), []int{23} } func (x *ListOption) GetValue() *ListOptionValue { @@ -1245,38 +1571,43 @@ func (x *ListOption) GetDisplayValue() string { return "" } -// payloads for settings values -type SettingsValue struct { +type Value struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Identifier *Identifier `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` + // id is the id of the Value. It is generated on saving it. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + BundleId string `protobuf:"bytes,2,opt,name=bundle_id,json=bundleId,proto3" json:"bundle_id,omitempty"` + // setting_id is the id of the setting from within its bundle. + SettingId string `protobuf:"bytes,3,opt,name=setting_id,json=settingId,proto3" json:"setting_id,omitempty"` + AccountUuid string `protobuf:"bytes,4,opt,name=account_uuid,json=accountUuid,proto3" json:"account_uuid,omitempty"` + Resource *Resource `protobuf:"bytes,5,opt,name=resource,proto3" json:"resource,omitempty"` // Types that are assignable to Value: - // *SettingsValue_BoolValue - // *SettingsValue_IntValue - // *SettingsValue_StringValue - // *SettingsValue_ListValue - Value isSettingsValue_Value `protobuf_oneof:"value"` + // *Value_BoolValue + // *Value_IntValue + // *Value_StringValue + // *Value_ListValue + Value isValue_Value `protobuf_oneof:"value"` } -func (x *SettingsValue) Reset() { - *x = SettingsValue{} +func (x *Value) Reset() { + *x = Value{} if protoimpl.UnsafeEnabled { - mi := &file_settings_proto_msgTypes[21] + mi := &file_settings_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SettingsValue) String() string { +func (x *Value) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SettingsValue) ProtoMessage() {} +func (*Value) ProtoMessage() {} -func (x *SettingsValue) ProtoReflect() protoreflect.Message { - mi := &file_settings_proto_msgTypes[21] +func (x *Value) ProtoReflect() protoreflect.Message { + mi := &file_settings_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1287,80 +1618,108 @@ func (x *SettingsValue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SettingsValue.ProtoReflect.Descriptor instead. -func (*SettingsValue) Descriptor() ([]byte, []int) { - return file_settings_proto_rawDescGZIP(), []int{21} +// Deprecated: Use Value.ProtoReflect.Descriptor instead. +func (*Value) Descriptor() ([]byte, []int) { + return file_settings_proto_rawDescGZIP(), []int{24} } -func (x *SettingsValue) GetIdentifier() *Identifier { +func (x *Value) GetId() string { if x != nil { - return x.Identifier + return x.Id + } + return "" +} + +func (x *Value) GetBundleId() string { + if x != nil { + return x.BundleId + } + return "" +} + +func (x *Value) GetSettingId() string { + if x != nil { + return x.SettingId + } + return "" +} + +func (x *Value) GetAccountUuid() string { + if x != nil { + return x.AccountUuid + } + return "" +} + +func (x *Value) GetResource() *Resource { + if x != nil { + return x.Resource } return nil } -func (m *SettingsValue) GetValue() isSettingsValue_Value { +func (m *Value) GetValue() isValue_Value { if m != nil { return m.Value } return nil } -func (x *SettingsValue) GetBoolValue() bool { - if x, ok := x.GetValue().(*SettingsValue_BoolValue); ok { +func (x *Value) GetBoolValue() bool { + if x, ok := x.GetValue().(*Value_BoolValue); ok { return x.BoolValue } return false } -func (x *SettingsValue) GetIntValue() int64 { - if x, ok := x.GetValue().(*SettingsValue_IntValue); ok { +func (x *Value) GetIntValue() int64 { + if x, ok := x.GetValue().(*Value_IntValue); ok { return x.IntValue } return 0 } -func (x *SettingsValue) GetStringValue() string { - if x, ok := x.GetValue().(*SettingsValue_StringValue); ok { +func (x *Value) GetStringValue() string { + if x, ok := x.GetValue().(*Value_StringValue); ok { return x.StringValue } return "" } -func (x *SettingsValue) GetListValue() *ListValue { - if x, ok := x.GetValue().(*SettingsValue_ListValue); ok { +func (x *Value) GetListValue() *ListValue { + if x, ok := x.GetValue().(*Value_ListValue); ok { return x.ListValue } return nil } -type isSettingsValue_Value interface { - isSettingsValue_Value() +type isValue_Value interface { + isValue_Value() } -type SettingsValue_BoolValue struct { - BoolValue bool `protobuf:"varint,2,opt,name=bool_value,json=boolValue,proto3,oneof"` +type Value_BoolValue struct { + BoolValue bool `protobuf:"varint,6,opt,name=bool_value,json=boolValue,proto3,oneof"` } -type SettingsValue_IntValue struct { - IntValue int64 `protobuf:"varint,3,opt,name=int_value,json=intValue,proto3,oneof"` +type Value_IntValue struct { + IntValue int64 `protobuf:"varint,7,opt,name=int_value,json=intValue,proto3,oneof"` } -type SettingsValue_StringValue struct { - StringValue string `protobuf:"bytes,4,opt,name=string_value,json=stringValue,proto3,oneof"` +type Value_StringValue struct { + StringValue string `protobuf:"bytes,8,opt,name=string_value,json=stringValue,proto3,oneof"` } -type SettingsValue_ListValue struct { - ListValue *ListValue `protobuf:"bytes,5,opt,name=list_value,json=listValue,proto3,oneof"` +type Value_ListValue struct { + ListValue *ListValue `protobuf:"bytes,9,opt,name=list_value,json=listValue,proto3,oneof"` } -func (*SettingsValue_BoolValue) isSettingsValue_Value() {} +func (*Value_BoolValue) isValue_Value() {} -func (*SettingsValue_IntValue) isSettingsValue_Value() {} +func (*Value_IntValue) isValue_Value() {} -func (*SettingsValue_StringValue) isSettingsValue_Value() {} +func (*Value_StringValue) isValue_Value() {} -func (*SettingsValue_ListValue) isSettingsValue_Value() {} +func (*Value_ListValue) isValue_Value() {} type ListValue struct { state protoimpl.MessageState @@ -1373,7 +1732,7 @@ type ListValue struct { func (x *ListValue) Reset() { *x = ListValue{} if protoimpl.UnsafeEnabled { - mi := &file_settings_proto_msgTypes[22] + mi := &file_settings_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1386,7 +1745,7 @@ func (x *ListValue) String() string { func (*ListValue) ProtoMessage() {} func (x *ListValue) ProtoReflect() protoreflect.Message { - mi := &file_settings_proto_msgTypes[22] + mi := &file_settings_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1399,7 +1758,7 @@ func (x *ListValue) ProtoReflect() protoreflect.Message { // Deprecated: Use ListValue.ProtoReflect.Descriptor instead. func (*ListValue) Descriptor() ([]byte, []int) { - return file_settings_proto_rawDescGZIP(), []int{22} + return file_settings_proto_rawDescGZIP(), []int{25} } func (x *ListValue) GetValues() []*ListOptionValue { @@ -1423,7 +1782,7 @@ type ListOptionValue struct { func (x *ListOptionValue) Reset() { *x = ListOptionValue{} if protoimpl.UnsafeEnabled { - mi := &file_settings_proto_msgTypes[23] + mi := &file_settings_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1436,7 +1795,7 @@ func (x *ListOptionValue) String() string { func (*ListOptionValue) ProtoMessage() {} func (x *ListOptionValue) ProtoReflect() protoreflect.Message { - mi := &file_settings_proto_msgTypes[23] + mi := &file_settings_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1449,7 +1808,7 @@ func (x *ListOptionValue) ProtoReflect() protoreflect.Message { // Deprecated: Use ListOptionValue.ProtoReflect.Descriptor instead. func (*ListOptionValue) Descriptor() ([]byte, []int) { - return file_settings_proto_rawDescGZIP(), []int{23} + return file_settings_proto_rawDescGZIP(), []int{26} } func (m *ListOptionValue) GetOption() isListOptionValue_Option { @@ -1489,54 +1848,6 @@ func (*ListOptionValue_StringValue) isListOptionValue_Option() {} func (*ListOptionValue_IntValue) isListOptionValue_Option() {} -// only meant for serialization -type SettingsValues struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Values map[string]*SettingsValue `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} - -func (x *SettingsValues) Reset() { - *x = SettingsValues{} - if protoimpl.UnsafeEnabled { - mi := &file_settings_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SettingsValues) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SettingsValues) ProtoMessage() {} - -func (x *SettingsValues) ProtoReflect() protoreflect.Message { - mi := &file_settings_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 SettingsValues.ProtoReflect.Descriptor instead. -func (*SettingsValues) Descriptor() ([]byte, []int) { - return file_settings_proto_rawDescGZIP(), []int{24} -} - -func (x *SettingsValues) GetValues() map[string]*SettingsValue { - if x != nil { - return x.Values - } - return nil -} - var File_settings_proto protoreflect.FileDescriptor var file_settings_proto_rawDesc = []byte{ @@ -1546,263 +1857,273 @@ var file_settings_proto_rawDesc = []byte{ 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, 0x22, 0x5b, 0x0a, 0x19, 0x53, 0x61, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x3e, 0x0a, 0x0f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x52, 0x0e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x22, 0x5c, 0x0a, 0x1a, 0x53, 0x61, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, - 0x0a, 0x0f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x0e, - 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x4d, - 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0a, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x5b, 0x0a, - 0x19, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0f, 0x73, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x0e, 0x73, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x4f, 0x0a, 0x1a, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, + 0x6f, 0x74, 0x6f, 0x22, 0x3a, 0x0a, 0x11, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, + 0x3b, 0x0a, 0x12, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x2f, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x3a, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x37, 0x0a, 0x12, 0x4c, 0x69, 0x73, + 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, + 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x07, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x22, 0x36, 0x0a, 0x10, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x45, 0x0a, 0x11, 0x53, 0x61, + 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x57, 0x69, 0x74, 0x68, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x21, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x22, 0x44, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x53, 0x0a, 0x11, 0x4c, 0x69, + 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, 0x64, 0x22, + 0x48, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x66, 0x0a, 0x22, 0x47, 0x65, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x79, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, + 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x49, + 0x64, 0x22, 0x6c, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, - 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x5f, 0x0a, 0x1b, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x10, 0x73, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x22, 0x57, 0x0a, 0x18, - 0x53, 0x61, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x58, 0x0a, 0x19, 0x53, 0x61, 0x76, 0x65, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x0d, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x4c, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0a, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x57, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0e, 0x73, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4e, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, - 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, - 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x75, 0x69, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x08, - 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x08, - 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xbb, 0x03, 0x0a, 0x07, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x4e, 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, 0x12, 0x30, 0x0a, 0x09, 0x69, 0x6e, - 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0c, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x48, - 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x50, 0x0a, 0x13, - 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x11, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4d, - 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x10, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x69, - 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, - 0x6d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, - 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x22, 0xa5, 0x01, 0x0a, 0x0d, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, - 0x72, 0x22, 0x3d, 0x0a, 0x0b, 0x42, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x22, 0x46, 0x0a, 0x17, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2b, 0x0a, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x45, 0x0a, 0x16, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x12, 0x2b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x79, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, + 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x5c, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1c, 0x0a, + 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0xd1, 0x01, + 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x22, 0x8a, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, + 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x01, + 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x02, 0x12, + 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x10, 0x03, 0x12, + 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x10, + 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x55, 0x4e, 0x44, 0x4c, 0x45, + 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, + 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, + 0x07, 0x22, 0xa9, 0x02, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 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, + 0x12, 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 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, 0x2a, 0x0a, 0x08, 0x73, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x73, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2b, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x22, 0x39, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x10, 0x02, 0x22, 0xc8, 0x03, + 0x0a, 0x07, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 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, 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, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, + 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x2c, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6f, + 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x49, 0x0a, 0x13, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x12, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, + 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x79, 0x0a, 0x03, 0x49, 0x6e, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, + 0x64, 0x65, 0x72, 0x22, 0x9e, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, + 0x6c, 0x64, 0x65, 0x72, 0x22, 0x36, 0x0a, 0x04, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3f, 0x0a, 0x10, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x2b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3e, 0x0a, + 0x0f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x2b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x79, 0x0a, + 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc4, 0x02, 0x0a, 0x05, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x21, + 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x2b, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, + 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, + 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x73, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x3b, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe3, 0x01, 0x0a, 0x0d, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x31, 0x0a, 0x0a, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, - 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x5f, 0x0a, 0x0f, + 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, - 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x3b, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x5f, 0x0a, - 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9c, - 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x39, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x4f, 0x0a, 0x0b, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x32, 0x9d, 0x03, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xd3, 0x02, 0x0a, 0x0d, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x82, 0x01, 0x0a, 0x12, 0x53, 0x61, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, - 0x61, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2d, 0x73, 0x61, 0x76, - 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2d, 0x67, 0x65, - 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x86, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x32, 0x8f, 0x03, - 0x0a, 0x0c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, - 0x0a, 0x11, 0x53, 0x61, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x61, 0x76, 0x65, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x61, 0x76, - 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x2f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2d, 0x73, 0x61, 0x76, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7a, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, + 0x6a, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2d, 0x73, 0x61, 0x76, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x66, 0x0a, 0x09, 0x47, + 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2d, 0x67, 0x65, 0x74, + 0x3a, 0x01, 0x2a, 0x12, 0x6e, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x2d, 0x6c, 0x69, 0x73, 0x74, + 0x3a, 0x01, 0x2a, 0x32, 0xe8, 0x03, 0x0a, 0x0c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x09, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2d, 0x73, 0x61, 0x76, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x62, 0x0a, 0x08, + 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x2f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2d, 0x67, 0x65, 0x74, 0x3a, 0x01, 0x2a, + 0x12, 0x6a, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x18, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2d, 0x67, 0x65, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x82, 0x01, 0x0a, 0x12, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x2f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x42, - 0xaf, 0x02, 0x5a, 0x07, 0x2e, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x92, 0x41, 0xa2, 0x02, 0x12, - 0xae, 0x01, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x50, 0x0a, 0x0d, - 0x6f, 0x77, 0x6e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x20, 0x47, 0x6d, 0x62, 0x48, 0x12, 0x29, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x6f, 0x77, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6f, 0x63, 0x69, 0x73, 0x2d, - 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x40, 0x6f, 0x77, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x2a, 0x4b, - 0x0a, 0x0a, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x12, 0x3d, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x6f, 0x77, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6f, 0x63, 0x69, 0x73, 0x2d, 0x73, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x32, 0x03, 0x31, 0x2e, 0x30, - 0x2a, 0x02, 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x72, 0x47, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x65, - 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x20, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x12, 0x33, 0x68, 0x74, - 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x77, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x69, 0x6f, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x6f, 0x63, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x75, 0x65, 0x73, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x9f, 0x01, 0x0a, + 0x1b, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x79, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x29, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x79, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x22, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x30, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x2d, 0x67, 0x65, 0x74, 0x2d, 0x62, 0x79, 0x2d, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x42, 0xba, + 0x02, 0x5a, 0x12, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x30, 0x3b, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x92, 0x41, 0xa2, 0x02, 0x12, 0xae, 0x01, 0x0a, 0x08, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x50, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x20, 0x47, 0x6d, 0x62, 0x48, 0x12, 0x29, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, + 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x77, 0x6e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6f, 0x63, 0x69, 0x73, 0x2d, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x1a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x40, 0x6f, 0x77, 0x6e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x2a, 0x4b, 0x0a, 0x0a, 0x41, 0x70, 0x61, 0x63, + 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x12, 0x3d, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x77, 0x6e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2f, 0x6f, 0x63, 0x69, 0x73, 0x2d, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x4c, 0x49, + 0x43, 0x45, 0x4e, 0x53, 0x45, 0x32, 0x03, 0x31, 0x2e, 0x30, 0x2a, 0x02, 0x01, 0x02, 0x32, 0x10, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, + 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, + 0x6f, 0x6e, 0x72, 0x47, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x20, + 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x12, 0x33, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, + 0x77, 0x6e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x69, + 0x6f, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6f, 0x63, 0x69, + 0x73, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -1817,80 +2138,85 @@ func file_settings_proto_rawDescGZIP() []byte { return file_settings_proto_rawDescData } -var file_settings_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_settings_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_settings_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_settings_proto_goTypes = []interface{}{ - (*SaveSettingsBundleRequest)(nil), // 0: proto.SaveSettingsBundleRequest - (*SaveSettingsBundleResponse)(nil), // 1: proto.SaveSettingsBundleResponse - (*GetSettingsBundleRequest)(nil), // 2: proto.GetSettingsBundleRequest - (*GetSettingsBundleResponse)(nil), // 3: proto.GetSettingsBundleResponse - (*ListSettingsBundlesRequest)(nil), // 4: proto.ListSettingsBundlesRequest - (*ListSettingsBundlesResponse)(nil), // 5: proto.ListSettingsBundlesResponse - (*SaveSettingsValueRequest)(nil), // 6: proto.SaveSettingsValueRequest - (*SaveSettingsValueResponse)(nil), // 7: proto.SaveSettingsValueResponse - (*GetSettingsValueRequest)(nil), // 8: proto.GetSettingsValueRequest - (*GetSettingsValueResponse)(nil), // 9: proto.GetSettingsValueResponse - (*ListSettingsValuesRequest)(nil), // 10: proto.ListSettingsValuesRequest - (*ListSettingsValuesResponse)(nil), // 11: proto.ListSettingsValuesResponse - (*Identifier)(nil), // 12: proto.Identifier - (*SettingsBundle)(nil), // 13: proto.SettingsBundle - (*Setting)(nil), // 14: proto.Setting - (*IntSetting)(nil), // 15: proto.IntSetting - (*StringSetting)(nil), // 16: proto.StringSetting - (*BoolSetting)(nil), // 17: proto.BoolSetting - (*SingleChoiceListSetting)(nil), // 18: proto.SingleChoiceListSetting - (*MultiChoiceListSetting)(nil), // 19: proto.MultiChoiceListSetting - (*ListOption)(nil), // 20: proto.ListOption - (*SettingsValue)(nil), // 21: proto.SettingsValue - (*ListValue)(nil), // 22: proto.ListValue - (*ListOptionValue)(nil), // 23: proto.ListOptionValue - (*SettingsValues)(nil), // 24: proto.SettingsValues - nil, // 25: proto.SettingsValues.ValuesEntry + (Resource_Type)(0), // 0: proto.Resource.Type + (Bundle_Type)(0), // 1: proto.Bundle.Type + (*SaveBundleRequest)(nil), // 2: proto.SaveBundleRequest + (*SaveBundleResponse)(nil), // 3: proto.SaveBundleResponse + (*GetBundleRequest)(nil), // 4: proto.GetBundleRequest + (*GetBundleResponse)(nil), // 5: proto.GetBundleResponse + (*ListBundlesRequest)(nil), // 6: proto.ListBundlesRequest + (*ListBundlesResponse)(nil), // 7: proto.ListBundlesResponse + (*SaveValueRequest)(nil), // 8: proto.SaveValueRequest + (*SaveValueResponse)(nil), // 9: proto.SaveValueResponse + (*GetValueRequest)(nil), // 10: proto.GetValueRequest + (*GetValueResponse)(nil), // 11: proto.GetValueResponse + (*ListValuesRequest)(nil), // 12: proto.ListValuesRequest + (*ListValuesResponse)(nil), // 13: proto.ListValuesResponse + (*GetValueByUniqueIdentifiersRequest)(nil), // 14: proto.GetValueByUniqueIdentifiersRequest + (*ValueWithIdentifier)(nil), // 15: proto.ValueWithIdentifier + (*Identifier)(nil), // 16: proto.Identifier + (*Resource)(nil), // 17: proto.Resource + (*Bundle)(nil), // 18: proto.Bundle + (*Setting)(nil), // 19: proto.Setting + (*Int)(nil), // 20: proto.Int + (*String)(nil), // 21: proto.String + (*Bool)(nil), // 22: proto.Bool + (*SingleChoiceList)(nil), // 23: proto.SingleChoiceList + (*MultiChoiceList)(nil), // 24: proto.MultiChoiceList + (*ListOption)(nil), // 25: proto.ListOption + (*Value)(nil), // 26: proto.Value + (*ListValue)(nil), // 27: proto.ListValue + (*ListOptionValue)(nil), // 28: proto.ListOptionValue } var file_settings_proto_depIdxs = []int32{ - 13, // 0: proto.SaveSettingsBundleRequest.settings_bundle:type_name -> proto.SettingsBundle - 13, // 1: proto.SaveSettingsBundleResponse.settings_bundle:type_name -> proto.SettingsBundle - 12, // 2: proto.GetSettingsBundleRequest.identifier:type_name -> proto.Identifier - 13, // 3: proto.GetSettingsBundleResponse.settings_bundle:type_name -> proto.SettingsBundle - 12, // 4: proto.ListSettingsBundlesRequest.identifier:type_name -> proto.Identifier - 13, // 5: proto.ListSettingsBundlesResponse.settings_bundles:type_name -> proto.SettingsBundle - 21, // 6: proto.SaveSettingsValueRequest.settings_value:type_name -> proto.SettingsValue - 21, // 7: proto.SaveSettingsValueResponse.settings_value:type_name -> proto.SettingsValue - 12, // 8: proto.GetSettingsValueRequest.identifier:type_name -> proto.Identifier - 21, // 9: proto.GetSettingsValueResponse.settings_value:type_name -> proto.SettingsValue - 12, // 10: proto.ListSettingsValuesRequest.identifier:type_name -> proto.Identifier - 21, // 11: proto.ListSettingsValuesResponse.settings_values:type_name -> proto.SettingsValue - 12, // 12: proto.SettingsBundle.identifier:type_name -> proto.Identifier - 14, // 13: proto.SettingsBundle.settings:type_name -> proto.Setting - 15, // 14: proto.Setting.int_value:type_name -> proto.IntSetting - 16, // 15: proto.Setting.string_value:type_name -> proto.StringSetting - 17, // 16: proto.Setting.bool_value:type_name -> proto.BoolSetting - 18, // 17: proto.Setting.single_choice_value:type_name -> proto.SingleChoiceListSetting - 19, // 18: proto.Setting.multi_choice_value:type_name -> proto.MultiChoiceListSetting - 20, // 19: proto.SingleChoiceListSetting.options:type_name -> proto.ListOption - 20, // 20: proto.MultiChoiceListSetting.options:type_name -> proto.ListOption - 23, // 21: proto.ListOption.value:type_name -> proto.ListOptionValue - 12, // 22: proto.SettingsValue.identifier:type_name -> proto.Identifier - 22, // 23: proto.SettingsValue.list_value:type_name -> proto.ListValue - 23, // 24: proto.ListValue.values:type_name -> proto.ListOptionValue - 25, // 25: proto.SettingsValues.values:type_name -> proto.SettingsValues.ValuesEntry - 21, // 26: proto.SettingsValues.ValuesEntry.value:type_name -> proto.SettingsValue - 0, // 27: proto.BundleService.SaveSettingsBundle:input_type -> proto.SaveSettingsBundleRequest - 2, // 28: proto.BundleService.GetSettingsBundle:input_type -> proto.GetSettingsBundleRequest - 4, // 29: proto.BundleService.ListSettingsBundles:input_type -> proto.ListSettingsBundlesRequest - 6, // 30: proto.ValueService.SaveSettingsValue:input_type -> proto.SaveSettingsValueRequest - 8, // 31: proto.ValueService.GetSettingsValue:input_type -> proto.GetSettingsValueRequest - 10, // 32: proto.ValueService.ListSettingsValues:input_type -> proto.ListSettingsValuesRequest - 1, // 33: proto.BundleService.SaveSettingsBundle:output_type -> proto.SaveSettingsBundleResponse - 3, // 34: proto.BundleService.GetSettingsBundle:output_type -> proto.GetSettingsBundleResponse - 5, // 35: proto.BundleService.ListSettingsBundles:output_type -> proto.ListSettingsBundlesResponse - 7, // 36: proto.ValueService.SaveSettingsValue:output_type -> proto.SaveSettingsValueResponse - 9, // 37: proto.ValueService.GetSettingsValue:output_type -> proto.GetSettingsValueResponse - 11, // 38: proto.ValueService.ListSettingsValues:output_type -> proto.ListSettingsValuesResponse - 33, // [33:39] is the sub-list for method output_type - 27, // [27:33] is the sub-list for method input_type - 27, // [27:27] is the sub-list for extension type_name - 27, // [27:27] is the sub-list for extension extendee - 0, // [0:27] is the sub-list for field type_name + 18, // 0: proto.SaveBundleRequest.bundle:type_name -> proto.Bundle + 18, // 1: proto.SaveBundleResponse.bundle:type_name -> proto.Bundle + 18, // 2: proto.GetBundleResponse.bundle:type_name -> proto.Bundle + 18, // 3: proto.ListBundlesResponse.bundles:type_name -> proto.Bundle + 26, // 4: proto.SaveValueRequest.value:type_name -> proto.Value + 15, // 5: proto.SaveValueResponse.value:type_name -> proto.ValueWithIdentifier + 15, // 6: proto.GetValueResponse.value:type_name -> proto.ValueWithIdentifier + 15, // 7: proto.ListValuesResponse.values:type_name -> proto.ValueWithIdentifier + 16, // 8: proto.ValueWithIdentifier.identifier:type_name -> proto.Identifier + 26, // 9: proto.ValueWithIdentifier.value:type_name -> proto.Value + 0, // 10: proto.Resource.type:type_name -> proto.Resource.Type + 1, // 11: proto.Bundle.type:type_name -> proto.Bundle.Type + 19, // 12: proto.Bundle.settings:type_name -> proto.Setting + 17, // 13: proto.Bundle.resource:type_name -> proto.Resource + 20, // 14: proto.Setting.int_value:type_name -> proto.Int + 21, // 15: proto.Setting.string_value:type_name -> proto.String + 22, // 16: proto.Setting.bool_value:type_name -> proto.Bool + 23, // 17: proto.Setting.single_choice_value:type_name -> proto.SingleChoiceList + 24, // 18: proto.Setting.multi_choice_value:type_name -> proto.MultiChoiceList + 17, // 19: proto.Setting.resource:type_name -> proto.Resource + 25, // 20: proto.SingleChoiceList.options:type_name -> proto.ListOption + 25, // 21: proto.MultiChoiceList.options:type_name -> proto.ListOption + 28, // 22: proto.ListOption.value:type_name -> proto.ListOptionValue + 17, // 23: proto.Value.resource:type_name -> proto.Resource + 27, // 24: proto.Value.list_value:type_name -> proto.ListValue + 28, // 25: proto.ListValue.values:type_name -> proto.ListOptionValue + 2, // 26: proto.BundleService.SaveBundle:input_type -> proto.SaveBundleRequest + 4, // 27: proto.BundleService.GetBundle:input_type -> proto.GetBundleRequest + 6, // 28: proto.BundleService.ListBundles:input_type -> proto.ListBundlesRequest + 8, // 29: proto.ValueService.SaveValue:input_type -> proto.SaveValueRequest + 10, // 30: proto.ValueService.GetValue:input_type -> proto.GetValueRequest + 12, // 31: proto.ValueService.ListValues:input_type -> proto.ListValuesRequest + 14, // 32: proto.ValueService.GetValueByUniqueIdentifiers:input_type -> proto.GetValueByUniqueIdentifiersRequest + 3, // 33: proto.BundleService.SaveBundle:output_type -> proto.SaveBundleResponse + 5, // 34: proto.BundleService.GetBundle:output_type -> proto.GetBundleResponse + 7, // 35: proto.BundleService.ListBundles:output_type -> proto.ListBundlesResponse + 9, // 36: proto.ValueService.SaveValue:output_type -> proto.SaveValueResponse + 11, // 37: proto.ValueService.GetValue:output_type -> proto.GetValueResponse + 13, // 38: proto.ValueService.ListValues:output_type -> proto.ListValuesResponse + 11, // 39: proto.ValueService.GetValueByUniqueIdentifiers:output_type -> proto.GetValueResponse + 33, // [33:40] is the sub-list for method output_type + 26, // [26:33] is the sub-list for method input_type + 26, // [26:26] is the sub-list for extension type_name + 26, // [26:26] is the sub-list for extension extendee + 0, // [0:26] is the sub-list for field type_name } func init() { file_settings_proto_init() } @@ -1900,7 +2226,7 @@ func file_settings_proto_init() { } if !protoimpl.UnsafeEnabled { file_settings_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SaveSettingsBundleRequest); i { + switch v := v.(*SaveBundleRequest); i { case 0: return &v.state case 1: @@ -1912,7 +2238,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SaveSettingsBundleResponse); i { + switch v := v.(*SaveBundleResponse); i { case 0: return &v.state case 1: @@ -1924,7 +2250,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSettingsBundleRequest); i { + switch v := v.(*GetBundleRequest); i { case 0: return &v.state case 1: @@ -1936,7 +2262,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSettingsBundleResponse); i { + switch v := v.(*GetBundleResponse); i { case 0: return &v.state case 1: @@ -1948,7 +2274,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSettingsBundlesRequest); i { + switch v := v.(*ListBundlesRequest); i { case 0: return &v.state case 1: @@ -1960,7 +2286,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSettingsBundlesResponse); i { + switch v := v.(*ListBundlesResponse); i { case 0: return &v.state case 1: @@ -1972,7 +2298,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SaveSettingsValueRequest); i { + switch v := v.(*SaveValueRequest); i { case 0: return &v.state case 1: @@ -1984,7 +2310,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SaveSettingsValueResponse); i { + switch v := v.(*SaveValueResponse); i { case 0: return &v.state case 1: @@ -1996,7 +2322,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSettingsValueRequest); i { + switch v := v.(*GetValueRequest); i { case 0: return &v.state case 1: @@ -2008,7 +2334,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSettingsValueResponse); i { + switch v := v.(*GetValueResponse); i { case 0: return &v.state case 1: @@ -2020,7 +2346,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSettingsValuesRequest); i { + switch v := v.(*ListValuesRequest); i { case 0: return &v.state case 1: @@ -2032,7 +2358,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSettingsValuesResponse); i { + switch v := v.(*ListValuesResponse); i { case 0: return &v.state case 1: @@ -2044,7 +2370,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Identifier); i { + switch v := v.(*GetValueByUniqueIdentifiersRequest); i { case 0: return &v.state case 1: @@ -2056,7 +2382,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SettingsBundle); i { + switch v := v.(*ValueWithIdentifier); i { case 0: return &v.state case 1: @@ -2068,7 +2394,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Setting); i { + switch v := v.(*Identifier); i { case 0: return &v.state case 1: @@ -2080,7 +2406,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IntSetting); i { + switch v := v.(*Resource); i { case 0: return &v.state case 1: @@ -2092,7 +2418,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StringSetting); i { + switch v := v.(*Bundle); i { case 0: return &v.state case 1: @@ -2104,7 +2430,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BoolSetting); i { + switch v := v.(*Setting); i { case 0: return &v.state case 1: @@ -2116,7 +2442,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SingleChoiceListSetting); i { + switch v := v.(*Int); i { case 0: return &v.state case 1: @@ -2128,7 +2454,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MultiChoiceListSetting); i { + switch v := v.(*String); i { case 0: return &v.state case 1: @@ -2140,7 +2466,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListOption); i { + switch v := v.(*Bool); i { case 0: return &v.state case 1: @@ -2152,7 +2478,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SettingsValue); i { + switch v := v.(*SingleChoiceList); i { case 0: return &v.state case 1: @@ -2164,7 +2490,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListValue); i { + switch v := v.(*MultiChoiceList); i { case 0: return &v.state case 1: @@ -2176,7 +2502,7 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListOptionValue); i { + switch v := v.(*ListOption); i { case 0: return &v.state case 1: @@ -2188,7 +2514,31 @@ func file_settings_proto_init() { } } file_settings_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SettingsValues); i { + switch v := v.(*Value); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_settings_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_settings_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListOptionValue); i { case 0: return &v.state case 1: @@ -2200,20 +2550,20 @@ func file_settings_proto_init() { } } } - file_settings_proto_msgTypes[14].OneofWrappers = []interface{}{ + file_settings_proto_msgTypes[17].OneofWrappers = []interface{}{ (*Setting_IntValue)(nil), (*Setting_StringValue)(nil), (*Setting_BoolValue)(nil), (*Setting_SingleChoiceValue)(nil), (*Setting_MultiChoiceValue)(nil), } - file_settings_proto_msgTypes[21].OneofWrappers = []interface{}{ - (*SettingsValue_BoolValue)(nil), - (*SettingsValue_IntValue)(nil), - (*SettingsValue_StringValue)(nil), - (*SettingsValue_ListValue)(nil), + file_settings_proto_msgTypes[24].OneofWrappers = []interface{}{ + (*Value_BoolValue)(nil), + (*Value_IntValue)(nil), + (*Value_StringValue)(nil), + (*Value_ListValue)(nil), } - file_settings_proto_msgTypes[23].OneofWrappers = []interface{}{ + file_settings_proto_msgTypes[26].OneofWrappers = []interface{}{ (*ListOptionValue_StringValue)(nil), (*ListOptionValue_IntValue)(nil), } @@ -2222,13 +2572,14 @@ func file_settings_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_settings_proto_rawDesc, - NumEnums: 0, - NumMessages: 26, + NumEnums: 2, + NumMessages: 27, NumExtensions: 0, NumServices: 2, }, GoTypes: file_settings_proto_goTypes, DependencyIndexes: file_settings_proto_depIdxs, + EnumInfos: file_settings_proto_enumTypes, MessageInfos: file_settings_proto_msgTypes, }.Build() File_settings_proto = out.File diff --git a/pkg/proto/v0/settings.pb.micro.go b/pkg/proto/v0/settings.pb.micro.go index 4dc86d2b0e..7eb14047ea 100644 --- a/pkg/proto/v0/settings.pb.micro.go +++ b/pkg/proto/v0/settings.pb.micro.go @@ -40,21 +40,21 @@ var _ server.Option func NewBundleServiceEndpoints() []*api.Endpoint { return []*api.Endpoint{ &api.Endpoint{ - Name: "BundleService.SaveSettingsBundle", + Name: "BundleService.SaveBundle", Path: []string{"/api/v0/settings/bundle-save"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", }, &api.Endpoint{ - Name: "BundleService.GetSettingsBundle", + Name: "BundleService.GetBundle", Path: []string{"/api/v0/settings/bundle-get"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", }, &api.Endpoint{ - Name: "BundleService.ListSettingsBundles", + Name: "BundleService.ListBundles", Path: []string{"/api/v0/settings/bundles-list"}, Method: []string{"POST"}, Body: "*", @@ -66,9 +66,9 @@ func NewBundleServiceEndpoints() []*api.Endpoint { // Client API for BundleService service type BundleService interface { - SaveSettingsBundle(ctx context.Context, in *SaveSettingsBundleRequest, opts ...client.CallOption) (*SaveSettingsBundleResponse, error) - GetSettingsBundle(ctx context.Context, in *GetSettingsBundleRequest, opts ...client.CallOption) (*GetSettingsBundleResponse, error) - ListSettingsBundles(ctx context.Context, in *ListSettingsBundlesRequest, opts ...client.CallOption) (*ListSettingsBundlesResponse, error) + SaveBundle(ctx context.Context, in *SaveBundleRequest, opts ...client.CallOption) (*SaveBundleResponse, error) + GetBundle(ctx context.Context, in *GetBundleRequest, opts ...client.CallOption) (*GetBundleResponse, error) + ListBundles(ctx context.Context, in *ListBundlesRequest, opts ...client.CallOption) (*ListBundlesResponse, error) } type bundleService struct { @@ -83,9 +83,9 @@ func NewBundleService(name string, c client.Client) BundleService { } } -func (c *bundleService) SaveSettingsBundle(ctx context.Context, in *SaveSettingsBundleRequest, opts ...client.CallOption) (*SaveSettingsBundleResponse, error) { - req := c.c.NewRequest(c.name, "BundleService.SaveSettingsBundle", in) - out := new(SaveSettingsBundleResponse) +func (c *bundleService) SaveBundle(ctx context.Context, in *SaveBundleRequest, opts ...client.CallOption) (*SaveBundleResponse, error) { + req := c.c.NewRequest(c.name, "BundleService.SaveBundle", in) + out := new(SaveBundleResponse) err := c.c.Call(ctx, req, out, opts...) if err != nil { return nil, err @@ -93,9 +93,9 @@ func (c *bundleService) SaveSettingsBundle(ctx context.Context, in *SaveSettings return out, nil } -func (c *bundleService) GetSettingsBundle(ctx context.Context, in *GetSettingsBundleRequest, opts ...client.CallOption) (*GetSettingsBundleResponse, error) { - req := c.c.NewRequest(c.name, "BundleService.GetSettingsBundle", in) - out := new(GetSettingsBundleResponse) +func (c *bundleService) GetBundle(ctx context.Context, in *GetBundleRequest, opts ...client.CallOption) (*GetBundleResponse, error) { + req := c.c.NewRequest(c.name, "BundleService.GetBundle", in) + out := new(GetBundleResponse) err := c.c.Call(ctx, req, out, opts...) if err != nil { return nil, err @@ -103,9 +103,9 @@ func (c *bundleService) GetSettingsBundle(ctx context.Context, in *GetSettingsBu return out, nil } -func (c *bundleService) ListSettingsBundles(ctx context.Context, in *ListSettingsBundlesRequest, opts ...client.CallOption) (*ListSettingsBundlesResponse, error) { - req := c.c.NewRequest(c.name, "BundleService.ListSettingsBundles", in) - out := new(ListSettingsBundlesResponse) +func (c *bundleService) ListBundles(ctx context.Context, in *ListBundlesRequest, opts ...client.CallOption) (*ListBundlesResponse, error) { + req := c.c.NewRequest(c.name, "BundleService.ListBundles", in) + out := new(ListBundlesResponse) err := c.c.Call(ctx, req, out, opts...) if err != nil { return nil, err @@ -116,37 +116,37 @@ func (c *bundleService) ListSettingsBundles(ctx context.Context, in *ListSetting // Server API for BundleService service type BundleServiceHandler interface { - SaveSettingsBundle(context.Context, *SaveSettingsBundleRequest, *SaveSettingsBundleResponse) error - GetSettingsBundle(context.Context, *GetSettingsBundleRequest, *GetSettingsBundleResponse) error - ListSettingsBundles(context.Context, *ListSettingsBundlesRequest, *ListSettingsBundlesResponse) error + SaveBundle(context.Context, *SaveBundleRequest, *SaveBundleResponse) error + GetBundle(context.Context, *GetBundleRequest, *GetBundleResponse) error + ListBundles(context.Context, *ListBundlesRequest, *ListBundlesResponse) error } func RegisterBundleServiceHandler(s server.Server, hdlr BundleServiceHandler, opts ...server.HandlerOption) error { type bundleService interface { - SaveSettingsBundle(ctx context.Context, in *SaveSettingsBundleRequest, out *SaveSettingsBundleResponse) error - GetSettingsBundle(ctx context.Context, in *GetSettingsBundleRequest, out *GetSettingsBundleResponse) error - ListSettingsBundles(ctx context.Context, in *ListSettingsBundlesRequest, out *ListSettingsBundlesResponse) error + SaveBundle(ctx context.Context, in *SaveBundleRequest, out *SaveBundleResponse) error + GetBundle(ctx context.Context, in *GetBundleRequest, out *GetBundleResponse) error + ListBundles(ctx context.Context, in *ListBundlesRequest, out *ListBundlesResponse) error } type BundleService struct { bundleService } h := &bundleServiceHandler{hdlr} opts = append(opts, api.WithEndpoint(&api.Endpoint{ - Name: "BundleService.SaveSettingsBundle", + Name: "BundleService.SaveBundle", Path: []string{"/api/v0/settings/bundle-save"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", })) opts = append(opts, api.WithEndpoint(&api.Endpoint{ - Name: "BundleService.GetSettingsBundle", + Name: "BundleService.GetBundle", Path: []string{"/api/v0/settings/bundle-get"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", })) opts = append(opts, api.WithEndpoint(&api.Endpoint{ - Name: "BundleService.ListSettingsBundles", + Name: "BundleService.ListBundles", Path: []string{"/api/v0/settings/bundles-list"}, Method: []string{"POST"}, Body: "*", @@ -159,16 +159,16 @@ type bundleServiceHandler struct { BundleServiceHandler } -func (h *bundleServiceHandler) SaveSettingsBundle(ctx context.Context, in *SaveSettingsBundleRequest, out *SaveSettingsBundleResponse) error { - return h.BundleServiceHandler.SaveSettingsBundle(ctx, in, out) +func (h *bundleServiceHandler) SaveBundle(ctx context.Context, in *SaveBundleRequest, out *SaveBundleResponse) error { + return h.BundleServiceHandler.SaveBundle(ctx, in, out) } -func (h *bundleServiceHandler) GetSettingsBundle(ctx context.Context, in *GetSettingsBundleRequest, out *GetSettingsBundleResponse) error { - return h.BundleServiceHandler.GetSettingsBundle(ctx, in, out) +func (h *bundleServiceHandler) GetBundle(ctx context.Context, in *GetBundleRequest, out *GetBundleResponse) error { + return h.BundleServiceHandler.GetBundle(ctx, in, out) } -func (h *bundleServiceHandler) ListSettingsBundles(ctx context.Context, in *ListSettingsBundlesRequest, out *ListSettingsBundlesResponse) error { - return h.BundleServiceHandler.ListSettingsBundles(ctx, in, out) +func (h *bundleServiceHandler) ListBundles(ctx context.Context, in *ListBundlesRequest, out *ListBundlesResponse) error { + return h.BundleServiceHandler.ListBundles(ctx, in, out) } // Api Endpoints for ValueService service @@ -176,35 +176,43 @@ func (h *bundleServiceHandler) ListSettingsBundles(ctx context.Context, in *List func NewValueServiceEndpoints() []*api.Endpoint { return []*api.Endpoint{ &api.Endpoint{ - Name: "ValueService.SaveSettingsValue", + Name: "ValueService.SaveValue", Path: []string{"/api/v0/settings/value-save"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", }, &api.Endpoint{ - Name: "ValueService.GetSettingsValue", + Name: "ValueService.GetValue", Path: []string{"/api/v0/settings/value-get"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", }, &api.Endpoint{ - Name: "ValueService.ListSettingsValues", + Name: "ValueService.ListValues", Path: []string{"/api/v0/settings/values-list"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", }, + &api.Endpoint{ + Name: "ValueService.GetValueByUniqueIdentifiers", + Path: []string{"/api/v0/settings/values-get-by-unique-identifiers"}, + Method: []string{"POST"}, + Body: "*", + Handler: "rpc", + }, } } // Client API for ValueService service type ValueService interface { - SaveSettingsValue(ctx context.Context, in *SaveSettingsValueRequest, opts ...client.CallOption) (*SaveSettingsValueResponse, error) - GetSettingsValue(ctx context.Context, in *GetSettingsValueRequest, opts ...client.CallOption) (*GetSettingsValueResponse, error) - ListSettingsValues(ctx context.Context, in *ListSettingsValuesRequest, opts ...client.CallOption) (*ListSettingsValuesResponse, error) + SaveValue(ctx context.Context, in *SaveValueRequest, opts ...client.CallOption) (*SaveValueResponse, error) + GetValue(ctx context.Context, in *GetValueRequest, opts ...client.CallOption) (*GetValueResponse, error) + ListValues(ctx context.Context, in *ListValuesRequest, opts ...client.CallOption) (*ListValuesResponse, error) + GetValueByUniqueIdentifiers(ctx context.Context, in *GetValueByUniqueIdentifiersRequest, opts ...client.CallOption) (*GetValueResponse, error) } type valueService struct { @@ -219,9 +227,9 @@ func NewValueService(name string, c client.Client) ValueService { } } -func (c *valueService) SaveSettingsValue(ctx context.Context, in *SaveSettingsValueRequest, opts ...client.CallOption) (*SaveSettingsValueResponse, error) { - req := c.c.NewRequest(c.name, "ValueService.SaveSettingsValue", in) - out := new(SaveSettingsValueResponse) +func (c *valueService) SaveValue(ctx context.Context, in *SaveValueRequest, opts ...client.CallOption) (*SaveValueResponse, error) { + req := c.c.NewRequest(c.name, "ValueService.SaveValue", in) + out := new(SaveValueResponse) err := c.c.Call(ctx, req, out, opts...) if err != nil { return nil, err @@ -229,9 +237,9 @@ func (c *valueService) SaveSettingsValue(ctx context.Context, in *SaveSettingsVa return out, nil } -func (c *valueService) GetSettingsValue(ctx context.Context, in *GetSettingsValueRequest, opts ...client.CallOption) (*GetSettingsValueResponse, error) { - req := c.c.NewRequest(c.name, "ValueService.GetSettingsValue", in) - out := new(GetSettingsValueResponse) +func (c *valueService) GetValue(ctx context.Context, in *GetValueRequest, opts ...client.CallOption) (*GetValueResponse, error) { + req := c.c.NewRequest(c.name, "ValueService.GetValue", in) + out := new(GetValueResponse) err := c.c.Call(ctx, req, out, opts...) if err != nil { return nil, err @@ -239,9 +247,19 @@ func (c *valueService) GetSettingsValue(ctx context.Context, in *GetSettingsValu return out, nil } -func (c *valueService) ListSettingsValues(ctx context.Context, in *ListSettingsValuesRequest, opts ...client.CallOption) (*ListSettingsValuesResponse, error) { - req := c.c.NewRequest(c.name, "ValueService.ListSettingsValues", in) - out := new(ListSettingsValuesResponse) +func (c *valueService) ListValues(ctx context.Context, in *ListValuesRequest, opts ...client.CallOption) (*ListValuesResponse, error) { + req := c.c.NewRequest(c.name, "ValueService.ListValues", in) + out := new(ListValuesResponse) + err := c.c.Call(ctx, req, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *valueService) GetValueByUniqueIdentifiers(ctx context.Context, in *GetValueByUniqueIdentifiersRequest, opts ...client.CallOption) (*GetValueResponse, error) { + req := c.c.NewRequest(c.name, "ValueService.GetValueByUniqueIdentifiers", in) + out := new(GetValueResponse) err := c.c.Call(ctx, req, out, opts...) if err != nil { return nil, err @@ -252,42 +270,51 @@ func (c *valueService) ListSettingsValues(ctx context.Context, in *ListSettingsV // Server API for ValueService service type ValueServiceHandler interface { - SaveSettingsValue(context.Context, *SaveSettingsValueRequest, *SaveSettingsValueResponse) error - GetSettingsValue(context.Context, *GetSettingsValueRequest, *GetSettingsValueResponse) error - ListSettingsValues(context.Context, *ListSettingsValuesRequest, *ListSettingsValuesResponse) error + SaveValue(context.Context, *SaveValueRequest, *SaveValueResponse) error + GetValue(context.Context, *GetValueRequest, *GetValueResponse) error + ListValues(context.Context, *ListValuesRequest, *ListValuesResponse) error + GetValueByUniqueIdentifiers(context.Context, *GetValueByUniqueIdentifiersRequest, *GetValueResponse) error } func RegisterValueServiceHandler(s server.Server, hdlr ValueServiceHandler, opts ...server.HandlerOption) error { type valueService interface { - SaveSettingsValue(ctx context.Context, in *SaveSettingsValueRequest, out *SaveSettingsValueResponse) error - GetSettingsValue(ctx context.Context, in *GetSettingsValueRequest, out *GetSettingsValueResponse) error - ListSettingsValues(ctx context.Context, in *ListSettingsValuesRequest, out *ListSettingsValuesResponse) error + SaveValue(ctx context.Context, in *SaveValueRequest, out *SaveValueResponse) error + GetValue(ctx context.Context, in *GetValueRequest, out *GetValueResponse) error + ListValues(ctx context.Context, in *ListValuesRequest, out *ListValuesResponse) error + GetValueByUniqueIdentifiers(ctx context.Context, in *GetValueByUniqueIdentifiersRequest, out *GetValueResponse) error } type ValueService struct { valueService } h := &valueServiceHandler{hdlr} opts = append(opts, api.WithEndpoint(&api.Endpoint{ - Name: "ValueService.SaveSettingsValue", + Name: "ValueService.SaveValue", Path: []string{"/api/v0/settings/value-save"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", })) opts = append(opts, api.WithEndpoint(&api.Endpoint{ - Name: "ValueService.GetSettingsValue", + Name: "ValueService.GetValue", Path: []string{"/api/v0/settings/value-get"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", })) opts = append(opts, api.WithEndpoint(&api.Endpoint{ - Name: "ValueService.ListSettingsValues", + Name: "ValueService.ListValues", Path: []string{"/api/v0/settings/values-list"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", })) + opts = append(opts, api.WithEndpoint(&api.Endpoint{ + Name: "ValueService.GetValueByUniqueIdentifiers", + Path: []string{"/api/v0/settings/values-get-by-unique-identifiers"}, + Method: []string{"POST"}, + Body: "*", + Handler: "rpc", + })) return s.Handle(s.NewHandler(&ValueService{h}, opts...)) } @@ -295,14 +322,18 @@ type valueServiceHandler struct { ValueServiceHandler } -func (h *valueServiceHandler) SaveSettingsValue(ctx context.Context, in *SaveSettingsValueRequest, out *SaveSettingsValueResponse) error { - return h.ValueServiceHandler.SaveSettingsValue(ctx, in, out) +func (h *valueServiceHandler) SaveValue(ctx context.Context, in *SaveValueRequest, out *SaveValueResponse) error { + return h.ValueServiceHandler.SaveValue(ctx, in, out) } -func (h *valueServiceHandler) GetSettingsValue(ctx context.Context, in *GetSettingsValueRequest, out *GetSettingsValueResponse) error { - return h.ValueServiceHandler.GetSettingsValue(ctx, in, out) +func (h *valueServiceHandler) GetValue(ctx context.Context, in *GetValueRequest, out *GetValueResponse) error { + return h.ValueServiceHandler.GetValue(ctx, in, out) } -func (h *valueServiceHandler) ListSettingsValues(ctx context.Context, in *ListSettingsValuesRequest, out *ListSettingsValuesResponse) error { - return h.ValueServiceHandler.ListSettingsValues(ctx, in, out) +func (h *valueServiceHandler) ListValues(ctx context.Context, in *ListValuesRequest, out *ListValuesResponse) error { + return h.ValueServiceHandler.ListValues(ctx, in, out) +} + +func (h *valueServiceHandler) GetValueByUniqueIdentifiers(ctx context.Context, in *GetValueByUniqueIdentifiersRequest, out *GetValueResponse) error { + return h.ValueServiceHandler.GetValueByUniqueIdentifiers(ctx, in, out) } diff --git a/pkg/proto/v0/settings.pb.web.go b/pkg/proto/v0/settings.pb.web.go index 2556a1cf24..04031742bf 100644 --- a/pkg/proto/v0/settings.pb.web.go +++ b/pkg/proto/v0/settings.pb.web.go @@ -22,18 +22,18 @@ func (h *webBundleServiceHandler) ServeHTTP(w http.ResponseWriter, r *http.Reque h.r.ServeHTTP(w, r) } -func (h *webBundleServiceHandler) SaveSettingsBundle(w http.ResponseWriter, r *http.Request) { +func (h *webBundleServiceHandler) SaveBundle(w http.ResponseWriter, r *http.Request) { - req := &SaveSettingsBundleRequest{} + req := &SaveBundleRequest{} - resp := &SaveSettingsBundleResponse{} + resp := &SaveBundleResponse{} if err := json.NewDecoder(r.Body).Decode(&req); err != nil { http.Error(w, err.Error(), http.StatusPreconditionFailed) return } - if err := h.h.SaveSettingsBundle( + if err := h.h.SaveBundle( r.Context(), req, resp, @@ -46,18 +46,18 @@ func (h *webBundleServiceHandler) SaveSettingsBundle(w http.ResponseWriter, r *h render.JSON(w, r, resp) } -func (h *webBundleServiceHandler) GetSettingsBundle(w http.ResponseWriter, r *http.Request) { +func (h *webBundleServiceHandler) GetBundle(w http.ResponseWriter, r *http.Request) { - req := &GetSettingsBundleRequest{} + req := &GetBundleRequest{} - resp := &GetSettingsBundleResponse{} + resp := &GetBundleResponse{} if err := json.NewDecoder(r.Body).Decode(&req); err != nil { http.Error(w, err.Error(), http.StatusPreconditionFailed) return } - if err := h.h.GetSettingsBundle( + if err := h.h.GetBundle( r.Context(), req, resp, @@ -70,18 +70,18 @@ func (h *webBundleServiceHandler) GetSettingsBundle(w http.ResponseWriter, r *ht render.JSON(w, r, resp) } -func (h *webBundleServiceHandler) ListSettingsBundles(w http.ResponseWriter, r *http.Request) { +func (h *webBundleServiceHandler) ListBundles(w http.ResponseWriter, r *http.Request) { - req := &ListSettingsBundlesRequest{} + req := &ListBundlesRequest{} - resp := &ListSettingsBundlesResponse{} + resp := &ListBundlesResponse{} if err := json.NewDecoder(r.Body).Decode(&req); err != nil { http.Error(w, err.Error(), http.StatusPreconditionFailed) return } - if err := h.h.ListSettingsBundles( + if err := h.h.ListBundles( r.Context(), req, resp, @@ -100,9 +100,9 @@ func RegisterBundleServiceWeb(r chi.Router, i BundleServiceHandler, middlewares h: i, } - r.MethodFunc("POST", "/api/v0/settings/bundle-save", handler.SaveSettingsBundle) - r.MethodFunc("POST", "/api/v0/settings/bundle-get", handler.GetSettingsBundle) - r.MethodFunc("POST", "/api/v0/settings/bundles-list", handler.ListSettingsBundles) + r.MethodFunc("POST", "/api/v0/settings/bundle-save", handler.SaveBundle) + r.MethodFunc("POST", "/api/v0/settings/bundle-get", handler.GetBundle) + r.MethodFunc("POST", "/api/v0/settings/bundles-list", handler.ListBundles) } type webValueServiceHandler struct { @@ -114,18 +114,18 @@ func (h *webValueServiceHandler) ServeHTTP(w http.ResponseWriter, r *http.Reques h.r.ServeHTTP(w, r) } -func (h *webValueServiceHandler) SaveSettingsValue(w http.ResponseWriter, r *http.Request) { +func (h *webValueServiceHandler) SaveValue(w http.ResponseWriter, r *http.Request) { - req := &SaveSettingsValueRequest{} + req := &SaveValueRequest{} - resp := &SaveSettingsValueResponse{} + resp := &SaveValueResponse{} if err := json.NewDecoder(r.Body).Decode(&req); err != nil { http.Error(w, err.Error(), http.StatusPreconditionFailed) return } - if err := h.h.SaveSettingsValue( + if err := h.h.SaveValue( r.Context(), req, resp, @@ -138,18 +138,18 @@ func (h *webValueServiceHandler) SaveSettingsValue(w http.ResponseWriter, r *htt render.JSON(w, r, resp) } -func (h *webValueServiceHandler) GetSettingsValue(w http.ResponseWriter, r *http.Request) { +func (h *webValueServiceHandler) GetValue(w http.ResponseWriter, r *http.Request) { - req := &GetSettingsValueRequest{} + req := &GetValueRequest{} - resp := &GetSettingsValueResponse{} + resp := &GetValueResponse{} if err := json.NewDecoder(r.Body).Decode(&req); err != nil { http.Error(w, err.Error(), http.StatusPreconditionFailed) return } - if err := h.h.GetSettingsValue( + if err := h.h.GetValue( r.Context(), req, resp, @@ -162,18 +162,42 @@ func (h *webValueServiceHandler) GetSettingsValue(w http.ResponseWriter, r *http render.JSON(w, r, resp) } -func (h *webValueServiceHandler) ListSettingsValues(w http.ResponseWriter, r *http.Request) { +func (h *webValueServiceHandler) ListValues(w http.ResponseWriter, r *http.Request) { - req := &ListSettingsValuesRequest{} + req := &ListValuesRequest{} - resp := &ListSettingsValuesResponse{} + resp := &ListValuesResponse{} if err := json.NewDecoder(r.Body).Decode(&req); err != nil { http.Error(w, err.Error(), http.StatusPreconditionFailed) return } - if err := h.h.ListSettingsValues( + if err := h.h.ListValues( + r.Context(), + req, + resp, + ); err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + render.Status(r, http.StatusCreated) + render.JSON(w, r, resp) +} + +func (h *webValueServiceHandler) GetValueByUniqueIdentifiers(w http.ResponseWriter, r *http.Request) { + + req := &GetValueByUniqueIdentifiersRequest{} + + resp := &GetValueResponse{} + + if err := json.NewDecoder(r.Body).Decode(&req); err != nil { + http.Error(w, err.Error(), http.StatusPreconditionFailed) + return + } + + if err := h.h.GetValueByUniqueIdentifiers( r.Context(), req, resp, @@ -192,442 +216,515 @@ func RegisterValueServiceWeb(r chi.Router, i ValueServiceHandler, middlewares .. h: i, } - r.MethodFunc("POST", "/api/v0/settings/value-save", handler.SaveSettingsValue) - r.MethodFunc("POST", "/api/v0/settings/value-get", handler.GetSettingsValue) - r.MethodFunc("POST", "/api/v0/settings/values-list", handler.ListSettingsValues) + r.MethodFunc("POST", "/api/v0/settings/value-save", handler.SaveValue) + r.MethodFunc("POST", "/api/v0/settings/value-get", handler.GetValue) + r.MethodFunc("POST", "/api/v0/settings/values-list", handler.ListValues) + r.MethodFunc("POST", "/api/v0/settings/values-get-by-unique-identifiers", handler.GetValueByUniqueIdentifiers) } -// SaveSettingsBundleRequestJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of SaveSettingsBundleRequest. This struct is safe to replace or modify but +// SaveBundleRequestJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of SaveBundleRequest. This struct is safe to replace or modify but // should not be done so concurrently. -var SaveSettingsBundleRequestJSONMarshaler = new(jsonpb.Marshaler) +var SaveBundleRequestJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *SaveSettingsBundleRequest) MarshalJSON() ([]byte, error) { +func (m *SaveBundleRequest) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := SaveSettingsBundleRequestJSONMarshaler.Marshal(buf, m); err != nil { + if err := SaveBundleRequestJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*SaveSettingsBundleRequest)(nil) +var _ json.Marshaler = (*SaveBundleRequest)(nil) -// SaveSettingsBundleRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of SaveSettingsBundleRequest. This struct is safe to replace or modify but +// SaveBundleRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of SaveBundleRequest. This struct is safe to replace or modify but // should not be done so concurrently. -var SaveSettingsBundleRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) +var SaveBundleRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *SaveSettingsBundleRequest) UnmarshalJSON(b []byte) error { - return SaveSettingsBundleRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *SaveBundleRequest) UnmarshalJSON(b []byte) error { + return SaveBundleRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*SaveSettingsBundleRequest)(nil) +var _ json.Unmarshaler = (*SaveBundleRequest)(nil) -// SaveSettingsBundleResponseJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of SaveSettingsBundleResponse. This struct is safe to replace or modify but +// SaveBundleResponseJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of SaveBundleResponse. This struct is safe to replace or modify but // should not be done so concurrently. -var SaveSettingsBundleResponseJSONMarshaler = new(jsonpb.Marshaler) +var SaveBundleResponseJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *SaveSettingsBundleResponse) MarshalJSON() ([]byte, error) { +func (m *SaveBundleResponse) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := SaveSettingsBundleResponseJSONMarshaler.Marshal(buf, m); err != nil { + if err := SaveBundleResponseJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*SaveSettingsBundleResponse)(nil) +var _ json.Marshaler = (*SaveBundleResponse)(nil) -// SaveSettingsBundleResponseJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of SaveSettingsBundleResponse. This struct is safe to replace or modify but +// SaveBundleResponseJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of SaveBundleResponse. This struct is safe to replace or modify but // should not be done so concurrently. -var SaveSettingsBundleResponseJSONUnmarshaler = new(jsonpb.Unmarshaler) +var SaveBundleResponseJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *SaveSettingsBundleResponse) UnmarshalJSON(b []byte) error { - return SaveSettingsBundleResponseJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *SaveBundleResponse) UnmarshalJSON(b []byte) error { + return SaveBundleResponseJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*SaveSettingsBundleResponse)(nil) +var _ json.Unmarshaler = (*SaveBundleResponse)(nil) -// GetSettingsBundleRequestJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of GetSettingsBundleRequest. This struct is safe to replace or modify but +// GetBundleRequestJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of GetBundleRequest. This struct is safe to replace or modify but // should not be done so concurrently. -var GetSettingsBundleRequestJSONMarshaler = new(jsonpb.Marshaler) +var GetBundleRequestJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *GetSettingsBundleRequest) MarshalJSON() ([]byte, error) { +func (m *GetBundleRequest) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := GetSettingsBundleRequestJSONMarshaler.Marshal(buf, m); err != nil { + if err := GetBundleRequestJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*GetSettingsBundleRequest)(nil) +var _ json.Marshaler = (*GetBundleRequest)(nil) -// GetSettingsBundleRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of GetSettingsBundleRequest. This struct is safe to replace or modify but +// GetBundleRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of GetBundleRequest. This struct is safe to replace or modify but // should not be done so concurrently. -var GetSettingsBundleRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) +var GetBundleRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *GetSettingsBundleRequest) UnmarshalJSON(b []byte) error { - return GetSettingsBundleRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *GetBundleRequest) UnmarshalJSON(b []byte) error { + return GetBundleRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*GetSettingsBundleRequest)(nil) +var _ json.Unmarshaler = (*GetBundleRequest)(nil) -// GetSettingsBundleResponseJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of GetSettingsBundleResponse. This struct is safe to replace or modify but +// GetBundleResponseJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of GetBundleResponse. This struct is safe to replace or modify but // should not be done so concurrently. -var GetSettingsBundleResponseJSONMarshaler = new(jsonpb.Marshaler) +var GetBundleResponseJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *GetSettingsBundleResponse) MarshalJSON() ([]byte, error) { +func (m *GetBundleResponse) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := GetSettingsBundleResponseJSONMarshaler.Marshal(buf, m); err != nil { + if err := GetBundleResponseJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*GetSettingsBundleResponse)(nil) +var _ json.Marshaler = (*GetBundleResponse)(nil) -// GetSettingsBundleResponseJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of GetSettingsBundleResponse. This struct is safe to replace or modify but +// GetBundleResponseJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of GetBundleResponse. This struct is safe to replace or modify but // should not be done so concurrently. -var GetSettingsBundleResponseJSONUnmarshaler = new(jsonpb.Unmarshaler) +var GetBundleResponseJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *GetSettingsBundleResponse) UnmarshalJSON(b []byte) error { - return GetSettingsBundleResponseJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *GetBundleResponse) UnmarshalJSON(b []byte) error { + return GetBundleResponseJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*GetSettingsBundleResponse)(nil) +var _ json.Unmarshaler = (*GetBundleResponse)(nil) -// ListSettingsBundlesRequestJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of ListSettingsBundlesRequest. This struct is safe to replace or modify but +// ListBundlesRequestJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of ListBundlesRequest. This struct is safe to replace or modify but // should not be done so concurrently. -var ListSettingsBundlesRequestJSONMarshaler = new(jsonpb.Marshaler) +var ListBundlesRequestJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *ListSettingsBundlesRequest) MarshalJSON() ([]byte, error) { +func (m *ListBundlesRequest) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := ListSettingsBundlesRequestJSONMarshaler.Marshal(buf, m); err != nil { + if err := ListBundlesRequestJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*ListSettingsBundlesRequest)(nil) +var _ json.Marshaler = (*ListBundlesRequest)(nil) -// ListSettingsBundlesRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of ListSettingsBundlesRequest. This struct is safe to replace or modify but +// ListBundlesRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of ListBundlesRequest. This struct is safe to replace or modify but // should not be done so concurrently. -var ListSettingsBundlesRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) +var ListBundlesRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *ListSettingsBundlesRequest) UnmarshalJSON(b []byte) error { - return ListSettingsBundlesRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *ListBundlesRequest) UnmarshalJSON(b []byte) error { + return ListBundlesRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*ListSettingsBundlesRequest)(nil) +var _ json.Unmarshaler = (*ListBundlesRequest)(nil) -// ListSettingsBundlesResponseJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of ListSettingsBundlesResponse. This struct is safe to replace or modify but +// ListBundlesResponseJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of ListBundlesResponse. This struct is safe to replace or modify but // should not be done so concurrently. -var ListSettingsBundlesResponseJSONMarshaler = new(jsonpb.Marshaler) +var ListBundlesResponseJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *ListSettingsBundlesResponse) MarshalJSON() ([]byte, error) { +func (m *ListBundlesResponse) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := ListSettingsBundlesResponseJSONMarshaler.Marshal(buf, m); err != nil { + if err := ListBundlesResponseJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*ListSettingsBundlesResponse)(nil) +var _ json.Marshaler = (*ListBundlesResponse)(nil) -// ListSettingsBundlesResponseJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of ListSettingsBundlesResponse. This struct is safe to replace or modify but +// ListBundlesResponseJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of ListBundlesResponse. This struct is safe to replace or modify but // should not be done so concurrently. -var ListSettingsBundlesResponseJSONUnmarshaler = new(jsonpb.Unmarshaler) +var ListBundlesResponseJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *ListSettingsBundlesResponse) UnmarshalJSON(b []byte) error { - return ListSettingsBundlesResponseJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *ListBundlesResponse) UnmarshalJSON(b []byte) error { + return ListBundlesResponseJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*ListSettingsBundlesResponse)(nil) +var _ json.Unmarshaler = (*ListBundlesResponse)(nil) -// SaveSettingsValueRequestJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of SaveSettingsValueRequest. This struct is safe to replace or modify but +// SaveValueRequestJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of SaveValueRequest. This struct is safe to replace or modify but // should not be done so concurrently. -var SaveSettingsValueRequestJSONMarshaler = new(jsonpb.Marshaler) +var SaveValueRequestJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *SaveSettingsValueRequest) MarshalJSON() ([]byte, error) { +func (m *SaveValueRequest) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := SaveSettingsValueRequestJSONMarshaler.Marshal(buf, m); err != nil { + if err := SaveValueRequestJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*SaveSettingsValueRequest)(nil) +var _ json.Marshaler = (*SaveValueRequest)(nil) -// SaveSettingsValueRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of SaveSettingsValueRequest. This struct is safe to replace or modify but +// SaveValueRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of SaveValueRequest. This struct is safe to replace or modify but // should not be done so concurrently. -var SaveSettingsValueRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) +var SaveValueRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *SaveSettingsValueRequest) UnmarshalJSON(b []byte) error { - return SaveSettingsValueRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *SaveValueRequest) UnmarshalJSON(b []byte) error { + return SaveValueRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*SaveSettingsValueRequest)(nil) +var _ json.Unmarshaler = (*SaveValueRequest)(nil) -// SaveSettingsValueResponseJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of SaveSettingsValueResponse. This struct is safe to replace or modify but +// SaveValueResponseJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of SaveValueResponse. This struct is safe to replace or modify but // should not be done so concurrently. -var SaveSettingsValueResponseJSONMarshaler = new(jsonpb.Marshaler) +var SaveValueResponseJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *SaveSettingsValueResponse) MarshalJSON() ([]byte, error) { +func (m *SaveValueResponse) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := SaveSettingsValueResponseJSONMarshaler.Marshal(buf, m); err != nil { + if err := SaveValueResponseJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*SaveSettingsValueResponse)(nil) +var _ json.Marshaler = (*SaveValueResponse)(nil) -// SaveSettingsValueResponseJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of SaveSettingsValueResponse. This struct is safe to replace or modify but +// SaveValueResponseJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of SaveValueResponse. This struct is safe to replace or modify but // should not be done so concurrently. -var SaveSettingsValueResponseJSONUnmarshaler = new(jsonpb.Unmarshaler) +var SaveValueResponseJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *SaveSettingsValueResponse) UnmarshalJSON(b []byte) error { - return SaveSettingsValueResponseJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *SaveValueResponse) UnmarshalJSON(b []byte) error { + return SaveValueResponseJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*SaveSettingsValueResponse)(nil) +var _ json.Unmarshaler = (*SaveValueResponse)(nil) -// GetSettingsValueRequestJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of GetSettingsValueRequest. This struct is safe to replace or modify but +// GetValueRequestJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of GetValueRequest. This struct is safe to replace or modify but // should not be done so concurrently. -var GetSettingsValueRequestJSONMarshaler = new(jsonpb.Marshaler) +var GetValueRequestJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *GetSettingsValueRequest) MarshalJSON() ([]byte, error) { +func (m *GetValueRequest) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := GetSettingsValueRequestJSONMarshaler.Marshal(buf, m); err != nil { + if err := GetValueRequestJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*GetSettingsValueRequest)(nil) +var _ json.Marshaler = (*GetValueRequest)(nil) -// GetSettingsValueRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of GetSettingsValueRequest. This struct is safe to replace or modify but +// GetValueRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of GetValueRequest. This struct is safe to replace or modify but // should not be done so concurrently. -var GetSettingsValueRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) +var GetValueRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *GetSettingsValueRequest) UnmarshalJSON(b []byte) error { - return GetSettingsValueRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *GetValueRequest) UnmarshalJSON(b []byte) error { + return GetValueRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*GetSettingsValueRequest)(nil) +var _ json.Unmarshaler = (*GetValueRequest)(nil) -// GetSettingsValueResponseJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of GetSettingsValueResponse. This struct is safe to replace or modify but +// GetValueResponseJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of GetValueResponse. This struct is safe to replace or modify but // should not be done so concurrently. -var GetSettingsValueResponseJSONMarshaler = new(jsonpb.Marshaler) +var GetValueResponseJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *GetSettingsValueResponse) MarshalJSON() ([]byte, error) { +func (m *GetValueResponse) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := GetSettingsValueResponseJSONMarshaler.Marshal(buf, m); err != nil { + if err := GetValueResponseJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*GetSettingsValueResponse)(nil) +var _ json.Marshaler = (*GetValueResponse)(nil) -// GetSettingsValueResponseJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of GetSettingsValueResponse. This struct is safe to replace or modify but +// GetValueResponseJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of GetValueResponse. This struct is safe to replace or modify but // should not be done so concurrently. -var GetSettingsValueResponseJSONUnmarshaler = new(jsonpb.Unmarshaler) +var GetValueResponseJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *GetSettingsValueResponse) UnmarshalJSON(b []byte) error { - return GetSettingsValueResponseJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *GetValueResponse) UnmarshalJSON(b []byte) error { + return GetValueResponseJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*GetSettingsValueResponse)(nil) +var _ json.Unmarshaler = (*GetValueResponse)(nil) -// ListSettingsValuesRequestJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of ListSettingsValuesRequest. This struct is safe to replace or modify but +// ListValuesRequestJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of ListValuesRequest. This struct is safe to replace or modify but // should not be done so concurrently. -var ListSettingsValuesRequestJSONMarshaler = new(jsonpb.Marshaler) +var ListValuesRequestJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *ListSettingsValuesRequest) MarshalJSON() ([]byte, error) { +func (m *ListValuesRequest) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := ListSettingsValuesRequestJSONMarshaler.Marshal(buf, m); err != nil { + if err := ListValuesRequestJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*ListSettingsValuesRequest)(nil) +var _ json.Marshaler = (*ListValuesRequest)(nil) -// ListSettingsValuesRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of ListSettingsValuesRequest. This struct is safe to replace or modify but +// ListValuesRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of ListValuesRequest. This struct is safe to replace or modify but // should not be done so concurrently. -var ListSettingsValuesRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) +var ListValuesRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *ListSettingsValuesRequest) UnmarshalJSON(b []byte) error { - return ListSettingsValuesRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *ListValuesRequest) UnmarshalJSON(b []byte) error { + return ListValuesRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*ListSettingsValuesRequest)(nil) +var _ json.Unmarshaler = (*ListValuesRequest)(nil) -// ListSettingsValuesResponseJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of ListSettingsValuesResponse. This struct is safe to replace or modify but +// ListValuesResponseJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of ListValuesResponse. This struct is safe to replace or modify but // should not be done so concurrently. -var ListSettingsValuesResponseJSONMarshaler = new(jsonpb.Marshaler) +var ListValuesResponseJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *ListSettingsValuesResponse) MarshalJSON() ([]byte, error) { +func (m *ListValuesResponse) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := ListSettingsValuesResponseJSONMarshaler.Marshal(buf, m); err != nil { + if err := ListValuesResponseJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*ListSettingsValuesResponse)(nil) +var _ json.Marshaler = (*ListValuesResponse)(nil) -// ListSettingsValuesResponseJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of ListSettingsValuesResponse. This struct is safe to replace or modify but +// ListValuesResponseJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of ListValuesResponse. This struct is safe to replace or modify but // should not be done so concurrently. -var ListSettingsValuesResponseJSONUnmarshaler = new(jsonpb.Unmarshaler) +var ListValuesResponseJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *ListSettingsValuesResponse) UnmarshalJSON(b []byte) error { - return ListSettingsValuesResponseJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *ListValuesResponse) UnmarshalJSON(b []byte) error { + return ListValuesResponseJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*ListSettingsValuesResponse)(nil) +var _ json.Unmarshaler = (*ListValuesResponse)(nil) + +// GetValueByUniqueIdentifiersRequestJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of GetValueByUniqueIdentifiersRequest. This struct is safe to replace or modify but +// should not be done so concurrently. +var GetValueByUniqueIdentifiersRequestJSONMarshaler = new(jsonpb.Marshaler) + +// MarshalJSON satisfies the encoding/json Marshaler interface. This method +// uses the more correct jsonpb package to correctly marshal the message. +func (m *GetValueByUniqueIdentifiersRequest) MarshalJSON() ([]byte, error) { + if m == nil { + return json.Marshal(nil) + } + + buf := &bytes.Buffer{} + + if err := GetValueByUniqueIdentifiersRequestJSONMarshaler.Marshal(buf, m); err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +var _ json.Marshaler = (*GetValueByUniqueIdentifiersRequest)(nil) + +// GetValueByUniqueIdentifiersRequestJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of GetValueByUniqueIdentifiersRequest. This struct is safe to replace or modify but +// should not be done so concurrently. +var GetValueByUniqueIdentifiersRequestJSONUnmarshaler = new(jsonpb.Unmarshaler) + +// UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method +// uses the more correct jsonpb package to correctly unmarshal the message. +func (m *GetValueByUniqueIdentifiersRequest) UnmarshalJSON(b []byte) error { + return GetValueByUniqueIdentifiersRequestJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +} + +var _ json.Unmarshaler = (*GetValueByUniqueIdentifiersRequest)(nil) + +// ValueWithIdentifierJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of ValueWithIdentifier. This struct is safe to replace or modify but +// should not be done so concurrently. +var ValueWithIdentifierJSONMarshaler = new(jsonpb.Marshaler) + +// MarshalJSON satisfies the encoding/json Marshaler interface. This method +// uses the more correct jsonpb package to correctly marshal the message. +func (m *ValueWithIdentifier) MarshalJSON() ([]byte, error) { + if m == nil { + return json.Marshal(nil) + } + + buf := &bytes.Buffer{} + + if err := ValueWithIdentifierJSONMarshaler.Marshal(buf, m); err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +var _ json.Marshaler = (*ValueWithIdentifier)(nil) + +// ValueWithIdentifierJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of ValueWithIdentifier. This struct is safe to replace or modify but +// should not be done so concurrently. +var ValueWithIdentifierJSONUnmarshaler = new(jsonpb.Unmarshaler) + +// UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method +// uses the more correct jsonpb package to correctly unmarshal the message. +func (m *ValueWithIdentifier) UnmarshalJSON(b []byte) error { + return ValueWithIdentifierJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +} + +var _ json.Unmarshaler = (*ValueWithIdentifier)(nil) // IdentifierJSONMarshaler describes the default jsonpb.Marshaler used by all // instances of Identifier. This struct is safe to replace or modify but @@ -665,41 +762,77 @@ func (m *Identifier) UnmarshalJSON(b []byte) error { var _ json.Unmarshaler = (*Identifier)(nil) -// SettingsBundleJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of SettingsBundle. This struct is safe to replace or modify but +// ResourceJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of Resource. This struct is safe to replace or modify but // should not be done so concurrently. -var SettingsBundleJSONMarshaler = new(jsonpb.Marshaler) +var ResourceJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *SettingsBundle) MarshalJSON() ([]byte, error) { +func (m *Resource) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := SettingsBundleJSONMarshaler.Marshal(buf, m); err != nil { + if err := ResourceJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*SettingsBundle)(nil) +var _ json.Marshaler = (*Resource)(nil) -// SettingsBundleJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of SettingsBundle. This struct is safe to replace or modify but +// ResourceJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of Resource. This struct is safe to replace or modify but // should not be done so concurrently. -var SettingsBundleJSONUnmarshaler = new(jsonpb.Unmarshaler) +var ResourceJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *SettingsBundle) UnmarshalJSON(b []byte) error { - return SettingsBundleJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *Resource) UnmarshalJSON(b []byte) error { + return ResourceJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*SettingsBundle)(nil) +var _ json.Unmarshaler = (*Resource)(nil) + +// BundleJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of Bundle. This struct is safe to replace or modify but +// should not be done so concurrently. +var BundleJSONMarshaler = new(jsonpb.Marshaler) + +// MarshalJSON satisfies the encoding/json Marshaler interface. This method +// uses the more correct jsonpb package to correctly marshal the message. +func (m *Bundle) MarshalJSON() ([]byte, error) { + if m == nil { + return json.Marshal(nil) + } + + buf := &bytes.Buffer{} + + if err := BundleJSONMarshaler.Marshal(buf, m); err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +var _ json.Marshaler = (*Bundle)(nil) + +// BundleJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of Bundle. This struct is safe to replace or modify but +// should not be done so concurrently. +var BundleJSONUnmarshaler = new(jsonpb.Unmarshaler) + +// UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method +// uses the more correct jsonpb package to correctly unmarshal the message. +func (m *Bundle) UnmarshalJSON(b []byte) error { + return BundleJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +} + +var _ json.Unmarshaler = (*Bundle)(nil) // SettingJSONMarshaler describes the default jsonpb.Marshaler used by all // instances of Setting. This struct is safe to replace or modify but @@ -737,185 +870,185 @@ func (m *Setting) UnmarshalJSON(b []byte) error { var _ json.Unmarshaler = (*Setting)(nil) -// IntSettingJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of IntSetting. This struct is safe to replace or modify but +// IntJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of Int. This struct is safe to replace or modify but // should not be done so concurrently. -var IntSettingJSONMarshaler = new(jsonpb.Marshaler) +var IntJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *IntSetting) MarshalJSON() ([]byte, error) { +func (m *Int) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := IntSettingJSONMarshaler.Marshal(buf, m); err != nil { + if err := IntJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*IntSetting)(nil) +var _ json.Marshaler = (*Int)(nil) -// IntSettingJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of IntSetting. This struct is safe to replace or modify but +// IntJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of Int. This struct is safe to replace or modify but // should not be done so concurrently. -var IntSettingJSONUnmarshaler = new(jsonpb.Unmarshaler) +var IntJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *IntSetting) UnmarshalJSON(b []byte) error { - return IntSettingJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *Int) UnmarshalJSON(b []byte) error { + return IntJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*IntSetting)(nil) +var _ json.Unmarshaler = (*Int)(nil) -// StringSettingJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of StringSetting. This struct is safe to replace or modify but +// StringJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of String. This struct is safe to replace or modify but // should not be done so concurrently. -var StringSettingJSONMarshaler = new(jsonpb.Marshaler) +var StringJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *StringSetting) MarshalJSON() ([]byte, error) { +func (m *String) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := StringSettingJSONMarshaler.Marshal(buf, m); err != nil { + if err := StringJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*StringSetting)(nil) +var _ json.Marshaler = (*String)(nil) -// StringSettingJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of StringSetting. This struct is safe to replace or modify but +// StringJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of String. This struct is safe to replace or modify but // should not be done so concurrently. -var StringSettingJSONUnmarshaler = new(jsonpb.Unmarshaler) +var StringJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *StringSetting) UnmarshalJSON(b []byte) error { - return StringSettingJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *String) UnmarshalJSON(b []byte) error { + return StringJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*StringSetting)(nil) +var _ json.Unmarshaler = (*String)(nil) -// BoolSettingJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of BoolSetting. This struct is safe to replace or modify but +// BoolJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of Bool. This struct is safe to replace or modify but // should not be done so concurrently. -var BoolSettingJSONMarshaler = new(jsonpb.Marshaler) +var BoolJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *BoolSetting) MarshalJSON() ([]byte, error) { +func (m *Bool) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := BoolSettingJSONMarshaler.Marshal(buf, m); err != nil { + if err := BoolJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*BoolSetting)(nil) +var _ json.Marshaler = (*Bool)(nil) -// BoolSettingJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of BoolSetting. This struct is safe to replace or modify but +// BoolJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of Bool. This struct is safe to replace or modify but // should not be done so concurrently. -var BoolSettingJSONUnmarshaler = new(jsonpb.Unmarshaler) +var BoolJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *BoolSetting) UnmarshalJSON(b []byte) error { - return BoolSettingJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *Bool) UnmarshalJSON(b []byte) error { + return BoolJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*BoolSetting)(nil) +var _ json.Unmarshaler = (*Bool)(nil) -// SingleChoiceListSettingJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of SingleChoiceListSetting. This struct is safe to replace or modify but +// SingleChoiceListJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of SingleChoiceList. This struct is safe to replace or modify but // should not be done so concurrently. -var SingleChoiceListSettingJSONMarshaler = new(jsonpb.Marshaler) +var SingleChoiceListJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *SingleChoiceListSetting) MarshalJSON() ([]byte, error) { +func (m *SingleChoiceList) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := SingleChoiceListSettingJSONMarshaler.Marshal(buf, m); err != nil { + if err := SingleChoiceListJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*SingleChoiceListSetting)(nil) +var _ json.Marshaler = (*SingleChoiceList)(nil) -// SingleChoiceListSettingJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of SingleChoiceListSetting. This struct is safe to replace or modify but +// SingleChoiceListJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of SingleChoiceList. This struct is safe to replace or modify but // should not be done so concurrently. -var SingleChoiceListSettingJSONUnmarshaler = new(jsonpb.Unmarshaler) +var SingleChoiceListJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *SingleChoiceListSetting) UnmarshalJSON(b []byte) error { - return SingleChoiceListSettingJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *SingleChoiceList) UnmarshalJSON(b []byte) error { + return SingleChoiceListJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*SingleChoiceListSetting)(nil) +var _ json.Unmarshaler = (*SingleChoiceList)(nil) -// MultiChoiceListSettingJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of MultiChoiceListSetting. This struct is safe to replace or modify but +// MultiChoiceListJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of MultiChoiceList. This struct is safe to replace or modify but // should not be done so concurrently. -var MultiChoiceListSettingJSONMarshaler = new(jsonpb.Marshaler) +var MultiChoiceListJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *MultiChoiceListSetting) MarshalJSON() ([]byte, error) { +func (m *MultiChoiceList) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := MultiChoiceListSettingJSONMarshaler.Marshal(buf, m); err != nil { + if err := MultiChoiceListJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*MultiChoiceListSetting)(nil) +var _ json.Marshaler = (*MultiChoiceList)(nil) -// MultiChoiceListSettingJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of MultiChoiceListSetting. This struct is safe to replace or modify but +// MultiChoiceListJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of MultiChoiceList. This struct is safe to replace or modify but // should not be done so concurrently. -var MultiChoiceListSettingJSONUnmarshaler = new(jsonpb.Unmarshaler) +var MultiChoiceListJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *MultiChoiceListSetting) UnmarshalJSON(b []byte) error { - return MultiChoiceListSettingJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *MultiChoiceList) UnmarshalJSON(b []byte) error { + return MultiChoiceListJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*MultiChoiceListSetting)(nil) +var _ json.Unmarshaler = (*MultiChoiceList)(nil) // ListOptionJSONMarshaler describes the default jsonpb.Marshaler used by all // instances of ListOption. This struct is safe to replace or modify but @@ -953,41 +1086,41 @@ func (m *ListOption) UnmarshalJSON(b []byte) error { var _ json.Unmarshaler = (*ListOption)(nil) -// SettingsValueJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of SettingsValue. This struct is safe to replace or modify but +// ValueJSONMarshaler describes the default jsonpb.Marshaler used by all +// instances of Value. This struct is safe to replace or modify but // should not be done so concurrently. -var SettingsValueJSONMarshaler = new(jsonpb.Marshaler) +var ValueJSONMarshaler = new(jsonpb.Marshaler) // MarshalJSON satisfies the encoding/json Marshaler interface. This method // uses the more correct jsonpb package to correctly marshal the message. -func (m *SettingsValue) MarshalJSON() ([]byte, error) { +func (m *Value) MarshalJSON() ([]byte, error) { if m == nil { return json.Marshal(nil) } buf := &bytes.Buffer{} - if err := SettingsValueJSONMarshaler.Marshal(buf, m); err != nil { + if err := ValueJSONMarshaler.Marshal(buf, m); err != nil { return nil, err } return buf.Bytes(), nil } -var _ json.Marshaler = (*SettingsValue)(nil) +var _ json.Marshaler = (*Value)(nil) -// SettingsValueJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of SettingsValue. This struct is safe to replace or modify but +// ValueJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all +// instances of Value. This struct is safe to replace or modify but // should not be done so concurrently. -var SettingsValueJSONUnmarshaler = new(jsonpb.Unmarshaler) +var ValueJSONUnmarshaler = new(jsonpb.Unmarshaler) // UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method // uses the more correct jsonpb package to correctly unmarshal the message. -func (m *SettingsValue) UnmarshalJSON(b []byte) error { - return SettingsValueJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) +func (m *Value) UnmarshalJSON(b []byte) error { + return ValueJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) } -var _ json.Unmarshaler = (*SettingsValue)(nil) +var _ json.Unmarshaler = (*Value)(nil) // ListValueJSONMarshaler describes the default jsonpb.Marshaler used by all // instances of ListValue. This struct is safe to replace or modify but @@ -1060,39 +1193,3 @@ func (m *ListOptionValue) UnmarshalJSON(b []byte) error { } var _ json.Unmarshaler = (*ListOptionValue)(nil) - -// SettingsValuesJSONMarshaler describes the default jsonpb.Marshaler used by all -// instances of SettingsValues. This struct is safe to replace or modify but -// should not be done so concurrently. -var SettingsValuesJSONMarshaler = new(jsonpb.Marshaler) - -// MarshalJSON satisfies the encoding/json Marshaler interface. This method -// uses the more correct jsonpb package to correctly marshal the message. -func (m *SettingsValues) MarshalJSON() ([]byte, error) { - if m == nil { - return json.Marshal(nil) - } - - buf := &bytes.Buffer{} - - if err := SettingsValuesJSONMarshaler.Marshal(buf, m); err != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -var _ json.Marshaler = (*SettingsValues)(nil) - -// SettingsValuesJSONUnmarshaler describes the default jsonpb.Unmarshaler used by all -// instances of SettingsValues. This struct is safe to replace or modify but -// should not be done so concurrently. -var SettingsValuesJSONUnmarshaler = new(jsonpb.Unmarshaler) - -// UnmarshalJSON satisfies the encoding/json Unmarshaler interface. This method -// uses the more correct jsonpb package to correctly unmarshal the message. -func (m *SettingsValues) UnmarshalJSON(b []byte) error { - return SettingsValuesJSONUnmarshaler.Unmarshal(bytes.NewReader(b), m) -} - -var _ json.Unmarshaler = (*SettingsValues)(nil) diff --git a/pkg/proto/v0/settings.proto b/pkg/proto/v0/settings.proto index 287106cfac..796675ba1d 100644 --- a/pkg/proto/v0/settings.proto +++ b/pkg/proto/v0/settings.proto @@ -31,126 +31,176 @@ option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = { }; service BundleService { - rpc SaveSettingsBundle(SaveSettingsBundleRequest) returns (SaveSettingsBundleResponse) { + rpc SaveBundle(SaveBundleRequest) returns (SaveBundleResponse) { option (google.api.http) = { post: "/api/v0/settings/bundle-save", body: "*" }; - }; - rpc GetSettingsBundle(GetSettingsBundleRequest) returns (GetSettingsBundleResponse) { + } + rpc GetBundle(GetBundleRequest) returns (GetBundleResponse) { option (google.api.http) = { post: "/api/v0/settings/bundle-get", body: "*" }; - }; - rpc ListSettingsBundles(ListSettingsBundlesRequest) returns (ListSettingsBundlesResponse) { + } + rpc ListBundles(ListBundlesRequest) returns (ListBundlesResponse) { option (google.api.http) = { post: "/api/v0/settings/bundles-list", body: "*" }; - }; + } } service ValueService { - rpc SaveSettingsValue(SaveSettingsValueRequest) returns (SaveSettingsValueResponse) { + rpc SaveValue(SaveValueRequest) returns (SaveValueResponse) { option (google.api.http) = { post: "/api/v0/settings/value-save", body: "*" }; - }; - rpc GetSettingsValue(GetSettingsValueRequest) returns (GetSettingsValueResponse) { + } + rpc GetValue(GetValueRequest) returns (GetValueResponse) { option (google.api.http) = { post: "/api/v0/settings/value-get", body: "*" }; - }; - rpc ListSettingsValues(ListSettingsValuesRequest) returns (ListSettingsValuesResponse) { + } + rpc ListValues(ListValuesRequest) returns (ListValuesResponse) { option (google.api.http) = { post: "/api/v0/settings/values-list", body: "*" }; - }; -} - -// requests and responses for settings bundles -message SaveSettingsBundleRequest { - SettingsBundle settings_bundle = 1; -} - -message SaveSettingsBundleResponse { - SettingsBundle settings_bundle = 1; -} - -message GetSettingsBundleRequest { - Identifier identifier = 1; -} - -message GetSettingsBundleResponse { - SettingsBundle settings_bundle = 1; -} - -message ListSettingsBundlesRequest { - Identifier identifier = 1; -} - -message ListSettingsBundlesResponse { - repeated SettingsBundle settings_bundles = 1; -} - -// requests and responses for settings values -message SaveSettingsValueRequest { - SettingsValue settings_value = 1; -} - -message SaveSettingsValueResponse { - SettingsValue settings_value = 1; -} - -message GetSettingsValueRequest { - Identifier identifier = 1; -} - -message GetSettingsValueResponse { - SettingsValue settings_value = 1; -} - -message ListSettingsValuesRequest { - Identifier identifier = 1; -} - -message ListSettingsValuesResponse { - repeated SettingsValue settings_values = 1; -} - -// generic payloads -message Identifier { - string extension = 1; - string bundle_key = 2; - string setting_key = 3; - string account_uuid = 4; -} - -// payloads for settings bundles -message SettingsBundle { - Identifier identifier = 1; - string display_name = 2; - repeated Setting settings = 3; -} - -message Setting { - string setting_key = 1; - string display_name = 2; - string description = 3; - oneof value { - IntSetting int_value = 4; - StringSetting string_value = 5; - BoolSetting bool_value = 6; - SingleChoiceListSetting single_choice_value = 7; - MultiChoiceListSetting multi_choice_value = 8; + } + rpc GetValueByUniqueIdentifiers(GetValueByUniqueIdentifiersRequest) returns (GetValueResponse) { + option (google.api.http) = { + post: "/api/v0/settings/values-get-by-unique-identifiers", + body: "*" + }; } } -message IntSetting { +// --- +// requests and responses for settings bundles +// --- +message SaveBundleRequest { + Bundle bundle = 1; +} + +message SaveBundleResponse { + Bundle bundle = 1; +} + +message GetBundleRequest { + string bundle_id = 1; +} + +message GetBundleResponse { + Bundle bundle = 1; +} + +message ListBundlesRequest { + string account_uuid = 1; +} + +message ListBundlesResponse { + repeated Bundle bundles = 1; +} + +// requests and responses for settings values +message SaveValueRequest { + Value value = 1; +} + +message SaveValueResponse { + ValueWithIdentifier value = 1; +} + +message GetValueRequest { + string id = 1; +} + +message GetValueResponse { + ValueWithIdentifier value = 1; +} + +message ListValuesRequest { + string bundle_id = 1; + string account_uuid = 2; +} + +message ListValuesResponse { + repeated ValueWithIdentifier values = 1; +} + +message GetValueByUniqueIdentifiersRequest{ + string account_uuid = 1; + string setting_id = 2; +} + +message ValueWithIdentifier { + Identifier identifier = 1; + Value value = 2; +} + +message Identifier { + string extension = 1; + string bundle = 2; + string setting = 3; +} + +// --- +// resource payloads +// --- + +message Resource { + enum Type { + TYPE_UNKNOWN = 0; + TYPE_SYSTEM = 1; + TYPE_FILE = 2; + TYPE_SHARE = 3; + TYPE_SETTING = 4; + TYPE_BUNDLE = 5; + TYPE_USER = 6; + TYPE_GROUP = 7; + } + Type type = 1; + string id = 2; +} + +// --- +// payloads for bundles +// --- + +message Bundle { + enum Type { + TYPE_UNKNOWN = 0; + TYPE_DEFAULT = 1; + TYPE_ROLE = 2; + } + string id = 1; + string name = 2; + Type type = 3; + string extension = 4; + string display_name = 5; + repeated Setting settings = 6; + Resource resource = 7; +} + +message Setting { + string id = 1; + string name = 2; + string display_name = 3; + string description = 4; + oneof value { + Int int_value = 5; + String string_value = 6; + Bool bool_value = 7; + SingleChoiceList single_choice_value = 8; + MultiChoiceList multi_choice_value = 9; + } + Resource resource = 11; +} + +message Int { int64 default = 1; int64 min = 2; int64 max = 3; @@ -158,7 +208,7 @@ message IntSetting { string placeholder = 5; } -message StringSetting { +message String { string default = 1; bool required = 2; int32 min_length = 3; @@ -166,16 +216,16 @@ message StringSetting { string placeholder = 5; } -message BoolSetting { +message Bool { bool default = 1; string label = 2; } -message SingleChoiceListSetting { +message SingleChoiceList { repeated ListOption options = 1; } -message MultiChoiceListSetting { +message MultiChoiceList { repeated ListOption options = 1; } @@ -185,14 +235,23 @@ message ListOption { string display_value = 3; } -// payloads for settings values -message SettingsValue { - Identifier identifier = 1; +// --- +// payloads for values +// --- + +message Value { + // id is the id of the Value. It is generated on saving it. + string id = 1; + string bundle_id = 2; + // setting_id is the id of the setting from within its bundle. + string setting_id = 3; + string account_uuid = 4; + Resource resource = 5; oneof value { - bool bool_value = 2; - int64 int_value = 3; - string string_value = 4; - ListValue list_value = 5; + bool bool_value = 6; + int64 int_value = 7; + string string_value = 8; + ListValue list_value = 9; } } @@ -206,8 +265,3 @@ message ListOptionValue { int64 int_value = 2; } } - -// only meant for serialization -message SettingsValues { - map values = 1; -} diff --git a/pkg/proto/v0/settings.swagger.json b/pkg/proto/v0/settings.swagger.json index f62136841f..edb77f84e1 100644 --- a/pkg/proto/v0/settings.swagger.json +++ b/pkg/proto/v0/settings.swagger.json @@ -26,12 +26,12 @@ "paths": { "/api/v0/settings/bundle-get": { "post": { - "operationId": "BundleService_GetSettingsBundle", + "operationId": "BundleService_GetBundle", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/protoGetSettingsBundleResponse" + "$ref": "#/definitions/protoGetBundleResponse" } }, "default": { @@ -47,7 +47,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/protoGetSettingsBundleRequest" + "$ref": "#/definitions/protoGetBundleRequest" } } ], @@ -58,12 +58,12 @@ }, "/api/v0/settings/bundle-save": { "post": { - "operationId": "BundleService_SaveSettingsBundle", + "operationId": "BundleService_SaveBundle", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/protoSaveSettingsBundleResponse" + "$ref": "#/definitions/protoSaveBundleResponse" } }, "default": { @@ -79,7 +79,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/protoSaveSettingsBundleRequest" + "$ref": "#/definitions/protoSaveBundleRequest" } } ], @@ -90,12 +90,12 @@ }, "/api/v0/settings/bundles-list": { "post": { - "operationId": "BundleService_ListSettingsBundles", + "operationId": "BundleService_ListBundles", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/protoListSettingsBundlesResponse" + "$ref": "#/definitions/protoListBundlesResponse" } }, "default": { @@ -111,7 +111,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/protoListSettingsBundlesRequest" + "$ref": "#/definitions/protoListBundlesRequest" } } ], @@ -122,12 +122,12 @@ }, "/api/v0/settings/value-get": { "post": { - "operationId": "ValueService_GetSettingsValue", + "operationId": "ValueService_GetValue", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/protoGetSettingsValueResponse" + "$ref": "#/definitions/protoGetValueResponse" } }, "default": { @@ -143,7 +143,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/protoGetSettingsValueRequest" + "$ref": "#/definitions/protoGetValueRequest" } } ], @@ -154,12 +154,12 @@ }, "/api/v0/settings/value-save": { "post": { - "operationId": "ValueService_SaveSettingsValue", + "operationId": "ValueService_SaveValue", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/protoSaveSettingsValueResponse" + "$ref": "#/definitions/protoSaveValueResponse" } }, "default": { @@ -175,7 +175,39 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/protoSaveSettingsValueRequest" + "$ref": "#/definitions/protoSaveValueRequest" + } + } + ], + "tags": [ + "ValueService" + ] + } + }, + "/api/v0/settings/values-get-by-unique-identifiers": { + "post": { + "operationId": "ValueService_GetValueByUniqueIdentifiers", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/protoGetValueResponse" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/protoGetValueByUniqueIdentifiersRequest" } } ], @@ -186,12 +218,12 @@ }, "/api/v0/settings/values-list": { "post": { - "operationId": "ValueService_ListSettingsValues", + "operationId": "ValueService_ListValues", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/protoListSettingsValuesResponse" + "$ref": "#/definitions/protoListValuesResponse" } }, "default": { @@ -207,7 +239,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/protoListSettingsValuesRequest" + "$ref": "#/definitions/protoListValuesRequest" } } ], @@ -218,7 +250,7 @@ } }, "definitions": { - "protoBoolSetting": { + "protoBool": { "type": "object", "properties": { "default": { @@ -230,35 +262,84 @@ } } }, - "protoGetSettingsBundleRequest": { + "protoBundle": { "type": "object", "properties": { - "identifier": { - "$ref": "#/definitions/protoIdentifier" + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/protoBundleType" + }, + "extension": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "settings": { + "type": "array", + "items": { + "$ref": "#/definitions/protoSetting" + } + }, + "resource": { + "$ref": "#/definitions/protoResource" } } }, - "protoGetSettingsBundleResponse": { + "protoBundleType": { + "type": "string", + "enum": [ + "TYPE_UNKNOWN", + "TYPE_DEFAULT", + "TYPE_ROLE" + ], + "default": "TYPE_UNKNOWN" + }, + "protoGetBundleRequest": { "type": "object", "properties": { - "settings_bundle": { - "$ref": "#/definitions/protoSettingsBundle" + "bundle_id": { + "type": "string" } } }, - "protoGetSettingsValueRequest": { + "protoGetBundleResponse": { "type": "object", "properties": { - "identifier": { - "$ref": "#/definitions/protoIdentifier" + "bundle": { + "$ref": "#/definitions/protoBundle" } } }, - "protoGetSettingsValueResponse": { + "protoGetValueByUniqueIdentifiersRequest": { "type": "object", "properties": { - "settings_value": { - "$ref": "#/definitions/protoSettingsValue" + "account_uuid": { + "type": "string" + }, + "setting_id": { + "type": "string" + } + } + }, + "protoGetValueRequest": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "protoGetValueResponse": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/protoValueWithIdentifier" } } }, @@ -268,19 +349,15 @@ "extension": { "type": "string" }, - "bundle_key": { + "bundle": { "type": "string" }, - "setting_key": { - "type": "string" - }, - "account_uuid": { + "setting": { "type": "string" } - }, - "title": "generic payloads" + } }, - "protoIntSetting": { + "protoInt": { "type": "object", "properties": { "default": { @@ -304,6 +381,25 @@ } } }, + "protoListBundlesRequest": { + "type": "object", + "properties": { + "account_uuid": { + "type": "string" + } + } + }, + "protoListBundlesResponse": { + "type": "object", + "properties": { + "bundles": { + "type": "array", + "items": { + "$ref": "#/definitions/protoBundle" + } + } + } + }, "protoListOption": { "type": "object", "properties": { @@ -331,44 +427,6 @@ } } }, - "protoListSettingsBundlesRequest": { - "type": "object", - "properties": { - "identifier": { - "$ref": "#/definitions/protoIdentifier" - } - } - }, - "protoListSettingsBundlesResponse": { - "type": "object", - "properties": { - "settings_bundles": { - "type": "array", - "items": { - "$ref": "#/definitions/protoSettingsBundle" - } - } - } - }, - "protoListSettingsValuesRequest": { - "type": "object", - "properties": { - "identifier": { - "$ref": "#/definitions/protoIdentifier" - } - } - }, - "protoListSettingsValuesResponse": { - "type": "object", - "properties": { - "settings_values": { - "type": "array", - "items": { - "$ref": "#/definitions/protoSettingsValue" - } - } - } - }, "protoListValue": { "type": "object", "properties": { @@ -380,7 +438,29 @@ } } }, - "protoMultiChoiceListSetting": { + "protoListValuesRequest": { + "type": "object", + "properties": { + "bundle_id": { + "type": "string" + }, + "account_uuid": { + "type": "string" + } + } + }, + "protoListValuesResponse": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "$ref": "#/definitions/protoValueWithIdentifier" + } + } + } + }, + "protoMultiChoiceList": { "type": "object", "properties": { "options": { @@ -391,44 +471,72 @@ } } }, - "protoSaveSettingsBundleRequest": { + "protoResource": { "type": "object", "properties": { - "settings_bundle": { - "$ref": "#/definitions/protoSettingsBundle" - } - }, - "title": "requests and responses for settings bundles" - }, - "protoSaveSettingsBundleResponse": { - "type": "object", - "properties": { - "settings_bundle": { - "$ref": "#/definitions/protoSettingsBundle" + "type": { + "$ref": "#/definitions/protoResourceType" + }, + "id": { + "type": "string" } } }, - "protoSaveSettingsValueRequest": { + "protoResourceType": { + "type": "string", + "enum": [ + "TYPE_UNKNOWN", + "TYPE_SYSTEM", + "TYPE_FILE", + "TYPE_SHARE", + "TYPE_SETTING", + "TYPE_BUNDLE", + "TYPE_USER", + "TYPE_GROUP" + ], + "default": "TYPE_UNKNOWN" + }, + "protoSaveBundleRequest": { "type": "object", "properties": { - "settings_value": { - "$ref": "#/definitions/protoSettingsValue" + "bundle": { + "$ref": "#/definitions/protoBundle" + } + }, + "title": "---\nrequests and responses for settings bundles\n---" + }, + "protoSaveBundleResponse": { + "type": "object", + "properties": { + "bundle": { + "$ref": "#/definitions/protoBundle" + } + } + }, + "protoSaveValueRequest": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/protoValue" } }, "title": "requests and responses for settings values" }, - "protoSaveSettingsValueResponse": { + "protoSaveValueResponse": { "type": "object", "properties": { - "settings_value": { - "$ref": "#/definitions/protoSettingsValue" + "value": { + "$ref": "#/definitions/protoValueWithIdentifier" } } }, "protoSetting": { "type": "object", "properties": { - "setting_key": { + "id": { + "type": "string" + }, + "name": { "type": "string" }, "display_name": { @@ -438,64 +546,26 @@ "type": "string" }, "int_value": { - "$ref": "#/definitions/protoIntSetting" + "$ref": "#/definitions/protoInt" }, "string_value": { - "$ref": "#/definitions/protoStringSetting" + "$ref": "#/definitions/protoString" }, "bool_value": { - "$ref": "#/definitions/protoBoolSetting" + "$ref": "#/definitions/protoBool" }, "single_choice_value": { - "$ref": "#/definitions/protoSingleChoiceListSetting" + "$ref": "#/definitions/protoSingleChoiceList" }, "multi_choice_value": { - "$ref": "#/definitions/protoMultiChoiceListSetting" + "$ref": "#/definitions/protoMultiChoiceList" + }, + "resource": { + "$ref": "#/definitions/protoResource" } } }, - "protoSettingsBundle": { - "type": "object", - "properties": { - "identifier": { - "$ref": "#/definitions/protoIdentifier" - }, - "display_name": { - "type": "string" - }, - "settings": { - "type": "array", - "items": { - "$ref": "#/definitions/protoSetting" - } - } - }, - "title": "payloads for settings bundles" - }, - "protoSettingsValue": { - "type": "object", - "properties": { - "identifier": { - "$ref": "#/definitions/protoIdentifier" - }, - "bool_value": { - "type": "boolean", - "format": "boolean" - }, - "int_value": { - "type": "string", - "format": "int64" - }, - "string_value": { - "type": "string" - }, - "list_value": { - "$ref": "#/definitions/protoListValue" - } - }, - "title": "payloads for settings values" - }, - "protoSingleChoiceListSetting": { + "protoSingleChoiceList": { "type": "object", "properties": { "options": { @@ -506,7 +576,7 @@ } } }, - "protoStringSetting": { + "protoString": { "type": "object", "properties": { "default": { @@ -529,6 +599,53 @@ } } }, + "protoValue": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id is the id of the Value. It is generated on saving it." + }, + "bundle_id": { + "type": "string" + }, + "setting_id": { + "type": "string", + "description": "setting_id is the id of the setting from within its bundle." + }, + "account_uuid": { + "type": "string" + }, + "resource": { + "$ref": "#/definitions/protoResource" + }, + "bool_value": { + "type": "boolean", + "format": "boolean" + }, + "int_value": { + "type": "string", + "format": "int64" + }, + "string_value": { + "type": "string" + }, + "list_value": { + "$ref": "#/definitions/protoListValue" + } + } + }, + "protoValueWithIdentifier": { + "type": "object", + "properties": { + "identifier": { + "$ref": "#/definitions/protoIdentifier" + }, + "value": { + "$ref": "#/definitions/protoValue" + } + } + }, "protobufAny": { "type": "object", "properties": { diff --git a/pkg/server/grpc/server.go b/pkg/server/grpc/server.go index 8d0201e3d4..fa210b4d6a 100644 --- a/pkg/server/grpc/server.go +++ b/pkg/server/grpc/server.go @@ -21,7 +21,7 @@ func Server(opts ...Option) grpc.Service { grpc.Flags(options.Flags...), ) - handle := svc.NewService(options.Config) + handle := svc.NewService(options.Config, options.Logger) if err := proto.RegisterBundleServiceHandler(service.Server(), handle); err != nil { options.Logger.Fatal().Err(err).Msg("could not register SettingsBundles service handler") } diff --git a/pkg/server/http/server.go b/pkg/server/http/server.go index f7c69d0b05..1c73f17e63 100644 --- a/pkg/server/http/server.go +++ b/pkg/server/http/server.go @@ -25,7 +25,7 @@ func Server(opts ...Option) http.Service { http.Flags(options.Flags...), ) - handle := svc.NewService(options.Config) + handle := svc.NewService(options.Config, options.Logger) { handle = svc.NewInstrument(handle, options.Metrics) diff --git a/pkg/service/v0/service.go b/pkg/service/v0/service.go index 82a32ed115..706beaa456 100644 --- a/pkg/service/v0/service.go +++ b/pkg/service/v0/service.go @@ -3,6 +3,7 @@ package svc import ( "context" + "github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis-pkg/v2/middleware" "github.com/owncloud/ocis-settings/pkg/config" "github.com/owncloud/ocis-settings/pkg/proto/v0" @@ -13,110 +14,170 @@ import ( // Service represents a service. type Service struct { config *config.Config + logger log.Logger manager settings.Manager } // NewService returns a service implementation for Service. -func NewService(cfg *config.Config) Service { +func NewService(cfg *config.Config, logger log.Logger) Service { return Service{ config: cfg, + logger: logger, manager: store.New(cfg), } } -// SaveSettingsBundle implements the BundleServiceHandler interface -func (g Service) SaveSettingsBundle(c context.Context, req *proto.SaveSettingsBundleRequest, res *proto.SaveSettingsBundleResponse) error { - req.SettingsBundle.Identifier = getFailsafeIdentifier(c, req.SettingsBundle.Identifier) - if validationError := validateSaveSettingsBundle(req); validationError != nil { +// SaveBundle implements the BundleServiceHandler interface +func (g Service) SaveBundle(c context.Context, req *proto.SaveBundleRequest, res *proto.SaveBundleResponse) error { + cleanUpResource(c, req.Bundle.Resource) + if validationError := validateSaveBundle(req); validationError != nil { return validationError } - r, err := g.manager.WriteBundle(req.SettingsBundle) + r, err := g.manager.WriteBundle(req.Bundle) if err != nil { return err } - res.SettingsBundle = r + res.Bundle = r return nil } -// GetSettingsBundle implements the BundleServiceHandler interface -func (g Service) GetSettingsBundle(c context.Context, req *proto.GetSettingsBundleRequest, res *proto.GetSettingsBundleResponse) error { - req.Identifier = getFailsafeIdentifier(c, req.Identifier) - if validationError := validateGetSettingsBundle(req); validationError != nil { +// GetBundle implements the BundleServiceHandler interface +func (g Service) GetBundle(c context.Context, req *proto.GetBundleRequest, res *proto.GetBundleResponse) error { + if validationError := validateGetBundle(req); validationError != nil { return validationError } - r, err := g.manager.ReadBundle(req.Identifier) + r, err := g.manager.ReadBundle(req.BundleId) if err != nil { return err } - res.SettingsBundle = r + res.Bundle = r return nil } -// ListSettingsBundles implements the BundleServiceHandler interface -func (g Service) ListSettingsBundles(c context.Context, req *proto.ListSettingsBundlesRequest, res *proto.ListSettingsBundlesResponse) error { - req.Identifier = getFailsafeIdentifier(c, req.Identifier) - if validationError := validateListSettingsBundles(req); validationError != nil { +// ListBundles implements the BundleServiceHandler interface +func (g Service) ListBundles(c context.Context, req *proto.ListBundlesRequest, res *proto.ListBundlesResponse) error { + // fetch all bundles + req.AccountUuid = getValidatedAccountUUID(c, req.AccountUuid) + if validationError := validateListBundles(req); validationError != nil { return validationError } - r, err := g.manager.ListBundles(req.Identifier) + bundles, err := g.manager.ListBundles(proto.Bundle_TYPE_DEFAULT) if err != nil { return err } - res.SettingsBundles = r + res.Bundles = bundles return nil } -// SaveSettingsValue implements the ValueServiceHandler interface -func (g Service) SaveSettingsValue(c context.Context, req *proto.SaveSettingsValueRequest, res *proto.SaveSettingsValueResponse) error { - req.SettingsValue.Identifier = getFailsafeIdentifier(c, req.SettingsValue.Identifier) - if validationError := validateSaveSettingsValue(req); validationError != nil { +// SaveValue implements the ValueServiceHandler interface +func (g Service) SaveValue(c context.Context, req *proto.SaveValueRequest, res *proto.SaveValueResponse) error { + req.Value.AccountUuid = getValidatedAccountUUID(c, req.Value.AccountUuid) + cleanUpResource(c, req.Value.Resource) + // TODO: we need to check, if the authenticated user has permission to write the value for the specified resource (e.g. global, file with id xy, ...) + if validationError := validateSaveValue(req); validationError != nil { return validationError } - r, err := g.manager.WriteValue(req.SettingsValue) + r, err := g.manager.WriteValue(req.Value) if err != nil { return err } - res.SettingsValue = r - return nil -} - -// GetSettingsValue implements the ValueServiceHandler interface -func (g Service) GetSettingsValue(c context.Context, req *proto.GetSettingsValueRequest, res *proto.GetSettingsValueResponse) error { - req.Identifier = getFailsafeIdentifier(c, req.Identifier) - if validationError := validateGetSettingsValue(req); validationError != nil { - return validationError - } - r, err := g.manager.ReadValue(req.Identifier) + valueWithIdentifier, err := g.getValueWithIdentifier(r) if err != nil { return err } - res.SettingsValue = r + res.Value = valueWithIdentifier return nil } -// ListSettingsValues implements the ValueServiceHandler interface -func (g Service) ListSettingsValues(c context.Context, req *proto.ListSettingsValuesRequest, res *proto.ListSettingsValuesResponse) error { - req.Identifier = getFailsafeIdentifier(c, req.Identifier) - if validationError := validateListSettingsValues(req); validationError != nil { +// GetValue implements the ValueServiceHandler interface +func (g Service) GetValue(c context.Context, req *proto.GetValueRequest, res *proto.GetValueResponse) error { + if validationError := validateGetValue(req); validationError != nil { return validationError } - r, err := g.manager.ListValues(req.Identifier) + r, err := g.manager.ReadValue(req.Id) if err != nil { return err } - res.SettingsValues = r + valueWithIdentifier, err := g.getValueWithIdentifier(r) + if err != nil { + return err + } + res.Value = valueWithIdentifier return nil } -// getFailsafeIdentifier makes sure that there is an identifier, and that the account uuid is injected if needed. -func getFailsafeIdentifier(c context.Context, identifier *proto.Identifier) *proto.Identifier { - if identifier == nil { - identifier = &proto.Identifier{} +// GetValueByUniqueIdentifiers implements the ValueService interface +func (g Service) GetValueByUniqueIdentifiers(ctx context.Context, in *proto.GetValueByUniqueIdentifiersRequest, res *proto.GetValueResponse) error { + v, err := g.manager.ReadValueByUniqueIdentifiers(in.AccountUuid, in.SettingId) + if err != nil { + return err } - if identifier.AccountUuid == "me" { - if ownAccountUUID, ok := c.Value(middleware.UUIDKey).(string); ok { - identifier.AccountUuid = ownAccountUUID + + if v.BundleId != "" { + valueWithIdentifier, err := g.getValueWithIdentifier(v) + if err != nil { + return err + } + + res.Value = valueWithIdentifier + } + return nil +} + +// ListValues implements the ValueServiceHandler interface +func (g Service) ListValues(c context.Context, req *proto.ListValuesRequest, res *proto.ListValuesResponse) error { + req.AccountUuid = getValidatedAccountUUID(c, req.AccountUuid) + if validationError := validateListValues(req); validationError != nil { + return validationError + } + r, err := g.manager.ListValues(req.BundleId, req.AccountUuid) + if err != nil { + return err + } + var result []*proto.ValueWithIdentifier + for _, value := range r { + valueWithIdentifier, err := g.getValueWithIdentifier(value) + if err == nil { + result = append(result, valueWithIdentifier) } } - return identifier + res.Values = result + return nil +} + +func (g Service) getValueWithIdentifier(value *proto.Value) (*proto.ValueWithIdentifier, error) { + bundle, err := g.manager.ReadBundle(value.BundleId) + if err != nil { + return nil, err + } + setting, err := g.manager.ReadSetting(value.SettingId) + if err != nil { + return nil, err + } + return &proto.ValueWithIdentifier{ + Identifier: &proto.Identifier{ + Extension: bundle.Extension, + Bundle: bundle.Name, + Setting: setting.Name, + }, + Value: value, + }, nil +} + +// cleanUpResource makes sure that the account uuid of the authenticated user is injected if needed. +func cleanUpResource(c context.Context, resource *proto.Resource) { + if resource != nil && resource.Type == proto.Resource_TYPE_USER { + resource.Id = getValidatedAccountUUID(c, resource.Id) + } +} + +// getValidatedAccountUUID converts `me` into an actual account uuid from the context, if possible. +// the result of this function will always be a valid lower-case UUID or an empty string. +func getValidatedAccountUUID(c context.Context, accountUUID string) string { + if accountUUID == "me" { + if ownAccountUUID, ok := c.Value(middleware.UUIDKey).(string); ok { + accountUUID = ownAccountUUID + } + } + return accountUUID } diff --git a/pkg/service/v0/validator.go b/pkg/service/v0/validator.go index 8e934eb46b..231dccfbb6 100644 --- a/pkg/service/v0/validator.go +++ b/pkg/service/v0/validator.go @@ -1,6 +1,7 @@ package svc import ( + "github.com/go-ozzo/ozzo-validation/v4/is" "regexp" validation "github.com/go-ozzo/ozzo-validation/v4" @@ -9,73 +10,96 @@ import ( var ( regexForAccountUUID = regexp.MustCompile(`^[A-Za-z0-9\-_.+@]+$`) - accountUUIDRule = []validation.Rule{ - validation.Required, + requireAccountID = []validation.Rule{ + validation.Required, // use rule for validation error message consistency (".. must not be blank" on empty strings) validation.Match(regexForAccountUUID), } - regexForKeys = regexp.MustCompile(`^[A-Za-z0-9\-_]*$`) - keyRule = []validation.Rule{ + regexForKeys = regexp.MustCompile(`^[A-Za-z0-9\-_]*$`) + requireAlphanumeric = []validation.Rule{ validation.Required, validation.Match(regexForKeys), } ) -func validateSaveSettingsBundle(req *proto.SaveSettingsBundleRequest) error { - if err := validateBundleIdentifier(req.SettingsBundle.Identifier); err != nil { +func validateSaveBundle(req *proto.SaveBundleRequest) error { + if err := validation.ValidateStruct( + req.Bundle, + validation.Field(&req.Bundle.Id, validation.When(req.Bundle.Id != "", is.UUID)), + validation.Field(&req.Bundle.Name, requireAlphanumeric...), + validation.Field(&req.Bundle.Type, validation.NotIn(proto.Bundle_TYPE_UNKNOWN)), + validation.Field(&req.Bundle.Extension, requireAlphanumeric...), + validation.Field(&req.Bundle.DisplayName, validation.Required), + validation.Field(&req.Bundle.Settings, validation.Required), + ); err != nil { return err } + if err := validateResource(req.Bundle.Resource); err != nil { + return err + } + for i := range req.Bundle.Settings { + if err := validateSetting(req.Bundle.Settings[i]); err != nil { + return err + } + } + return nil +} + +func validateGetBundle(req *proto.GetBundleRequest) error { + return validation.Validate(&req.BundleId, requireAccountID...) +} + +func validateListBundles(req *proto.ListBundlesRequest) error { + return validation.Validate(&req.AccountUuid, requireAccountID...) +} + +func validateSaveValue(req *proto.SaveValueRequest) error { + if err := validation.ValidateStruct( + req.Value, + validation.Field(&req.Value.Id, validation.When(req.Value.Id != "", is.UUID)), + validation.Field(&req.Value.BundleId, is.UUID), + validation.Field(&req.Value.SettingId, is.UUID), + validation.Field(&req.Value.AccountUuid, requireAccountID...), + ); err != nil { + return err + } + + if err := validateResource(req.Value.Resource); err != nil { + return err + } + + // TODO: validate values against the respective setting. need to check if constraints of the setting are fulfilled. + return nil +} + +func validateGetValue(req *proto.GetValueRequest) error { + return validation.Validate(req.Id, is.UUID) +} + +func validateListValues(req *proto.ListValuesRequest) error { return validation.ValidateStruct( - req.SettingsBundle, - validation.Field(&req.SettingsBundle.DisplayName, validation.Required), - validation.Field(&req.SettingsBundle.Settings, validation.Required), + req, + validation.Field(&req.BundleId, validation.When(req.BundleId != "", is.UUID)), + validation.Field(&req.AccountUuid, validation.When(req.AccountUuid != "", validation.Match(regexForAccountUUID))), ) } -func validateGetSettingsBundle(req *proto.GetSettingsBundleRequest) error { - return validateBundleIdentifier(req.Identifier) +// validateResource is an internal helper for validating the content of a resource. +func validateResource(resource *proto.Resource) error { + if err := validation.Validate(&resource, validation.Required); err != nil { + return err + } + return validation.Validate(&resource, validation.NotIn(proto.Resource_TYPE_UNKNOWN)) } -func validateListSettingsBundles(req *proto.ListSettingsBundlesRequest) error { - return validation.ValidateStruct( - req.Identifier, - validation.Field(&req.Identifier.Extension, validation.Match(regexForKeys)), - ) -} - -func validateSaveSettingsValue(req *proto.SaveSettingsValueRequest) error { - return validateValueIdentifier(req.SettingsValue.Identifier) -} - -func validateGetSettingsValue(req *proto.GetSettingsValueRequest) error { - return validateValueIdentifier(req.Identifier) -} - -func validateListSettingsValues(req *proto.ListSettingsValuesRequest) error { - return validation.ValidateStruct( - req.Identifier, - validation.Field(&req.Identifier.AccountUuid, accountUUIDRule...), - validation.Field(&req.Identifier.Extension, validation.Match(regexForKeys)), - validation.Field(&req.Identifier.Extension, validation.When(req.Identifier.BundleKey != "", validation.Required)), - validation.Field(&req.Identifier.BundleKey, validation.Match(regexForKeys)), - validation.Field(&req.Identifier.BundleKey, validation.When(req.Identifier.SettingKey != "", validation.Required)), - validation.Field(&req.Identifier.SettingKey, validation.Match(regexForKeys)), - ) -} - -func validateBundleIdentifier(identifier *proto.Identifier) error { - return validation.ValidateStruct( - identifier, - validation.Field(&identifier.Extension, keyRule...), - validation.Field(&identifier.BundleKey, keyRule...), - ) -} - -func validateValueIdentifier(identifier *proto.Identifier) error { - return validation.ValidateStruct( - identifier, - validation.Field(&identifier.Extension, keyRule...), - validation.Field(&identifier.BundleKey, keyRule...), - validation.Field(&identifier.SettingKey, keyRule...), - validation.Field(&identifier.AccountUuid, accountUUIDRule...), - ) +// validateSetting is an internal helper for validating the content of a setting. +func validateSetting(setting *proto.Setting) error { + // TODO: make sanity checks, like for int settings, min <= default <= max. + if err := validation.ValidateStruct( + setting, + validation.Field(&setting.Id, validation.When(setting.Id != "", is.UUID)), + validation.Field(&setting.Name, requireAlphanumeric...), + ); err != nil { + return err + } + return validateResource(setting.Resource) } diff --git a/pkg/settings/settings.go b/pkg/settings/settings.go index 0d26bfbb41..42556f9844 100644 --- a/pkg/settings/settings.go +++ b/pkg/settings/settings.go @@ -21,14 +21,16 @@ type Manager interface { // BundleManager is a bundle service interface for abstraction of storage implementations type BundleManager interface { - ReadBundle(identifier *proto.Identifier) (*proto.SettingsBundle, error) - WriteBundle(bundle *proto.SettingsBundle) (*proto.SettingsBundle, error) - ListBundles(identifier *proto.Identifier) ([]*proto.SettingsBundle, error) + ListBundles(bundleType proto.Bundle_Type) ([]*proto.Bundle, error) + ReadBundle(bundleID string) (*proto.Bundle, error) + WriteBundle(bundle *proto.Bundle) (*proto.Bundle, error) + ReadSetting(settingID string) (*proto.Setting, error) } // ValueManager is a value service interface for abstraction of storage implementations type ValueManager interface { - ReadValue(identifier *proto.Identifier) (*proto.SettingsValue, error) - WriteValue(value *proto.SettingsValue) (*proto.SettingsValue, error) - ListValues(identifier *proto.Identifier) ([]*proto.SettingsValue, error) + ListValues(bundleID, accountUUID string) ([]*proto.Value, error) + ReadValue(valueID string) (*proto.Value, error) + ReadValueByUniqueIdentifiers(accountUUID, settingID string) (*proto.Value, error) + WriteValue(value *proto.Value) (*proto.Value, error) } diff --git a/pkg/store/filesystem/bundles.go b/pkg/store/filesystem/bundles.go index 89a98a3dde..e088e8a7e2 100644 --- a/pkg/store/filesystem/bundles.go +++ b/pkg/store/filesystem/bundles.go @@ -2,55 +2,55 @@ package store import ( + "fmt" "io/ioutil" - "path" + "path/filepath" + "sync" + "github.com/gofrs/uuid" + merrors "github.com/micro/go-micro/v2/errors" "github.com/owncloud/ocis-settings/pkg/proto/v0" ) -// ListBundles returns all bundles in the mountPath folder belonging to the given extension -func (s Store) ListBundles(identifier *proto.Identifier) ([]*proto.SettingsBundle, error) { - var records []*proto.SettingsBundle - bundlesFolder := s.buildFolderPathBundles(false) - extensionFolders, err := ioutil.ReadDir(bundlesFolder) +var m = &sync.RWMutex{} + +// ListBundles returns all bundles in the dataPath folder that match the given type. +func (s Store) ListBundles(bundleType proto.Bundle_Type) ([]*proto.Bundle, error) { + // FIXME: list requests should be ran against a cache, not FS + m.RLock() + defer m.RUnlock() + + var records []*proto.Bundle + bundlesFolder := s.buildFolderPathForBundles(false) + bundleFiles, err := ioutil.ReadDir(bundlesFolder) if err != nil { return records, nil } - if len(identifier.Extension) < 1 { - s.Logger.Info().Msg("listing all bundles") - } else { - s.Logger.Info().Msgf("listing bundles by extension %v", identifier.Extension) - } - for _, extensionFolder := range extensionFolders { - extensionPath := path.Join(bundlesFolder, extensionFolder.Name()) - bundleFiles, err := ioutil.ReadDir(extensionPath) - if err == nil { - for _, bundleFile := range bundleFiles { - record := proto.SettingsBundle{} - bundlePath := path.Join(extensionPath, bundleFile.Name()) - err = s.parseRecordFromFile(&record, bundlePath) - if err != nil { - s.Logger.Warn().Msgf("error reading %v", bundlePath) - continue - } - if len(identifier.Extension) == 0 || identifier.Extension == record.Identifier.Extension { - records = append(records, &record) - } - } - } else { - s.Logger.Err(err).Msgf("error reading %v", extensionPath) + for _, bundleFile := range bundleFiles { + record := proto.Bundle{} + err = s.parseRecordFromFile(&record, filepath.Join(bundlesFolder, bundleFile.Name())) + if err != nil { + s.Logger.Warn().Msgf("error reading %v", bundleFile) + continue } + if record.Type != bundleType { + continue + } + records = append(records, &record) } return records, nil } -// ReadBundle tries to find a bundle by the given identifier within the mountPath. -// Extension and BundleKey within the identifier are required. -func (s Store) ReadBundle(identifier *proto.Identifier) (*proto.SettingsBundle, error) { - filePath := s.buildFilePathFromBundleArgs(identifier.Extension, identifier.BundleKey, false) - record := proto.SettingsBundle{} +// ReadBundle tries to find a bundle by the given id within the dataPath. +func (s Store) ReadBundle(bundleID string) (*proto.Bundle, error) { + // FIXME: locking should happen on the file here, not globally. + m.RLock() + defer m.RUnlock() + + filePath := s.buildFilePathForBundle(bundleID, false) + record := proto.Bundle{} if err := s.parseRecordFromFile(&record, filePath); err != nil { return nil, err } @@ -59,10 +59,35 @@ func (s Store) ReadBundle(identifier *proto.Identifier) (*proto.SettingsBundle, return &record, nil } -// WriteBundle writes the given record into a file within the mountPath -// Extension and BundleKey within the record identifier are required. -func (s Store) WriteBundle(record *proto.SettingsBundle) (*proto.SettingsBundle, error) { - filePath := s.buildFilePathFromBundle(record, true) +// ReadSetting tries to find a setting by the given id within the dataPath. +func (s Store) ReadSetting(settingID string) (*proto.Setting, error) { + // FIXME: locking should happen on the file here, not globally. + m.RLock() + defer m.RUnlock() + + bundles, err := s.ListBundles(proto.Bundle_TYPE_DEFAULT) + if err != nil { + return nil, err + } + for _, bundle := range bundles { + for _, setting := range bundle.Settings { + if setting.Id == settingID { + return setting, nil + } + } + } + return nil, merrors.NotFound(settingID, fmt.Sprintf("could not read setting: %v", settingID)) +} + +// WriteBundle writes the given record into a file within the dataPath. +func (s Store) WriteBundle(record *proto.Bundle) (*proto.Bundle, error) { + // FIXME: locking should happen on the file here, not globally. + m.Lock() + defer m.Unlock() + if record.Id == "" { + record.Id = uuid.Must(uuid.NewV4()).String() + } + filePath := s.buildFilePathForBundle(record.Id, true) if err := s.writeRecordToFile(record, filePath); err != nil { return nil, err } diff --git a/pkg/store/filesystem/paths.go b/pkg/store/filesystem/paths.go index 9bb1c54755..a2fcd8d231 100644 --- a/pkg/store/filesystem/paths.go +++ b/pkg/store/filesystem/paths.go @@ -2,52 +2,43 @@ package store import ( "os" - "path" - - "github.com/owncloud/ocis-settings/pkg/proto/v0" + "path/filepath" ) const folderNameBundles = "bundles" const folderNameValues = "values" -// Builds the folder path for storing settings bundles. If mkdir is true, folders in the path will be created if necessary. -func (s Store) buildFolderPathBundles(mkdir bool) string { - folderPath := path.Join(s.mountPath, folderNameBundles) +// buildFolderPathForBundles builds the folder path for storing settings bundles. If mkdir is true, folders in the path will be created if necessary. +func (s Store) buildFolderPathForBundles(mkdir bool) string { + folderPath := filepath.Join(s.mountPath, folderNameBundles) if mkdir { s.ensureFolderExists(folderPath) } return folderPath } -// Builds a unique file name from the given settings bundle. If mkdir is true, folders in the path will be created if necessary. -func (s Store) buildFilePathFromBundle(bundle *proto.SettingsBundle, mkdir bool) string { - return s.buildFilePathFromBundleArgs(bundle.Identifier.Extension, bundle.Identifier.BundleKey, mkdir) +// buildFilePathForBundle builds a unique file name from the given params. If mkdir is true, folders in the path will be created if necessary. +func (s Store) buildFilePathForBundle(bundleID string, mkdir bool) string { + extensionFolder := s.buildFolderPathForBundles(mkdir) + return filepath.Join(extensionFolder, bundleID+".json") } -// Builds a unique file name from the given params. If mkdir is true, folders in the path will be created if necessary. -func (s Store) buildFilePathFromBundleArgs(extension string, bundleKey string, mkdir bool) string { - extensionFolder := path.Join(s.mountPath, folderNameBundles, extension) +// buildFolderPathForValues builds the folder path for storing settings values. If mkdir is true, folders in the path will be created if necessary. +func (s Store) buildFolderPathForValues(mkdir bool) string { + folderPath := filepath.Join(s.mountPath, folderNameValues) if mkdir { - s.ensureFolderExists(extensionFolder) + s.ensureFolderExists(folderPath) } - return path.Join(extensionFolder, bundleKey+".json") + return folderPath } -// Builds a unique file name from the given settings value. If mkdir is true, folders in the path will be created if necessary. -func (s Store) buildFilePathFromValue(value *proto.SettingsValue, mkdir bool) string { - return s.buildFilePathFromValueArgs(value.Identifier.AccountUuid, value.Identifier.Extension, value.Identifier.BundleKey, mkdir) +// buildFilePathForValue builds a unique file name from the given params. If mkdir is true, folders in the path will be created if necessary. +func (s Store) buildFilePathForValue(valueID string, mkdir bool) string { + extensionFolder := s.buildFolderPathForValues(mkdir) + return filepath.Join(extensionFolder, valueID+".json") } -// Builds a unique file name from the given params. If mkdir is true, folders in the path will be created if necessary. -func (s Store) buildFilePathFromValueArgs(accountUUID string, extension string, bundleKey string, mkdir bool) string { - extensionFolder := path.Join(s.mountPath, folderNameValues, accountUUID, extension) - if mkdir { - s.ensureFolderExists(extensionFolder) - } - return path.Join(extensionFolder, bundleKey+".json") -} - -// Checks if the given path is an existing folder and creates one if not existing +// ensureFolderExists checks if the given path is an existing folder and creates one if not existing func (s Store) ensureFolderExists(path string) { if _, err := os.Stat(path); os.IsNotExist(err) { err = os.MkdirAll(path, 0700) diff --git a/pkg/store/filesystem/store.go b/pkg/store/filesystem/store.go index c41e3ae09a..398ea3910d 100644 --- a/pkg/store/filesystem/store.go +++ b/pkg/store/filesystem/store.go @@ -12,7 +12,7 @@ import ( var ( // Name is the default name for the settings store - Name = "ocis-settings-store" + Name = "ocis-settings" managerName = "filesystem" ) @@ -24,7 +24,13 @@ type Store struct { // New creates a new store func New(cfg *config.Config) settings.Manager { - s := Store{} + s := Store{ + Logger: olog.NewLogger( + olog.Color(cfg.Log.Color), + olog.Pretty(cfg.Log.Pretty), + olog.Level(cfg.Log.Level), + ), + } dest := path.Join(cfg.Storage.RootMountPath, Name) if _, err := os.Stat(dest); err != nil { diff --git a/pkg/store/filesystem/values.go b/pkg/store/filesystem/values.go index 04828fae12..6336ec2eb1 100644 --- a/pkg/store/filesystem/values.go +++ b/pkg/store/filesystem/values.go @@ -2,108 +2,95 @@ package store import ( - "os" - "path" + "io/ioutil" "path/filepath" + "github.com/gofrs/uuid" "github.com/owncloud/ocis-settings/pkg/proto/v0" - "google.golang.org/grpc/codes" - gstatus "google.golang.org/grpc/status" ) -// ReadValue tries to find a value by the given identifier attributes within the mountPath -// All identifier fields are required. -func (s Store) ReadValue(identifier *proto.Identifier) (*proto.SettingsValue, error) { - filePath := s.buildFilePathFromValueArgs(identifier.AccountUuid, identifier.Extension, identifier.BundleKey, false) - values, err := s.readValuesMapFromFile(filePath) +// ListValues reads all values that match the given bundleId and accountUUID. +// If the bundleId is empty, it's ignored for filtering. +// If the accountUUID is empty, only values with empty accountUUID are returned. +// If the accountUUID is not empty, values with an empty or with a matching accountUUID are returned. +func (s Store) ListValues(bundleID, accountUUID string) ([]*proto.Value, error) { + var records []*proto.Value + valuesFolder := s.buildFolderPathForValues(false) + valueFiles, err := ioutil.ReadDir(valuesFolder) if err != nil { - return nil, err + return records, nil } - if value := values.Values[identifier.SettingKey]; value != nil { - return value, nil + + for _, valueFile := range valueFiles { + record := proto.Value{} + err := s.parseRecordFromFile(&record, filepath.Join(valuesFolder, valueFile.Name())) + if err != nil { + s.Logger.Warn().Msgf("error reading %v", valueFile) + continue + } + if bundleID != "" && record.BundleId != bundleID { + continue + } + // if requested accountUUID empty -> fetch all system level values + if accountUUID == "" && record.AccountUuid != "" { + continue + } + // if requested accountUUID empty -> fetch all individual + all system level values + if accountUUID != "" && record.AccountUuid != "" && record.AccountUuid != accountUUID { + continue + } + records = append(records, &record) } - // TODO: we want to return sensible defaults here, when the value was not found - return nil, gstatus.Error(codes.NotFound, "SettingsValue not set") + + return records, nil } -// WriteValue writes the given SettingsValue into a file within the mountPath -// All identifier fields within the value are required. -func (s Store) WriteValue(value *proto.SettingsValue) (*proto.SettingsValue, error) { - filePath := s.buildFilePathFromValue(value, true) - values, err := s.readValuesMapFromFile(filePath) +// ReadValue tries to find a value by the given valueId within the dataPath +func (s Store) ReadValue(valueID string) (*proto.Value, error) { + filePath := s.buildFilePathForValue(valueID, false) + record := proto.Value{} + if err := s.parseRecordFromFile(&record, filePath); err != nil { + return nil, err + } + + s.Logger.Debug().Msgf("read contents from file: %v", filePath) + return &record, nil +} + +// ReadValueByUniqueIdentifiers tries to find a value given a set of unique identifiers +func (s Store) ReadValueByUniqueIdentifiers(accountUUID, settingID string) (*proto.Value, error) { + valuesFolder := s.buildFolderPathForValues(false) + files, err := ioutil.ReadDir(valuesFolder) if err != nil { return nil, err } - values.Values[value.Identifier.SettingKey] = value - if err := s.writeRecordToFile(values, filePath); err != nil { + for i := range files { + if !files[i].IsDir() { + r := proto.Value{} + s.Logger.Debug().Msgf("reading contents from file: %v", filepath.Join(valuesFolder, files[i].Name())) + if err := s.parseRecordFromFile(&r, filepath.Join(valuesFolder, files[i].Name())); err != nil { + s.Logger.Debug().Msgf("match found: %v", filepath.Join(valuesFolder, files[i].Name())) + return &proto.Value{}, nil + } + + if r.AccountUuid == accountUUID && r.SettingId == settingID { + return &r, nil + } + } + } + + return &proto.Value{}, nil +} + +// WriteValue writes the given value into a file within the dataPath +func (s Store) WriteValue(value *proto.Value) (*proto.Value, error) { + s.Logger.Debug().Str("value", value.String()).Msg("writing value") + if value.Id == "" { + value.Id = uuid.Must(uuid.NewV4()).String() + } + filePath := s.buildFilePathForValue(value.Id, true) + if err := s.writeRecordToFile(value, filePath); err != nil { return nil, err } return value, nil } - -// ListValues reads all values within the scope of the given identifier -// AccountUuid is required. -func (s Store) ListValues(identifier *proto.Identifier) ([]*proto.SettingsValue, error) { - accountFolderPath := path.Join(s.mountPath, folderNameValues, identifier.AccountUuid) - var values []*proto.SettingsValue - if _, err := os.Stat(accountFolderPath); err != nil { - return values, nil - } - - // depending on the set values in the identifier arg, collect all SettingValues files for the account - var valueFilePaths []string - if len(identifier.Extension) < 1 { - if err := filepath.Walk(accountFolderPath, func(path string, info os.FileInfo, err error) error { - if err != nil { - return err - } - valueFilePaths = append(valueFilePaths, path) - return nil - }); err != nil { - s.Logger.Err(err).Msgf("error reading %v", accountFolderPath) - return values, nil - } - } else if len(identifier.BundleKey) < 1 { - extensionPath := path.Join(accountFolderPath, identifier.Extension) - if err := filepath.Walk(extensionPath, func(path string, info os.FileInfo, err error) error { - if err != nil { - return err - } - valueFilePaths = append(valueFilePaths, path) - return nil - }); err != nil { - s.Logger.Err(err).Msgf("error reading %v", extensionPath) - return values, nil - } - } else { - bundlePath := path.Join(accountFolderPath, identifier.Extension, identifier.BundleKey+".json") - valueFilePaths = append(valueFilePaths, bundlePath) - } - - // parse the SettingValues from the collected files - for _, filePath := range valueFilePaths { - bundleValues, err := s.readValuesMapFromFile(filePath) - if err != nil { - s.Logger.Err(err).Msgf("error reading %v", filePath) - } else { - for _, value := range bundleValues.Values { - values = append(values, value) - } - } - } - return values, nil -} - -// Reads SettingsValues as map from the given file or returns an empty map if the file doesn't exist. -func (s Store) readValuesMapFromFile(filePath string) (*proto.SettingsValues, error) { - values := &proto.SettingsValues{} - err := s.parseRecordFromFile(values, filePath) - if err != nil { - if os.IsNotExist(err) { - values.Values = map[string]*proto.SettingsValue{} - } else { - return nil, err - } - } - return values, nil -} diff --git a/ui/client/settings/index.js b/ui/client/settings/index.js index 003ffe454e..e577677827 100644 --- a/ui/client/settings/index.js +++ b/ui/client/settings/index.js @@ -29,13 +29,13 @@ export const request = (method, url, body, queryParameters, form, config) => { ==========================================================*/ /** * - * request: BundleService_GetSettingsBundle - * url: BundleService_GetSettingsBundleURL - * method: BundleService_GetSettingsBundle_TYPE - * raw_url: BundleService_GetSettingsBundle_RAW_URL + * request: BundleService_GetBundle + * url: BundleService_GetBundleURL + * method: BundleService_GetBundle_TYPE + * raw_url: BundleService_GetBundle_RAW_URL * @param body - */ -export const BundleService_GetSettingsBundle = function(parameters = {}) { +export const BundleService_GetBundle = function(parameters = {}) { const domain = parameters.$domain ? parameters.$domain : getDomain() const config = parameters.$config let path = '/api/v0/settings/bundle-get' @@ -55,13 +55,13 @@ export const BundleService_GetSettingsBundle = function(parameters = {}) { } return request('post', domain + path, body, queryParameters, form, config) } -export const BundleService_GetSettingsBundle_RAW_URL = function() { +export const BundleService_GetBundle_RAW_URL = function() { return '/api/v0/settings/bundle-get' } -export const BundleService_GetSettingsBundle_TYPE = function() { +export const BundleService_GetBundle_TYPE = function() { return 'post' } -export const BundleService_GetSettingsBundleURL = function(parameters = {}) { +export const BundleService_GetBundleURL = function(parameters = {}) { let queryParameters = {} const domain = parameters.$domain ? parameters.$domain : getDomain() let path = '/api/v0/settings/bundle-get' @@ -75,13 +75,13 @@ export const BundleService_GetSettingsBundleURL = function(parameters = {}) { } /** * - * request: BundleService_SaveSettingsBundle - * url: BundleService_SaveSettingsBundleURL - * method: BundleService_SaveSettingsBundle_TYPE - * raw_url: BundleService_SaveSettingsBundle_RAW_URL + * request: BundleService_SaveBundle + * url: BundleService_SaveBundleURL + * method: BundleService_SaveBundle_TYPE + * raw_url: BundleService_SaveBundle_RAW_URL * @param body - */ -export const BundleService_SaveSettingsBundle = function(parameters = {}) { +export const BundleService_SaveBundle = function(parameters = {}) { const domain = parameters.$domain ? parameters.$domain : getDomain() const config = parameters.$config let path = '/api/v0/settings/bundle-save' @@ -101,13 +101,13 @@ export const BundleService_SaveSettingsBundle = function(parameters = {}) { } return request('post', domain + path, body, queryParameters, form, config) } -export const BundleService_SaveSettingsBundle_RAW_URL = function() { +export const BundleService_SaveBundle_RAW_URL = function() { return '/api/v0/settings/bundle-save' } -export const BundleService_SaveSettingsBundle_TYPE = function() { +export const BundleService_SaveBundle_TYPE = function() { return 'post' } -export const BundleService_SaveSettingsBundleURL = function(parameters = {}) { +export const BundleService_SaveBundleURL = function(parameters = {}) { let queryParameters = {} const domain = parameters.$domain ? parameters.$domain : getDomain() let path = '/api/v0/settings/bundle-save' @@ -121,13 +121,13 @@ export const BundleService_SaveSettingsBundleURL = function(parameters = {}) { } /** * - * request: BundleService_ListSettingsBundles - * url: BundleService_ListSettingsBundlesURL - * method: BundleService_ListSettingsBundles_TYPE - * raw_url: BundleService_ListSettingsBundles_RAW_URL + * request: BundleService_ListBundles + * url: BundleService_ListBundlesURL + * method: BundleService_ListBundles_TYPE + * raw_url: BundleService_ListBundles_RAW_URL * @param body - */ -export const BundleService_ListSettingsBundles = function(parameters = {}) { +export const BundleService_ListBundles = function(parameters = {}) { const domain = parameters.$domain ? parameters.$domain : getDomain() const config = parameters.$config let path = '/api/v0/settings/bundles-list' @@ -147,13 +147,13 @@ export const BundleService_ListSettingsBundles = function(parameters = {}) { } return request('post', domain + path, body, queryParameters, form, config) } -export const BundleService_ListSettingsBundles_RAW_URL = function() { +export const BundleService_ListBundles_RAW_URL = function() { return '/api/v0/settings/bundles-list' } -export const BundleService_ListSettingsBundles_TYPE = function() { +export const BundleService_ListBundles_TYPE = function() { return 'post' } -export const BundleService_ListSettingsBundlesURL = function(parameters = {}) { +export const BundleService_ListBundlesURL = function(parameters = {}) { let queryParameters = {} const domain = parameters.$domain ? parameters.$domain : getDomain() let path = '/api/v0/settings/bundles-list' @@ -167,13 +167,13 @@ export const BundleService_ListSettingsBundlesURL = function(parameters = {}) { } /** * - * request: ValueService_GetSettingsValue - * url: ValueService_GetSettingsValueURL - * method: ValueService_GetSettingsValue_TYPE - * raw_url: ValueService_GetSettingsValue_RAW_URL + * request: ValueService_GetValue + * url: ValueService_GetValueURL + * method: ValueService_GetValue_TYPE + * raw_url: ValueService_GetValue_RAW_URL * @param body - */ -export const ValueService_GetSettingsValue = function(parameters = {}) { +export const ValueService_GetValue = function(parameters = {}) { const domain = parameters.$domain ? parameters.$domain : getDomain() const config = parameters.$config let path = '/api/v0/settings/value-get' @@ -193,13 +193,13 @@ export const ValueService_GetSettingsValue = function(parameters = {}) { } return request('post', domain + path, body, queryParameters, form, config) } -export const ValueService_GetSettingsValue_RAW_URL = function() { +export const ValueService_GetValue_RAW_URL = function() { return '/api/v0/settings/value-get' } -export const ValueService_GetSettingsValue_TYPE = function() { +export const ValueService_GetValue_TYPE = function() { return 'post' } -export const ValueService_GetSettingsValueURL = function(parameters = {}) { +export const ValueService_GetValueURL = function(parameters = {}) { let queryParameters = {} const domain = parameters.$domain ? parameters.$domain : getDomain() let path = '/api/v0/settings/value-get' @@ -213,13 +213,13 @@ export const ValueService_GetSettingsValueURL = function(parameters = {}) { } /** * - * request: ValueService_SaveSettingsValue - * url: ValueService_SaveSettingsValueURL - * method: ValueService_SaveSettingsValue_TYPE - * raw_url: ValueService_SaveSettingsValue_RAW_URL + * request: ValueService_SaveValue + * url: ValueService_SaveValueURL + * method: ValueService_SaveValue_TYPE + * raw_url: ValueService_SaveValue_RAW_URL * @param body - */ -export const ValueService_SaveSettingsValue = function(parameters = {}) { +export const ValueService_SaveValue = function(parameters = {}) { const domain = parameters.$domain ? parameters.$domain : getDomain() const config = parameters.$config let path = '/api/v0/settings/value-save' @@ -239,13 +239,13 @@ export const ValueService_SaveSettingsValue = function(parameters = {}) { } return request('post', domain + path, body, queryParameters, form, config) } -export const ValueService_SaveSettingsValue_RAW_URL = function() { +export const ValueService_SaveValue_RAW_URL = function() { return '/api/v0/settings/value-save' } -export const ValueService_SaveSettingsValue_TYPE = function() { +export const ValueService_SaveValue_TYPE = function() { return 'post' } -export const ValueService_SaveSettingsValueURL = function(parameters = {}) { +export const ValueService_SaveValueURL = function(parameters = {}) { let queryParameters = {} const domain = parameters.$domain ? parameters.$domain : getDomain() let path = '/api/v0/settings/value-save' @@ -259,13 +259,59 @@ export const ValueService_SaveSettingsValueURL = function(parameters = {}) { } /** * - * request: ValueService_ListSettingsValues - * url: ValueService_ListSettingsValuesURL - * method: ValueService_ListSettingsValues_TYPE - * raw_url: ValueService_ListSettingsValues_RAW_URL + * request: ValueService_GetValueByUniqueIdentifiers + * url: ValueService_GetValueByUniqueIdentifiersURL + * method: ValueService_GetValueByUniqueIdentifiers_TYPE + * raw_url: ValueService_GetValueByUniqueIdentifiers_RAW_URL * @param body - */ -export const ValueService_ListSettingsValues = function(parameters = {}) { +export const ValueService_GetValueByUniqueIdentifiers = function(parameters = {}) { + const domain = parameters.$domain ? parameters.$domain : getDomain() + const config = parameters.$config + let path = '/api/v0/settings/values-get-by-unique-identifiers' + let body + let queryParameters = {} + let form = {} + if (parameters['body'] !== undefined) { + body = parameters['body'] + } + if (parameters['body'] === undefined) { + return Promise.reject(new Error('Missing required parameter: body')) + } + if (parameters.$queryParameters) { + Object.keys(parameters.$queryParameters).forEach(function(parameterName) { + queryParameters[parameterName] = parameters.$queryParameters[parameterName] + }); + } + return request('post', domain + path, body, queryParameters, form, config) +} +export const ValueService_GetValueByUniqueIdentifiers_RAW_URL = function() { + return '/api/v0/settings/values-get-by-unique-identifiers' +} +export const ValueService_GetValueByUniqueIdentifiers_TYPE = function() { + return 'post' +} +export const ValueService_GetValueByUniqueIdentifiersURL = function(parameters = {}) { + let queryParameters = {} + const domain = parameters.$domain ? parameters.$domain : getDomain() + let path = '/api/v0/settings/values-get-by-unique-identifiers' + if (parameters.$queryParameters) { + Object.keys(parameters.$queryParameters).forEach(function(parameterName) { + queryParameters[parameterName] = parameters.$queryParameters[parameterName] + }) + } + let keys = Object.keys(queryParameters) + return domain + path + (keys.length > 0 ? '?' + (keys.map(key => key + '=' + encodeURIComponent(queryParameters[key])).join('&')) : '') +} +/** + * + * request: ValueService_ListValues + * url: ValueService_ListValuesURL + * method: ValueService_ListValues_TYPE + * raw_url: ValueService_ListValues_RAW_URL + * @param body - + */ +export const ValueService_ListValues = function(parameters = {}) { const domain = parameters.$domain ? parameters.$domain : getDomain() const config = parameters.$config let path = '/api/v0/settings/values-list' @@ -285,13 +331,13 @@ export const ValueService_ListSettingsValues = function(parameters = {}) { } return request('post', domain + path, body, queryParameters, form, config) } -export const ValueService_ListSettingsValues_RAW_URL = function() { +export const ValueService_ListValues_RAW_URL = function() { return '/api/v0/settings/values-list' } -export const ValueService_ListSettingsValues_TYPE = function() { +export const ValueService_ListValues_TYPE = function() { return 'post' } -export const ValueService_ListSettingsValuesURL = function(parameters = {}) { +export const ValueService_ListValuesURL = function(parameters = {}) { let queryParameters = {} const domain = parameters.$domain ? parameters.$domain : getDomain() let path = '/api/v0/settings/values-list'