diff --git a/go.mod b/go.mod index 8c6c9ce..f947173 100644 --- a/go.mod +++ b/go.mod @@ -5,48 +5,23 @@ go 1.23.0 toolchain go1.23.1 require ( - github.com/envoyproxy/go-control-plane/envoy v1.32.4 github.com/envoyproxy/protoc-gen-validate v1.2.1 - github.com/pomerium/pomerium v0.28.1-0.20250218200206-b9fd926618e2 github.com/stretchr/testify v1.10.0 google.golang.org/grpc v1.70.0 google.golang.org/protobuf v1.36.4 ) require ( - github.com/caddyserver/certmagic v0.21.4 // indirect - github.com/caddyserver/zerossl v0.1.3 // indirect - github.com/cenkalti/backoff/v4 v4.3.0 // indirect - github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/go-jose/go-jose/v3 v3.0.3 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/hashicorp/errwrap v1.1.0 // indirect - github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-set/v3 v3.0.0 // indirect - github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - github.com/jxskiss/base62 v1.1.0 // indirect - github.com/klauspost/cpuid/v2 v2.2.9 // indirect - github.com/libdns/libdns v0.2.2 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mholt/acmez/v2 v2.0.3 // indirect - github.com/miekg/dns v1.1.62 // indirect - github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/pomerium/protoutil v0.0.0-20240813175624-47b7ac43ff46 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/rs/zerolog v1.33.0 // indirect - github.com/zeebo/blake3 v0.2.4 // indirect - go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.32.0 // indirect - golang.org/x/mod v0.20.0 // indirect + go.opentelemetry.io/otel v1.34.0 // indirect + go.opentelemetry.io/otel/sdk v1.33.0 // indirect golang.org/x/net v0.34.0 // indirect - golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect - golang.org/x/tools v0.24.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 77df4ec..27cd7ba 100644 --- a/go.sum +++ b/go.sum @@ -1,293 +1,37 @@ -cel.dev/expr v0.19.0 h1:lXuo+nDhpyJSpWxpPVi5cPUwzKb+dsdOiw6IreM5yt0= -cel.dev/expr v0.19.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= -contrib.go.opencensus.io/exporter/prometheus v0.4.2 h1:sqfsYl5GIY/L570iT+l93ehxaWJs2/OwXtiWwew3oAg= -contrib.go.opencensus.io/exporter/prometheus v0.4.2/go.mod h1:dvEHbiKmgvbr5pjaF9fpw1KeYcjrnC1J8B+JKjsZyRQ= -dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= -dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= -github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= -github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= -github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8= -github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q= -github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI= -github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/caddyserver/certmagic v0.21.4 h1:e7VobB8rffHv8ZZpSiZtEwnLDHUwLVYLWzWSa1FfKI0= -github.com/caddyserver/certmagic v0.21.4/go.mod h1:swUXjQ1T9ZtMv95qj7/InJvWLXURU85r+CfG0T+ZbDE= -github.com/caddyserver/zerossl v0.1.3 h1:onS+pxp3M8HnHpN5MMbOMyNjmTheJyWRaZYwn+YTAyA= -github.com/caddyserver/zerossl v0.1.3/go.mod h1:CxA0acn7oEGO6//4rtrRjYgEoa4MFw/XofZnrYwGqG4= -github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= -github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cloudflare/circl v1.5.0 h1:hxIWksrX6XN5a1L2TI/h53AGPhNHoUBo+TD1ms9+pys= -github.com/cloudflare/circl v1.5.0/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= -github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3 h1:boJj011Hh+874zpIySeApCX4GeOjPl9qhRF3QuIZq+Q= -github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= -github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= -github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= -github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= -github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= -github.com/coreos/go-oidc/v3 v3.11.0 h1:Ia3MxdwpSw702YW0xgfmP1GVCMA9aEFWu12XUZ3/OtI= -github.com/coreos/go-oidc/v3 v3.11.0/go.mod h1:gE3LgjOgFoHi9a4ce4/tJczr0Ai2/BoDhf0r5lltWI0= -github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/dockercfg v0.3.2 h1:DlJTyZGBDlXqUZ2Dk2Q3xHs/FtnooJJVaad2S9GKorA= -github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= -github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v27.4.1+incompatible h1:ZJvcY7gfwHn1JF48PfbyXg7Jyt9ZCWDW+GGXOIxEwp4= -github.com/docker/docker v27.4.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= -github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= -github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= -github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= -github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= -github.com/exaring/otelpgx v0.8.0 h1:uqoDIW9qKkyz479z2cGrmJ8OJypydyEA+xwey4ukvNo= -github.com/exaring/otelpgx v0.8.0/go.mod h1:ANkRZDfgfmN6yJS1xKMkshbnsHO8at5sYwtVEYOX8hc= -github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= -github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= -github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= -github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= -github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-jose/go-jose/v3 v3.0.3 h1:fFKWeig/irsp7XD2zBxvnmA/XaRWp5V3CBsZXJF7G7k= -github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ= -github.com/go-jose/go-jose/v4 v4.0.2 h1:R3l3kkBds16bO7ZFAEEcofK0MkrAJt3jlJznWZG0nvk= -github.com/go-jose/go-jose/v4 v4.0.2/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= -github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= -github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= -github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= -github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= -github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= -github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= -github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= -github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= -github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= -github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= -github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= -github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= -github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 h1:TmHmbvxPmaegwhDubVz0lICL0J5Ka2vwTzhoePEXsGE= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0/go.mod h1:qztMSjm835F2bXf+5HKAPIS5qsmQDqZna/PgVt4rWtI= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= -github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= -github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-set/v3 v3.0.0 h1:CaJBQvQCOWoftrBcDt7Nwgo0kdpmrKxar/x2o6pV9JA= -github.com/hashicorp/go-set/v3 v3.0.0/go.mod h1:IEghM2MpE5IaNvL+D7X480dfNtxjRXZ6VMpK3C8s2ok= -github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= -github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= -github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= -github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.7.2 h1:mLoDLV6sonKlvjIEsV56SkWNCnuNv531l94GaIzO+XI= -github.com/jackc/pgx/v5 v5.7.2/go.mod h1:ncY89UGWxg82EykZUwSpUKEfccBGGYq1xjrOpsbsfGQ= -github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= -github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= -github.com/jxskiss/base62 v1.1.0 h1:A5zbF8v8WXx2xixnAKD2w+abC+sIzYJX+nxmhA6HWFw= -github.com/jxskiss/base62 v1.1.0/go.mod h1:HhWAlUXvxKThfOlZbcuFzsqwtF5TcqS9ru3y5GfjWAc= -github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= -github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= -github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= -github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +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= -github.com/libdns/libdns v0.2.2 h1:O6ws7bAfRPaBsgAYt8MDe2HcNBGC29hkZ9MX2eUSX3s= -github.com/libdns/libdns v0.2.2/go.mod h1:4Bj9+5CQiNMVGf87wjX4CY3HQJypUHRuLvlsfsZqLWQ= -github.com/lufia/plan9stats v0.0.0-20240513124658-fba389f38bae h1:dIZY4ULFcto4tAFlj1FYZl8ztUZ13bdq+PLY+NOfbyI= -github.com/lufia/plan9stats v0.0.0-20240513124658-fba389f38bae/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mholt/acmez/v2 v2.0.3 h1:CgDBlEwg3QBp6s45tPQmFIBrkRIkBT4rW4orMM6p4sw= -github.com/mholt/acmez/v2 v2.0.3/go.mod h1:pQ1ysaDeGrIMvJ9dfJMk5kJNkn7L2sb3UhyrX6Q91cw= -github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= -github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= -github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= -github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go/v7 v7.0.82 h1:tWfICLhmp2aFPXL8Tli0XDTHj2VB/fNf0PC1f/i1gRo= -github.com/minio/minio-go/v7 v7.0.82/go.mod h1:84gmIilaX4zcvAWWzJ5Z1WI5axN+hAbM5w25xf8xvC0= -github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4= -github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE= -github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= -github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= -github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= -github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= -github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= -github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= -github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= -github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo= -github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= -github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= -github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= -github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= -github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= -github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/open-policy-agent/opa v1.0.0 h1:fZsEwxg1knpPvUn0YDJuJZBcbVg4G3zKpWa3+CnYK+I= -github.com/open-policy-agent/opa v1.0.0/go.mod h1:+JyoH12I0+zqyC1iX7a2tmoQlipwAEGvOhVJMhmy+rM= -github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= -github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= -github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= -github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pomerium/csrf v1.7.0 h1:Qp4t6oyEod3svQtKfJZs589mdUTWKVf7q0PgCKYCshY= -github.com/pomerium/csrf v1.7.0/go.mod h1:hAPZV47mEj2T9xFs+ysbum4l7SF1IdrryYaY6PdoIqw= -github.com/pomerium/pomerium v0.28.1-0.20250218200206-b9fd926618e2 h1:UtyGKmmFs/DVuvhOUeFowruCv+xObqAbqNmPqhMZ88o= -github.com/pomerium/pomerium v0.28.1-0.20250218200206-b9fd926618e2/go.mod h1:8Uf1ya/wSjJyeUo5X4TqctlrYxbc5iPfFG18x1t0Deo= -github.com/pomerium/protoutil v0.0.0-20240813175624-47b7ac43ff46 h1:NRTg8JOXCxcIA1lAgD74iYud0rbshbWOB3Ou4+Huil8= -github.com/pomerium/protoutil v0.0.0-20240813175624-47b7ac43ff46/go.mod h1:QqZmx6ZgPxz18va7kqoT4t/0yJtP7YFIDiT/W2n2fZ4= -github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU= -github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= -github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= -github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/prometheus/statsd_exporter v0.22.7 h1:7Pji/i2GuhK6Lu7DHrtTkFmNBCudCPT1pX2CziuyQR0= -github.com/prometheus/statsd_exporter v0.22.7/go.mod h1:N/TevpjkIh9ccs6nuzY3jQn9dFqnUakOjnEuMPJJJnI= -github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= -github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/xid v1.6.0 h1:fV591PaemRlL6JfRxGDEPl69wICngIQ3shQtzfy2gxU= -github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= -github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= -github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= -github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= -github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= -github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= -github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.11.0 h1:NoPa5GIoBwuqzIviCrnUJa+t5Xb4xi5Z+zODJnIDsEQ= -github.com/shoenig/test v1.11.0/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= -github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= -github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= -github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= -github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= -github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= -github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/testcontainers/testcontainers-go v0.34.0 h1:5fbgF0vIN5u+nD3IWabQwRybuB4GY8G2HHgCkbMzMHo= -github.com/testcontainers/testcontainers-go v0.34.0/go.mod h1:6P/kMkQe8yqPHfPWNulFGdFHTD8HB2vLq/231xY2iPQ= -github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= -github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= -github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= -github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= -github.com/volatiletech/null/v9 v9.0.0 h1:JCdlHEiSRVxOi7/MABiEfdsqmuj9oTV20Ao7VvZ0JkE= -github.com/volatiletech/null/v9 v9.0.0/go.mod h1:zRFghPVahaiIMRXiUJrc6gsoG83Cm3ZoAfSTw7VHGQc= -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= -github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -github.com/zeebo/assert v1.3.1 h1:vukIABvugfNMZMQO1ABsyQDJDTVQbn+LWSMy1ol1h6A= -github.com/zeebo/assert v1.3.1/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= -github.com/zeebo/blake3 v0.2.4 h1:KYQPkhpRtcqh0ssGYcKLG1JYvddkEA8QwCM/yBqhaZI= -github.com/zeebo/blake3 v0.2.4/go.mod h1:7eeQ6d2iXWRGF6npfaxl2CU+xy2Fjo2gxeyZGCRUjcE= -github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo= -github.com/zeebo/pcg v1.0.1/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4= -github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= -github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 h1:qtFISDHKolvIxzSs0gIaiPUPR0Cucb0F2coHC7ZLdps= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0/go.mod h1:Y+Pop1Q6hCOnETWTW4NROK/q1hv50hM7yDaUTjG8lp8= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/contrib/propagators/autoprop v0.57.0 h1:bNPJOdT5154XxzeFmrh8R+PXnV4t3TZEczy8gHEpcpg= -go.opentelemetry.io/contrib/propagators/autoprop v0.57.0/go.mod h1:Tb0j0mK+QatKdCxCKPN7CSzc7kx/q34/KaohJx/N96s= -go.opentelemetry.io/contrib/propagators/aws v1.32.0 h1:NELzr8bW7a7aHVZj5gaep1PfkvoSCGx+1qNGZx/uhhU= -go.opentelemetry.io/contrib/propagators/aws v1.32.0/go.mod h1:XKMrzHNka3eOA+nGEcNKYVL9s77TAhkwQEynYuaRFnQ= -go.opentelemetry.io/contrib/propagators/b3 v1.32.0 h1:MazJBz2Zf6HTN/nK/s3Ru1qme+VhWU5hm83QxEP+dvw= -go.opentelemetry.io/contrib/propagators/b3 v1.32.0/go.mod h1:B0s70QHYPrJwPOwD1o3V/R8vETNOG9N3qZf4LDYvA30= -go.opentelemetry.io/contrib/propagators/jaeger v1.32.0 h1:K/fOyTMD6GELKTIJBaJ9k3ppF2Njt8MeUGBOwfaWXXA= -go.opentelemetry.io/contrib/propagators/jaeger v1.32.0/go.mod h1:ISE6hda//MTWvtngG7p4et3OCngsrTVfl7c6DjN17f8= -go.opentelemetry.io/contrib/propagators/ot v1.32.0 h1:Poy02A4wOZubHyd2hpHPDgZW+rn6EIq0vCwTZJ6Lmu8= -go.opentelemetry.io/contrib/propagators/ot v1.32.0/go.mod h1:cbhaURV+VR3NIMarzDYZU1RDEkXG1fNd1WMP1XCcGkY= go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.32.0 h1:cMyu9O88joYEaI47CnQkxO1XZdpoTF9fEnW2duIddhw= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.32.0/go.mod h1:6Am3rn7P9TVVeXYG+wtcGE7IE1tsQ+bP3AuWcKt/gOI= go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= go.opentelemetry.io/otel/sdk v1.33.0 h1:iax7M131HuAm9QkZotNHEfstof92xM+N8sr3uHXc2IM= @@ -296,77 +40,12 @@ go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiy go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= -go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg= -go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY= -go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= -go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= -go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= -go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= -go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= -go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= -golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= -golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa h1:ELnwvuAXPNtPk1TJRuGkI9fDTwym6AYBu0qzT8AcHdI= -golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= -golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= -golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= -golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= -golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= -golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk= -google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= -google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY= google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ= @@ -376,14 +55,5 @@ google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojt gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= -gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -namespacelabs.dev/go-filenotify v0.0.0-20220511192020-53ea11be7eaa h1:jj2kjs0Hvufj40wuhMAzoZUOwrwMDFg1gHZ49RiIv9w= -namespacelabs.dev/go-filenotify v0.0.0-20220511192020-53ea11be7eaa/go.mod h1:e8NJRaInXRRm1+KPA6EkGEzdLJAgEvVSIKiLzpP97nI= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/pb/changesets.pb.go b/pb/changesets.pb.go deleted file mode 100644 index 3edff8e..0000000 --- a/pb/changesets.pb.go +++ /dev/null @@ -1,1200 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.34.2 -// protoc v3.21.7 -// source: changesets.proto - -package pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - emptypb "google.golang.org/protobuf/types/known/emptypb" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type Changeset struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - ModifiedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=modified_at,json=modifiedAt,proto3" json:"modified_at,omitempty"` - DeployedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=deployed_at,json=deployedAt,proto3" json:"deployed_at,omitempty"` -} - -func (x *Changeset) Reset() { - *x = Changeset{} - if protoimpl.UnsafeEnabled { - mi := &file_changesets_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Changeset) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Changeset) ProtoMessage() {} - -func (x *Changeset) ProtoReflect() protoreflect.Message { - mi := &file_changesets_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Changeset.ProtoReflect.Descriptor instead. -func (*Changeset) Descriptor() ([]byte, []int) { - return file_changesets_proto_rawDescGZIP(), []int{0} -} - -func (x *Changeset) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *Changeset) GetCreatedAt() *timestamppb.Timestamp { - if x != nil { - return x.CreatedAt - } - return nil -} - -func (x *Changeset) GetModifiedAt() *timestamppb.Timestamp { - if x != nil { - return x.ModifiedAt - } - return nil -} - -func (x *Changeset) GetDeployedAt() *timestamppb.Timestamp { - if x != nil { - return x.DeployedAt - } - return nil -} - -type ChangesetRecord struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - RecordId string `protobuf:"bytes,2,opt,name=record_id,json=recordId,proto3" json:"record_id,omitempty"` - RecordProtoMd5 string `protobuf:"bytes,3,opt,name=record_proto_md5,json=recordProtoMd5,proto3" json:"record_proto_md5,omitempty"` - RecordProto []byte `protobuf:"bytes,4,opt,name=record_proto,json=recordProto,proto3" json:"record_proto,omitempty"` -} - -func (x *ChangesetRecord) Reset() { - *x = ChangesetRecord{} - if protoimpl.UnsafeEnabled { - mi := &file_changesets_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangesetRecord) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangesetRecord) ProtoMessage() {} - -func (x *ChangesetRecord) ProtoReflect() protoreflect.Message { - mi := &file_changesets_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangesetRecord.ProtoReflect.Descriptor instead. -func (*ChangesetRecord) Descriptor() ([]byte, []int) { - return file_changesets_proto_rawDescGZIP(), []int{1} -} - -func (x *ChangesetRecord) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *ChangesetRecord) GetRecordId() string { - if x != nil { - return x.RecordId - } - return "" -} - -func (x *ChangesetRecord) GetRecordProtoMd5() string { - if x != nil { - return x.RecordProtoMd5 - } - return "" -} - -func (x *ChangesetRecord) GetRecordProto() []byte { - if x != nil { - return x.RecordProto - } - return nil -} - -type ChangesetWithRecords struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Changeset *Changeset `protobuf:"bytes,1,opt,name=changeset,proto3" json:"changeset,omitempty"` - Records []*ChangesetRecord `protobuf:"bytes,2,rep,name=records,proto3" json:"records,omitempty"` -} - -func (x *ChangesetWithRecords) Reset() { - *x = ChangesetWithRecords{} - if protoimpl.UnsafeEnabled { - mi := &file_changesets_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangesetWithRecords) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangesetWithRecords) ProtoMessage() {} - -func (x *ChangesetWithRecords) ProtoReflect() protoreflect.Message { - mi := &file_changesets_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangesetWithRecords.ProtoReflect.Descriptor instead. -func (*ChangesetWithRecords) Descriptor() ([]byte, []int) { - return file_changesets_proto_rawDescGZIP(), []int{2} -} - -func (x *ChangesetWithRecords) GetChangeset() *Changeset { - if x != nil { - return x.Changeset - } - return nil -} - -func (x *ChangesetWithRecords) GetRecords() []*ChangesetRecord { - if x != nil { - return x.Records - } - return nil -} - -type ChangesetDetails struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - ModifiedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=modified_at,json=modifiedAt,proto3" json:"modified_at,omitempty"` - DeployedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=deployed_at,json=deployedAt,proto3" json:"deployed_at,omitempty"` - Approvers []*ChangesetDetails_Approver `protobuf:"bytes,5,rep,name=approvers,proto3" json:"approvers,omitempty"` - RequiredApprovalCount int64 `protobuf:"varint,10,opt,name=required_approval_count,json=requiredApprovalCount,proto3" json:"required_approval_count,omitempty"` - CanApprove bool `protobuf:"varint,6,opt,name=can_approve,json=canApprove,proto3" json:"can_approve,omitempty"` - CanDeploy bool `protobuf:"varint,7,opt,name=can_deploy,json=canDeploy,proto3" json:"can_deploy,omitempty"` - CanRollback bool `protobuf:"varint,8,opt,name=can_rollback,json=canRollback,proto3" json:"can_rollback,omitempty"` - LastChange *ActivityLogEntry `protobuf:"bytes,9,opt,name=last_change,json=lastChange,proto3,oneof" json:"last_change,omitempty"` - Status string `protobuf:"bytes,11,opt,name=status,proto3" json:"status,omitempty"` -} - -func (x *ChangesetDetails) Reset() { - *x = ChangesetDetails{} - if protoimpl.UnsafeEnabled { - mi := &file_changesets_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangesetDetails) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangesetDetails) ProtoMessage() {} - -func (x *ChangesetDetails) ProtoReflect() protoreflect.Message { - mi := &file_changesets_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangesetDetails.ProtoReflect.Descriptor instead. -func (*ChangesetDetails) Descriptor() ([]byte, []int) { - return file_changesets_proto_rawDescGZIP(), []int{3} -} - -func (x *ChangesetDetails) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *ChangesetDetails) GetCreatedAt() *timestamppb.Timestamp { - if x != nil { - return x.CreatedAt - } - return nil -} - -func (x *ChangesetDetails) GetModifiedAt() *timestamppb.Timestamp { - if x != nil { - return x.ModifiedAt - } - return nil -} - -func (x *ChangesetDetails) GetDeployedAt() *timestamppb.Timestamp { - if x != nil { - return x.DeployedAt - } - return nil -} - -func (x *ChangesetDetails) GetApprovers() []*ChangesetDetails_Approver { - if x != nil { - return x.Approvers - } - return nil -} - -func (x *ChangesetDetails) GetRequiredApprovalCount() int64 { - if x != nil { - return x.RequiredApprovalCount - } - return 0 -} - -func (x *ChangesetDetails) GetCanApprove() bool { - if x != nil { - return x.CanApprove - } - return false -} - -func (x *ChangesetDetails) GetCanDeploy() bool { - if x != nil { - return x.CanDeploy - } - return false -} - -func (x *ChangesetDetails) GetCanRollback() bool { - if x != nil { - return x.CanRollback - } - return false -} - -func (x *ChangesetDetails) GetLastChange() *ActivityLogEntry { - if x != nil { - return x.LastChange - } - return nil -} - -func (x *ChangesetDetails) GetStatus() string { - if x != nil { - return x.Status - } - return "" -} - -type ApproveChangesetRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ChangesetId string `protobuf:"bytes,1,opt,name=changeset_id,json=changesetId,proto3" json:"changeset_id,omitempty"` -} - -func (x *ApproveChangesetRequest) Reset() { - *x = ApproveChangesetRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_changesets_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApproveChangesetRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApproveChangesetRequest) ProtoMessage() {} - -func (x *ApproveChangesetRequest) ProtoReflect() protoreflect.Message { - mi := &file_changesets_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ApproveChangesetRequest.ProtoReflect.Descriptor instead. -func (*ApproveChangesetRequest) Descriptor() ([]byte, []int) { - return file_changesets_proto_rawDescGZIP(), []int{4} -} - -func (x *ApproveChangesetRequest) GetChangesetId() string { - if x != nil { - return x.ChangesetId - } - return "" -} - -type DeployChangesetRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ChangesetId string `protobuf:"bytes,1,opt,name=changeset_id,json=changesetId,proto3" json:"changeset_id,omitempty"` -} - -func (x *DeployChangesetRequest) Reset() { - *x = DeployChangesetRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_changesets_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeployChangesetRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeployChangesetRequest) ProtoMessage() {} - -func (x *DeployChangesetRequest) ProtoReflect() protoreflect.Message { - mi := &file_changesets_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeployChangesetRequest.ProtoReflect.Descriptor instead. -func (*DeployChangesetRequest) Descriptor() ([]byte, []int) { - return file_changesets_proto_rawDescGZIP(), []int{5} -} - -func (x *DeployChangesetRequest) GetChangesetId() string { - if x != nil { - return x.ChangesetId - } - return "" -} - -type DiffChangesetRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ChangesetId string `protobuf:"bytes,1,opt,name=changeset_id,json=changesetId,proto3" json:"changeset_id,omitempty"` -} - -func (x *DiffChangesetRequest) Reset() { - *x = DiffChangesetRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_changesets_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DiffChangesetRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DiffChangesetRequest) ProtoMessage() {} - -func (x *DiffChangesetRequest) ProtoReflect() protoreflect.Message { - mi := &file_changesets_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DiffChangesetRequest.ProtoReflect.Descriptor instead. -func (*DiffChangesetRequest) Descriptor() ([]byte, []int) { - return file_changesets_proto_rawDescGZIP(), []int{6} -} - -func (x *DiffChangesetRequest) GetChangesetId() string { - if x != nil { - return x.ChangesetId - } - return "" -} - -type DiffChangesetResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ChangesetRecords []*DiffChangesetResponse_Record `protobuf:"bytes,1,rep,name=changeset_records,json=changesetRecords,proto3" json:"changeset_records,omitempty"` - CurrentlyDeployedChangesetRecords []*DiffChangesetResponse_Record `protobuf:"bytes,2,rep,name=currently_deployed_changeset_records,json=currentlyDeployedChangesetRecords,proto3" json:"currently_deployed_changeset_records,omitempty"` -} - -func (x *DiffChangesetResponse) Reset() { - *x = DiffChangesetResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_changesets_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DiffChangesetResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DiffChangesetResponse) ProtoMessage() {} - -func (x *DiffChangesetResponse) ProtoReflect() protoreflect.Message { - mi := &file_changesets_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DiffChangesetResponse.ProtoReflect.Descriptor instead. -func (*DiffChangesetResponse) Descriptor() ([]byte, []int) { - return file_changesets_proto_rawDescGZIP(), []int{7} -} - -func (x *DiffChangesetResponse) GetChangesetRecords() []*DiffChangesetResponse_Record { - if x != nil { - return x.ChangesetRecords - } - return nil -} - -func (x *DiffChangesetResponse) GetCurrentlyDeployedChangesetRecords() []*DiffChangesetResponse_Record { - if x != nil { - return x.CurrentlyDeployedChangesetRecords - } - return nil -} - -type ListChangesetsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Limit int64 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` - OrderBy string `protobuf:"bytes,2,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` -} - -func (x *ListChangesetsRequest) Reset() { - *x = ListChangesetsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_changesets_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListChangesetsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListChangesetsRequest) ProtoMessage() {} - -func (x *ListChangesetsRequest) ProtoReflect() protoreflect.Message { - mi := &file_changesets_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListChangesetsRequest.ProtoReflect.Descriptor instead. -func (*ListChangesetsRequest) Descriptor() ([]byte, []int) { - return file_changesets_proto_rawDescGZIP(), []int{8} -} - -func (x *ListChangesetsRequest) GetLimit() int64 { - if x != nil { - return x.Limit - } - return 0 -} - -func (x *ListChangesetsRequest) GetOrderBy() string { - if x != nil { - return x.OrderBy - } - return "" -} - -type ListChangesetsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Changesets []*ChangesetDetails `protobuf:"bytes,1,rep,name=changesets,proto3" json:"changesets,omitempty"` - CurrentlyDeployedChangesetId *string `protobuf:"bytes,2,opt,name=currently_deployed_changeset_id,json=currentlyDeployedChangesetId,proto3,oneof" json:"currently_deployed_changeset_id,omitempty"` - PreviouslyDeployedChangesetId *string `protobuf:"bytes,3,opt,name=previously_deployed_changeset_id,json=previouslyDeployedChangesetId,proto3,oneof" json:"previously_deployed_changeset_id,omitempty"` -} - -func (x *ListChangesetsResponse) Reset() { - *x = ListChangesetsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_changesets_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListChangesetsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListChangesetsResponse) ProtoMessage() {} - -func (x *ListChangesetsResponse) ProtoReflect() protoreflect.Message { - mi := &file_changesets_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListChangesetsResponse.ProtoReflect.Descriptor instead. -func (*ListChangesetsResponse) Descriptor() ([]byte, []int) { - return file_changesets_proto_rawDescGZIP(), []int{9} -} - -func (x *ListChangesetsResponse) GetChangesets() []*ChangesetDetails { - if x != nil { - return x.Changesets - } - return nil -} - -func (x *ListChangesetsResponse) GetCurrentlyDeployedChangesetId() string { - if x != nil && x.CurrentlyDeployedChangesetId != nil { - return *x.CurrentlyDeployedChangesetId - } - return "" -} - -func (x *ListChangesetsResponse) GetPreviouslyDeployedChangesetId() string { - if x != nil && x.PreviouslyDeployedChangesetId != nil { - return *x.PreviouslyDeployedChangesetId - } - return "" -} - -type ChangesetDetails_Approver struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` - ApprovedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=approved_at,json=approvedAt,proto3" json:"approved_at,omitempty"` -} - -func (x *ChangesetDetails_Approver) Reset() { - *x = ChangesetDetails_Approver{} - if protoimpl.UnsafeEnabled { - mi := &file_changesets_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangesetDetails_Approver) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangesetDetails_Approver) ProtoMessage() {} - -func (x *ChangesetDetails_Approver) ProtoReflect() protoreflect.Message { - mi := &file_changesets_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangesetDetails_Approver.ProtoReflect.Descriptor instead. -func (*ChangesetDetails_Approver) Descriptor() ([]byte, []int) { - return file_changesets_proto_rawDescGZIP(), []int{3, 0} -} - -func (x *ChangesetDetails_Approver) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *ChangesetDetails_Approver) GetDisplayName() string { - if x != nil { - return x.DisplayName - } - return "" -} - -func (x *ChangesetDetails_Approver) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *ChangesetDetails_Approver) GetApprovedAt() *timestamppb.Timestamp { - if x != nil { - return x.ApprovedAt - } - return nil -} - -type DiffChangesetResponse_Record struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Json string `protobuf:"bytes,2,opt,name=json,proto3" json:"json,omitempty"` -} - -func (x *DiffChangesetResponse_Record) Reset() { - *x = DiffChangesetResponse_Record{} - if protoimpl.UnsafeEnabled { - mi := &file_changesets_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DiffChangesetResponse_Record) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DiffChangesetResponse_Record) ProtoMessage() {} - -func (x *DiffChangesetResponse_Record) ProtoReflect() protoreflect.Message { - mi := &file_changesets_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DiffChangesetResponse_Record.ProtoReflect.Descriptor instead. -func (*DiffChangesetResponse_Record) Descriptor() ([]byte, []int) { - return file_changesets_proto_rawDescGZIP(), []int{7, 0} -} - -func (x *DiffChangesetResponse_Record) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *DiffChangesetResponse_Record) GetJson() string { - if x != nil { - return x.Json - } - return "" -} - -var File_changesets_proto protoreflect.FileDescriptor - -var file_changesets_proto_rawDesc = []byte{ - 0x0a, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x12, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, - 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x6c, - 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd0, 0x01, 0x0a, 0x09, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, - 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x41, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x0f, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x6d, 0x64, 0x35, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x4d, 0x64, 0x35, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x65, 0x74, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x12, - 0x3d, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0xc6, - 0x05, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, - 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x41, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x09, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x5f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, - 0x0b, 0x63, 0x61, 0x6e, 0x5f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x21, 0x0a, - 0x0c, 0x63, 0x61, 0x6e, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, - 0x12, 0x4a, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x6c, - 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x1a, 0x90, 0x01, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, - 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 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, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x3b, 0x0a, 0x0b, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x65, 0x64, 0x41, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x3c, 0x0a, 0x17, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x16, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, - 0x49, 0x64, 0x22, 0x39, 0x0a, 0x14, 0x44, 0x69, 0x66, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0xa8, 0x02, - 0x0a, 0x15, 0x44, 0x69, 0x66, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, - 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x81, 0x01, 0x0a, 0x24, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x21, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x6c, 0x79, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x1a, 0x2c, 0x0a, 0x06, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x62, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x42, 0x79, 0x22, 0xc1, 0x02, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, - 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, - 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x65, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x1f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, - 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x1c, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x4c, 0x0a, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x6c, 0x79, 0x5f, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x1d, 0x70, 0x72, 0x65, - 0x76, 0x69, 0x6f, 0x75, 0x73, 0x6c, 0x79, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x22, 0x0a, - 0x20, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x6c, 0x79, - 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x32, 0xd6, 0x03, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x12, - 0x2b, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x55, 0x0a, 0x0f, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, - 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x64, 0x0a, 0x0d, 0x44, - 0x69, 0x66, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x12, 0x28, 0x2e, 0x70, - 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, - 0x64, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x44, 0x69, 0x66, 0x66, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x67, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x65, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, - 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, - 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x11, 0x52, 0x6f, - 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, - 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2d, - 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_changesets_proto_rawDescOnce sync.Once - file_changesets_proto_rawDescData = file_changesets_proto_rawDesc -) - -func file_changesets_proto_rawDescGZIP() []byte { - file_changesets_proto_rawDescOnce.Do(func() { - file_changesets_proto_rawDescData = protoimpl.X.CompressGZIP(file_changesets_proto_rawDescData) - }) - return file_changesets_proto_rawDescData -} - -var file_changesets_proto_msgTypes = make([]protoimpl.MessageInfo, 12) -var file_changesets_proto_goTypes = []any{ - (*Changeset)(nil), // 0: pomerium.dashboard.Changeset - (*ChangesetRecord)(nil), // 1: pomerium.dashboard.ChangesetRecord - (*ChangesetWithRecords)(nil), // 2: pomerium.dashboard.ChangesetWithRecords - (*ChangesetDetails)(nil), // 3: pomerium.dashboard.ChangesetDetails - (*ApproveChangesetRequest)(nil), // 4: pomerium.dashboard.ApproveChangesetRequest - (*DeployChangesetRequest)(nil), // 5: pomerium.dashboard.DeployChangesetRequest - (*DiffChangesetRequest)(nil), // 6: pomerium.dashboard.DiffChangesetRequest - (*DiffChangesetResponse)(nil), // 7: pomerium.dashboard.DiffChangesetResponse - (*ListChangesetsRequest)(nil), // 8: pomerium.dashboard.ListChangesetsRequest - (*ListChangesetsResponse)(nil), // 9: pomerium.dashboard.ListChangesetsResponse - (*ChangesetDetails_Approver)(nil), // 10: pomerium.dashboard.ChangesetDetails.Approver - (*DiffChangesetResponse_Record)(nil), // 11: pomerium.dashboard.DiffChangesetResponse.Record - (*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp - (*ActivityLogEntry)(nil), // 13: pomerium.dashboard.ActivityLogEntry - (*emptypb.Empty)(nil), // 14: google.protobuf.Empty -} -var file_changesets_proto_depIdxs = []int32{ - 12, // 0: pomerium.dashboard.Changeset.created_at:type_name -> google.protobuf.Timestamp - 12, // 1: pomerium.dashboard.Changeset.modified_at:type_name -> google.protobuf.Timestamp - 12, // 2: pomerium.dashboard.Changeset.deployed_at:type_name -> google.protobuf.Timestamp - 0, // 3: pomerium.dashboard.ChangesetWithRecords.changeset:type_name -> pomerium.dashboard.Changeset - 1, // 4: pomerium.dashboard.ChangesetWithRecords.records:type_name -> pomerium.dashboard.ChangesetRecord - 12, // 5: pomerium.dashboard.ChangesetDetails.created_at:type_name -> google.protobuf.Timestamp - 12, // 6: pomerium.dashboard.ChangesetDetails.modified_at:type_name -> google.protobuf.Timestamp - 12, // 7: pomerium.dashboard.ChangesetDetails.deployed_at:type_name -> google.protobuf.Timestamp - 10, // 8: pomerium.dashboard.ChangesetDetails.approvers:type_name -> pomerium.dashboard.ChangesetDetails.Approver - 13, // 9: pomerium.dashboard.ChangesetDetails.last_change:type_name -> pomerium.dashboard.ActivityLogEntry - 11, // 10: pomerium.dashboard.DiffChangesetResponse.changeset_records:type_name -> pomerium.dashboard.DiffChangesetResponse.Record - 11, // 11: pomerium.dashboard.DiffChangesetResponse.currently_deployed_changeset_records:type_name -> pomerium.dashboard.DiffChangesetResponse.Record - 3, // 12: pomerium.dashboard.ListChangesetsResponse.changesets:type_name -> pomerium.dashboard.ChangesetDetails - 12, // 13: pomerium.dashboard.ChangesetDetails.Approver.approved_at:type_name -> google.protobuf.Timestamp - 4, // 14: pomerium.dashboard.ChangesetService.ApproveChangeset:input_type -> pomerium.dashboard.ApproveChangesetRequest - 5, // 15: pomerium.dashboard.ChangesetService.DeployChangeset:input_type -> pomerium.dashboard.DeployChangesetRequest - 6, // 16: pomerium.dashboard.ChangesetService.DiffChangeset:input_type -> pomerium.dashboard.DiffChangesetRequest - 8, // 17: pomerium.dashboard.ChangesetService.ListChangesets:input_type -> pomerium.dashboard.ListChangesetsRequest - 14, // 18: pomerium.dashboard.ChangesetService.RollbackChangeset:input_type -> google.protobuf.Empty - 14, // 19: pomerium.dashboard.ChangesetService.ApproveChangeset:output_type -> google.protobuf.Empty - 14, // 20: pomerium.dashboard.ChangesetService.DeployChangeset:output_type -> google.protobuf.Empty - 7, // 21: pomerium.dashboard.ChangesetService.DiffChangeset:output_type -> pomerium.dashboard.DiffChangesetResponse - 9, // 22: pomerium.dashboard.ChangesetService.ListChangesets:output_type -> pomerium.dashboard.ListChangesetsResponse - 14, // 23: pomerium.dashboard.ChangesetService.RollbackChangeset:output_type -> google.protobuf.Empty - 19, // [19:24] is the sub-list for method output_type - 14, // [14:19] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name -} - -func init() { file_changesets_proto_init() } -func file_changesets_proto_init() { - if File_changesets_proto != nil { - return - } - file_activity_log_proto_init() - if !protoimpl.UnsafeEnabled { - file_changesets_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*Changeset); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_changesets_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*ChangesetRecord); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_changesets_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*ChangesetWithRecords); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_changesets_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*ChangesetDetails); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_changesets_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*ApproveChangesetRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_changesets_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*DeployChangesetRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_changesets_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*DiffChangesetRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_changesets_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*DiffChangesetResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_changesets_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*ListChangesetsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_changesets_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*ListChangesetsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_changesets_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*ChangesetDetails_Approver); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_changesets_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*DiffChangesetResponse_Record); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_changesets_proto_msgTypes[3].OneofWrappers = []any{} - file_changesets_proto_msgTypes[9].OneofWrappers = []any{} - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_changesets_proto_rawDesc, - NumEnums: 0, - NumMessages: 12, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_changesets_proto_goTypes, - DependencyIndexes: file_changesets_proto_depIdxs, - MessageInfos: file_changesets_proto_msgTypes, - }.Build() - File_changesets_proto = out.File - file_changesets_proto_rawDesc = nil - file_changesets_proto_goTypes = nil - file_changesets_proto_depIdxs = nil -} diff --git a/pb/changesets_grpc.pb.go b/pb/changesets_grpc.pb.go deleted file mode 100644 index b931f0b..0000000 --- a/pb/changesets_grpc.pb.go +++ /dev/null @@ -1,272 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc v3.21.7 -// source: changesets.proto - -package pb - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - emptypb "google.golang.org/protobuf/types/known/emptypb" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.64.0 or later. -const _ = grpc.SupportPackageIsVersion9 - -const ( - ChangesetService_ApproveChangeset_FullMethodName = "/pomerium.dashboard.ChangesetService/ApproveChangeset" - ChangesetService_DeployChangeset_FullMethodName = "/pomerium.dashboard.ChangesetService/DeployChangeset" - ChangesetService_DiffChangeset_FullMethodName = "/pomerium.dashboard.ChangesetService/DiffChangeset" - ChangesetService_ListChangesets_FullMethodName = "/pomerium.dashboard.ChangesetService/ListChangesets" - ChangesetService_RollbackChangeset_FullMethodName = "/pomerium.dashboard.ChangesetService/RollbackChangeset" -) - -// ChangesetServiceClient is the client API for ChangesetService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type ChangesetServiceClient interface { - ApproveChangeset(ctx context.Context, in *ApproveChangesetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) - DeployChangeset(ctx context.Context, in *DeployChangesetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) - DiffChangeset(ctx context.Context, in *DiffChangesetRequest, opts ...grpc.CallOption) (*DiffChangesetResponse, error) - ListChangesets(ctx context.Context, in *ListChangesetsRequest, opts ...grpc.CallOption) (*ListChangesetsResponse, error) - RollbackChangeset(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error) -} - -type changesetServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewChangesetServiceClient(cc grpc.ClientConnInterface) ChangesetServiceClient { - return &changesetServiceClient{cc} -} - -func (c *changesetServiceClient) ApproveChangeset(ctx context.Context, in *ApproveChangesetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, ChangesetService_ApproveChangeset_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *changesetServiceClient) DeployChangeset(ctx context.Context, in *DeployChangesetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, ChangesetService_DeployChangeset_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *changesetServiceClient) DiffChangeset(ctx context.Context, in *DiffChangesetRequest, opts ...grpc.CallOption) (*DiffChangesetResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(DiffChangesetResponse) - err := c.cc.Invoke(ctx, ChangesetService_DiffChangeset_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *changesetServiceClient) ListChangesets(ctx context.Context, in *ListChangesetsRequest, opts ...grpc.CallOption) (*ListChangesetsResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ListChangesetsResponse) - err := c.cc.Invoke(ctx, ChangesetService_ListChangesets_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *changesetServiceClient) RollbackChangeset(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, ChangesetService_RollbackChangeset_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ChangesetServiceServer is the server API for ChangesetService service. -// All implementations should embed UnimplementedChangesetServiceServer -// for forward compatibility. -type ChangesetServiceServer interface { - ApproveChangeset(context.Context, *ApproveChangesetRequest) (*emptypb.Empty, error) - DeployChangeset(context.Context, *DeployChangesetRequest) (*emptypb.Empty, error) - DiffChangeset(context.Context, *DiffChangesetRequest) (*DiffChangesetResponse, error) - ListChangesets(context.Context, *ListChangesetsRequest) (*ListChangesetsResponse, error) - RollbackChangeset(context.Context, *emptypb.Empty) (*emptypb.Empty, error) -} - -// UnimplementedChangesetServiceServer should be embedded to have -// forward compatible implementations. -// -// NOTE: this should be embedded by value instead of pointer to avoid a nil -// pointer dereference when methods are called. -type UnimplementedChangesetServiceServer struct{} - -func (UnimplementedChangesetServiceServer) ApproveChangeset(context.Context, *ApproveChangesetRequest) (*emptypb.Empty, error) { - return nil, status.Errorf(codes.Unimplemented, "method ApproveChangeset not implemented") -} -func (UnimplementedChangesetServiceServer) DeployChangeset(context.Context, *DeployChangesetRequest) (*emptypb.Empty, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeployChangeset not implemented") -} -func (UnimplementedChangesetServiceServer) DiffChangeset(context.Context, *DiffChangesetRequest) (*DiffChangesetResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DiffChangeset not implemented") -} -func (UnimplementedChangesetServiceServer) ListChangesets(context.Context, *ListChangesetsRequest) (*ListChangesetsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListChangesets not implemented") -} -func (UnimplementedChangesetServiceServer) RollbackChangeset(context.Context, *emptypb.Empty) (*emptypb.Empty, error) { - return nil, status.Errorf(codes.Unimplemented, "method RollbackChangeset not implemented") -} -func (UnimplementedChangesetServiceServer) testEmbeddedByValue() {} - -// UnsafeChangesetServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to ChangesetServiceServer will -// result in compilation errors. -type UnsafeChangesetServiceServer interface { - mustEmbedUnimplementedChangesetServiceServer() -} - -func RegisterChangesetServiceServer(s grpc.ServiceRegistrar, srv ChangesetServiceServer) { - // If the following call pancis, it indicates UnimplementedChangesetServiceServer was - // embedded by pointer and is nil. This will cause panics if an - // unimplemented method is ever invoked, so we test this at initialization - // time to prevent it from happening at runtime later due to I/O. - if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { - t.testEmbeddedByValue() - } - s.RegisterService(&ChangesetService_ServiceDesc, srv) -} - -func _ChangesetService_ApproveChangeset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ApproveChangesetRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChangesetServiceServer).ApproveChangeset(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ChangesetService_ApproveChangeset_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChangesetServiceServer).ApproveChangeset(ctx, req.(*ApproveChangesetRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _ChangesetService_DeployChangeset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeployChangesetRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChangesetServiceServer).DeployChangeset(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ChangesetService_DeployChangeset_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChangesetServiceServer).DeployChangeset(ctx, req.(*DeployChangesetRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _ChangesetService_DiffChangeset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DiffChangesetRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChangesetServiceServer).DiffChangeset(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ChangesetService_DiffChangeset_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChangesetServiceServer).DiffChangeset(ctx, req.(*DiffChangesetRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _ChangesetService_ListChangesets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListChangesetsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChangesetServiceServer).ListChangesets(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ChangesetService_ListChangesets_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChangesetServiceServer).ListChangesets(ctx, req.(*ListChangesetsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _ChangesetService_RollbackChangeset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(emptypb.Empty) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChangesetServiceServer).RollbackChangeset(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ChangesetService_RollbackChangeset_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChangesetServiceServer).RollbackChangeset(ctx, req.(*emptypb.Empty)) - } - return interceptor(ctx, in, info, handler) -} - -// ChangesetService_ServiceDesc is the grpc.ServiceDesc for ChangesetService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var ChangesetService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "pomerium.dashboard.ChangesetService", - HandlerType: (*ChangesetServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ApproveChangeset", - Handler: _ChangesetService_ApproveChangeset_Handler, - }, - { - MethodName: "DeployChangeset", - Handler: _ChangesetService_DeployChangeset_Handler, - }, - { - MethodName: "DiffChangeset", - Handler: _ChangesetService_DiffChangeset_Handler, - }, - { - MethodName: "ListChangesets", - Handler: _ChangesetService_ListChangesets_Handler, - }, - { - MethodName: "RollbackChangeset", - Handler: _ChangesetService_RollbackChangeset_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "changesets.proto", -} diff --git a/pb/console_config.pb.go b/pb/console_config.pb.go deleted file mode 100644 index df6d19a..0000000 --- a/pb/console_config.pb.go +++ /dev/null @@ -1,213 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.34.2 -// protoc v3.21.7 -// source: console_config.proto - -package pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type ConsoleConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - KeyPairs []*KeyPair `protobuf:"bytes,1,rep,name=key_pairs,json=keyPairs,proto3" json:"key_pairs,omitempty"` - Namespaces []*Namespace `protobuf:"bytes,2,rep,name=namespaces,proto3" json:"namespaces,omitempty"` - Policies []*Policy `protobuf:"bytes,3,rep,name=policies,proto3" json:"policies,omitempty"` - Routes []*Route `protobuf:"bytes,4,rep,name=routes,proto3" json:"routes,omitempty"` - Settings *Settings `protobuf:"bytes,5,opt,name=settings,proto3" json:"settings,omitempty"` -} - -func (x *ConsoleConfig) Reset() { - *x = ConsoleConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_console_config_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ConsoleConfig) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ConsoleConfig) ProtoMessage() {} - -func (x *ConsoleConfig) ProtoReflect() protoreflect.Message { - mi := &file_console_config_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ConsoleConfig.ProtoReflect.Descriptor instead. -func (*ConsoleConfig) Descriptor() ([]byte, []int) { - return file_console_config_proto_rawDescGZIP(), []int{0} -} - -func (x *ConsoleConfig) GetKeyPairs() []*KeyPair { - if x != nil { - return x.KeyPairs - } - return nil -} - -func (x *ConsoleConfig) GetNamespaces() []*Namespace { - if x != nil { - return x.Namespaces - } - return nil -} - -func (x *ConsoleConfig) GetPolicies() []*Policy { - if x != nil { - return x.Policies - } - return nil -} - -func (x *ConsoleConfig) GetRoutes() []*Route { - if x != nil { - return x.Routes - } - return nil -} - -func (x *ConsoleConfig) GetSettings() *Settings { - if x != nil { - return x.Settings - } - return nil -} - -var File_console_config_proto protoreflect.FileDescriptor - -var file_console_config_proto_rawDesc = []byte{ - 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x1a, 0x0f, 0x6b, 0x65, 0x79, 0x5f, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x73, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xad, 0x02, 0x0a, 0x0d, 0x43, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x0a, 0x09, 0x6b, - 0x65, 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x2e, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x08, 0x6b, 0x65, 0x79, - 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6d, 0x65, - 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x06, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, - 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, - 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, - 0x38, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, - 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, - 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, - 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_console_config_proto_rawDescOnce sync.Once - file_console_config_proto_rawDescData = file_console_config_proto_rawDesc -) - -func file_console_config_proto_rawDescGZIP() []byte { - file_console_config_proto_rawDescOnce.Do(func() { - file_console_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_console_config_proto_rawDescData) - }) - return file_console_config_proto_rawDescData -} - -var file_console_config_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_console_config_proto_goTypes = []any{ - (*ConsoleConfig)(nil), // 0: pomerium.dashboard.ConsoleConfig - (*KeyPair)(nil), // 1: pomerium.dashboard.KeyPair - (*Namespace)(nil), // 2: pomerium.dashboard.Namespace - (*Policy)(nil), // 3: pomerium.dashboard.Policy - (*Route)(nil), // 4: pomerium.dashboard.Route - (*Settings)(nil), // 5: pomerium.dashboard.Settings -} -var file_console_config_proto_depIdxs = []int32{ - 1, // 0: pomerium.dashboard.ConsoleConfig.key_pairs:type_name -> pomerium.dashboard.KeyPair - 2, // 1: pomerium.dashboard.ConsoleConfig.namespaces:type_name -> pomerium.dashboard.Namespace - 3, // 2: pomerium.dashboard.ConsoleConfig.policies:type_name -> pomerium.dashboard.Policy - 4, // 3: pomerium.dashboard.ConsoleConfig.routes:type_name -> pomerium.dashboard.Route - 5, // 4: pomerium.dashboard.ConsoleConfig.settings:type_name -> pomerium.dashboard.Settings - 5, // [5:5] is the sub-list for method output_type - 5, // [5:5] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name -} - -func init() { file_console_config_proto_init() } -func file_console_config_proto_init() { - if File_console_config_proto != nil { - return - } - file_key_chain_proto_init() - file_namespaces_proto_init() - file_policy_proto_init() - file_routes_proto_init() - file_settings_proto_init() - if !protoimpl.UnsafeEnabled { - file_console_config_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*ConsoleConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_console_config_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_console_config_proto_goTypes, - DependencyIndexes: file_console_config_proto_depIdxs, - MessageInfos: file_console_config_proto_msgTypes, - }.Build() - File_console_config_proto = out.File - file_console_config_proto_rawDesc = nil - file_console_config_proto_goTypes = nil - file_console_config_proto_depIdxs = nil -} diff --git a/pb/console_last_error.pb.go b/pb/console_last_error.pb.go deleted file mode 100644 index 5775027..0000000 --- a/pb/console_last_error.pb.go +++ /dev/null @@ -1,427 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.34.2 -// protoc v3.21.7 -// source: console_last_error.proto - -package pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type LastError_Service int32 - -const ( - LastError_UNKNOWN LastError_Service = 0 - LastError_EXTERNAL_DATA_SOURCE LastError_Service = 1 -) - -// Enum value maps for LastError_Service. -var ( - LastError_Service_name = map[int32]string{ - 0: "UNKNOWN", - 1: "EXTERNAL_DATA_SOURCE", - } - LastError_Service_value = map[string]int32{ - "UNKNOWN": 0, - "EXTERNAL_DATA_SOURCE": 1, - } -) - -func (x LastError_Service) Enum() *LastError_Service { - p := new(LastError_Service) - *p = x - return p -} - -func (x LastError_Service) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (LastError_Service) Descriptor() protoreflect.EnumDescriptor { - return file_console_last_error_proto_enumTypes[0].Descriptor() -} - -func (LastError_Service) Type() protoreflect.EnumType { - return &file_console_last_error_proto_enumTypes[0] -} - -func (x LastError_Service) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use LastError_Service.Descriptor instead. -func (LastError_Service) EnumDescriptor() ([]byte, []int) { - return file_console_last_error_proto_rawDescGZIP(), []int{0, 0} -} - -type LastError struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Service LastError_Service `protobuf:"varint,1,opt,name=service,proto3,enum=pomerium.dashboard.LastError_Service" json:"service,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Time *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"` - Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` - Metadata map[string]string `protobuf:"bytes,5,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - ContentType *string `protobuf:"bytes,6,opt,name=content_type,json=contentType,proto3,oneof" json:"content_type,omitempty"` - Data []byte `protobuf:"bytes,7,opt,name=data,proto3" json:"data,omitempty"` -} - -func (x *LastError) Reset() { - *x = LastError{} - if protoimpl.UnsafeEnabled { - mi := &file_console_last_error_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *LastError) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LastError) ProtoMessage() {} - -func (x *LastError) ProtoReflect() protoreflect.Message { - mi := &file_console_last_error_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LastError.ProtoReflect.Descriptor instead. -func (*LastError) Descriptor() ([]byte, []int) { - return file_console_last_error_proto_rawDescGZIP(), []int{0} -} - -func (x *LastError) GetService() LastError_Service { - if x != nil { - return x.Service - } - return LastError_UNKNOWN -} - -func (x *LastError) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *LastError) GetTime() *timestamppb.Timestamp { - if x != nil { - return x.Time - } - return nil -} - -func (x *LastError) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -func (x *LastError) GetMetadata() map[string]string { - if x != nil { - return x.Metadata - } - return nil -} - -func (x *LastError) GetContentType() string { - if x != nil && x.ContentType != nil { - return *x.ContentType - } - return "" -} - -func (x *LastError) GetData() []byte { - if x != nil { - return x.Data - } - return nil -} - -type GetLastErrorRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Service LastError_Service `protobuf:"varint,1,opt,name=service,proto3,enum=pomerium.dashboard.LastError_Service" json:"service,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *GetLastErrorRequest) Reset() { - *x = GetLastErrorRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_console_last_error_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetLastErrorRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetLastErrorRequest) ProtoMessage() {} - -func (x *GetLastErrorRequest) ProtoReflect() protoreflect.Message { - mi := &file_console_last_error_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetLastErrorRequest.ProtoReflect.Descriptor instead. -func (*GetLastErrorRequest) Descriptor() ([]byte, []int) { - return file_console_last_error_proto_rawDescGZIP(), []int{1} -} - -func (x *GetLastErrorRequest) GetService() LastError_Service { - if x != nil { - return x.Service - } - return LastError_UNKNOWN -} - -func (x *GetLastErrorRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -type GetLastErrorResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - LastError *LastError `protobuf:"bytes,1,opt,name=last_error,json=lastError,proto3" json:"last_error,omitempty"` -} - -func (x *GetLastErrorResponse) Reset() { - *x = GetLastErrorResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_console_last_error_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetLastErrorResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetLastErrorResponse) ProtoMessage() {} - -func (x *GetLastErrorResponse) ProtoReflect() protoreflect.Message { - mi := &file_console_last_error_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetLastErrorResponse.ProtoReflect.Descriptor instead. -func (*GetLastErrorResponse) Descriptor() ([]byte, []int) { - return file_console_last_error_proto_rawDescGZIP(), []int{2} -} - -func (x *GetLastErrorResponse) GetLastError() *LastError { - if x != nil { - return x.LastError - } - return nil -} - -var File_console_last_error_proto protoreflect.FileDescriptor - -var file_console_last_error_proto_rawDesc = []byte{ - 0x0a, 0x18, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x70, 0x6f, 0x6d, 0x65, - 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x1a, 0x1f, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0xab, 0x03, 0x0a, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3f, 0x0a, - 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2e, - 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x6f, 0x6d, - 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, - 0x4c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, - 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x30, 0x0a, 0x07, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x44, - 0x41, 0x54, 0x41, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x01, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x66, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x54, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, - 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, - 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x32, 0x75, 0x0a, 0x10, 0x4c, - 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x61, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x27, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, - 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x47, 0x65, - 0x74, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, - 0x75, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_console_last_error_proto_rawDescOnce sync.Once - file_console_last_error_proto_rawDescData = file_console_last_error_proto_rawDesc -) - -func file_console_last_error_proto_rawDescGZIP() []byte { - file_console_last_error_proto_rawDescOnce.Do(func() { - file_console_last_error_proto_rawDescData = protoimpl.X.CompressGZIP(file_console_last_error_proto_rawDescData) - }) - return file_console_last_error_proto_rawDescData -} - -var file_console_last_error_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_console_last_error_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_console_last_error_proto_goTypes = []any{ - (LastError_Service)(0), // 0: pomerium.dashboard.LastError.Service - (*LastError)(nil), // 1: pomerium.dashboard.LastError - (*GetLastErrorRequest)(nil), // 2: pomerium.dashboard.GetLastErrorRequest - (*GetLastErrorResponse)(nil), // 3: pomerium.dashboard.GetLastErrorResponse - nil, // 4: pomerium.dashboard.LastError.MetadataEntry - (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp -} -var file_console_last_error_proto_depIdxs = []int32{ - 0, // 0: pomerium.dashboard.LastError.service:type_name -> pomerium.dashboard.LastError.Service - 5, // 1: pomerium.dashboard.LastError.time:type_name -> google.protobuf.Timestamp - 4, // 2: pomerium.dashboard.LastError.metadata:type_name -> pomerium.dashboard.LastError.MetadataEntry - 0, // 3: pomerium.dashboard.GetLastErrorRequest.service:type_name -> pomerium.dashboard.LastError.Service - 1, // 4: pomerium.dashboard.GetLastErrorResponse.last_error:type_name -> pomerium.dashboard.LastError - 2, // 5: pomerium.dashboard.LastErrorService.GetLastError:input_type -> pomerium.dashboard.GetLastErrorRequest - 3, // 6: pomerium.dashboard.LastErrorService.GetLastError:output_type -> pomerium.dashboard.GetLastErrorResponse - 6, // [6:7] is the sub-list for method output_type - 5, // [5:6] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name -} - -func init() { file_console_last_error_proto_init() } -func file_console_last_error_proto_init() { - if File_console_last_error_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_console_last_error_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*LastError); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_console_last_error_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*GetLastErrorRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_console_last_error_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*GetLastErrorResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_console_last_error_proto_msgTypes[0].OneofWrappers = []any{} - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_console_last_error_proto_rawDesc, - NumEnums: 1, - NumMessages: 4, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_console_last_error_proto_goTypes, - DependencyIndexes: file_console_last_error_proto_depIdxs, - EnumInfos: file_console_last_error_proto_enumTypes, - MessageInfos: file_console_last_error_proto_msgTypes, - }.Build() - File_console_last_error_proto = out.File - file_console_last_error_proto_rawDesc = nil - file_console_last_error_proto_goTypes = nil - file_console_last_error_proto_depIdxs = nil -} diff --git a/pb/console_last_error_grpc.pb.go b/pb/console_last_error_grpc.pb.go deleted file mode 100644 index b64c1ba..0000000 --- a/pb/console_last_error_grpc.pb.go +++ /dev/null @@ -1,119 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc v3.21.7 -// source: console_last_error.proto - -package pb - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.64.0 or later. -const _ = grpc.SupportPackageIsVersion9 - -const ( - LastErrorService_GetLastError_FullMethodName = "/pomerium.dashboard.LastErrorService/GetLastError" -) - -// LastErrorServiceClient is the client API for LastErrorService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type LastErrorServiceClient interface { - GetLastError(ctx context.Context, in *GetLastErrorRequest, opts ...grpc.CallOption) (*GetLastErrorResponse, error) -} - -type lastErrorServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewLastErrorServiceClient(cc grpc.ClientConnInterface) LastErrorServiceClient { - return &lastErrorServiceClient{cc} -} - -func (c *lastErrorServiceClient) GetLastError(ctx context.Context, in *GetLastErrorRequest, opts ...grpc.CallOption) (*GetLastErrorResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(GetLastErrorResponse) - err := c.cc.Invoke(ctx, LastErrorService_GetLastError_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -// LastErrorServiceServer is the server API for LastErrorService service. -// All implementations should embed UnimplementedLastErrorServiceServer -// for forward compatibility. -type LastErrorServiceServer interface { - GetLastError(context.Context, *GetLastErrorRequest) (*GetLastErrorResponse, error) -} - -// UnimplementedLastErrorServiceServer should be embedded to have -// forward compatible implementations. -// -// NOTE: this should be embedded by value instead of pointer to avoid a nil -// pointer dereference when methods are called. -type UnimplementedLastErrorServiceServer struct{} - -func (UnimplementedLastErrorServiceServer) GetLastError(context.Context, *GetLastErrorRequest) (*GetLastErrorResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetLastError not implemented") -} -func (UnimplementedLastErrorServiceServer) testEmbeddedByValue() {} - -// UnsafeLastErrorServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to LastErrorServiceServer will -// result in compilation errors. -type UnsafeLastErrorServiceServer interface { - mustEmbedUnimplementedLastErrorServiceServer() -} - -func RegisterLastErrorServiceServer(s grpc.ServiceRegistrar, srv LastErrorServiceServer) { - // If the following call pancis, it indicates UnimplementedLastErrorServiceServer was - // embedded by pointer and is nil. This will cause panics if an - // unimplemented method is ever invoked, so we test this at initialization - // time to prevent it from happening at runtime later due to I/O. - if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { - t.testEmbeddedByValue() - } - s.RegisterService(&LastErrorService_ServiceDesc, srv) -} - -func _LastErrorService_GetLastError_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetLastErrorRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(LastErrorServiceServer).GetLastError(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: LastErrorService_GetLastError_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(LastErrorServiceServer).GetLastError(ctx, req.(*GetLastErrorRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// LastErrorService_ServiceDesc is the grpc.ServiceDesc for LastErrorService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var LastErrorService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "pomerium.dashboard.LastErrorService", - HandlerType: (*LastErrorServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetLastError", - Handler: _LastErrorService_GetLastError_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "console_last_error.proto", -} diff --git a/pb/databroker_svc.pb.go b/pb/databroker_svc.pb.go deleted file mode 100644 index 7153091..0000000 --- a/pb/databroker_svc.pb.go +++ /dev/null @@ -1,570 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.34.2 -// protoc v3.21.7 -// source: databroker_svc.proto - -package pb - -import ( - databroker "github.com/pomerium/pomerium/pkg/grpc/databroker" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - emptypb "google.golang.org/protobuf/types/known/emptypb" - structpb "google.golang.org/protobuf/types/known/structpb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type ListDataBrokerRecordsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RecordType string `protobuf:"bytes,1,opt,name=record_type,json=recordType,proto3" json:"record_type,omitempty"` -} - -func (x *ListDataBrokerRecordsRequest) Reset() { - *x = ListDataBrokerRecordsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_databroker_svc_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListDataBrokerRecordsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListDataBrokerRecordsRequest) ProtoMessage() {} - -func (x *ListDataBrokerRecordsRequest) ProtoReflect() protoreflect.Message { - mi := &file_databroker_svc_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListDataBrokerRecordsRequest.ProtoReflect.Descriptor instead. -func (*ListDataBrokerRecordsRequest) Descriptor() ([]byte, []int) { - return file_databroker_svc_proto_rawDescGZIP(), []int{0} -} - -func (x *ListDataBrokerRecordsRequest) GetRecordType() string { - if x != nil { - return x.RecordType - } - return "" -} - -type ListDataBrokerRecordsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Records []*databroker.Record `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"` -} - -func (x *ListDataBrokerRecordsResponse) Reset() { - *x = ListDataBrokerRecordsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_databroker_svc_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListDataBrokerRecordsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListDataBrokerRecordsResponse) ProtoMessage() {} - -func (x *ListDataBrokerRecordsResponse) ProtoReflect() protoreflect.Message { - mi := &file_databroker_svc_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListDataBrokerRecordsResponse.ProtoReflect.Descriptor instead. -func (*ListDataBrokerRecordsResponse) Descriptor() ([]byte, []int) { - return file_databroker_svc_proto_rawDescGZIP(), []int{1} -} - -func (x *ListDataBrokerRecordsResponse) GetRecords() []*databroker.Record { - if x != nil { - return x.Records - } - return nil -} - -type ListDataBrokerRecordTypesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RecordTypes []string `protobuf:"bytes,1,rep,name=record_types,json=recordTypes,proto3" json:"record_types,omitempty"` -} - -func (x *ListDataBrokerRecordTypesResponse) Reset() { - *x = ListDataBrokerRecordTypesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_databroker_svc_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListDataBrokerRecordTypesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListDataBrokerRecordTypesResponse) ProtoMessage() {} - -func (x *ListDataBrokerRecordTypesResponse) ProtoReflect() protoreflect.Message { - mi := &file_databroker_svc_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListDataBrokerRecordTypesResponse.ProtoReflect.Descriptor instead. -func (*ListDataBrokerRecordTypesResponse) Descriptor() ([]byte, []int) { - return file_databroker_svc_proto_rawDescGZIP(), []int{2} -} - -func (x *ListDataBrokerRecordTypesResponse) GetRecordTypes() []string { - if x != nil { - return x.RecordTypes - } - return nil -} - -type QueryDataBrokerRecordsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RecordType string `protobuf:"bytes,1,opt,name=record_type,json=recordType,proto3" json:"record_type,omitempty"` - // look up records with any fields that match the query - Query string `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` - // list records starting from an offset in the total list - Offset int64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"` - // list records up to a limit - Limit int64 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"` -} - -func (x *QueryDataBrokerRecordsRequest) Reset() { - *x = QueryDataBrokerRecordsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_databroker_svc_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *QueryDataBrokerRecordsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*QueryDataBrokerRecordsRequest) ProtoMessage() {} - -func (x *QueryDataBrokerRecordsRequest) ProtoReflect() protoreflect.Message { - mi := &file_databroker_svc_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use QueryDataBrokerRecordsRequest.ProtoReflect.Descriptor instead. -func (*QueryDataBrokerRecordsRequest) Descriptor() ([]byte, []int) { - return file_databroker_svc_proto_rawDescGZIP(), []int{3} -} - -func (x *QueryDataBrokerRecordsRequest) GetRecordType() string { - if x != nil { - return x.RecordType - } - return "" -} - -func (x *QueryDataBrokerRecordsRequest) GetQuery() string { - if x != nil { - return x.Query - } - return "" -} - -func (x *QueryDataBrokerRecordsRequest) GetOffset() int64 { - if x != nil { - return x.Offset - } - return 0 -} - -func (x *QueryDataBrokerRecordsRequest) GetLimit() int64 { - if x != nil { - return x.Limit - } - return 0 -} - -type Record struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Record ID - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - // Record properties - Properties *structpb.Struct `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` -} - -func (x *Record) Reset() { - *x = Record{} - if protoimpl.UnsafeEnabled { - mi := &file_databroker_svc_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Record) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Record) ProtoMessage() {} - -func (x *Record) ProtoReflect() protoreflect.Message { - mi := &file_databroker_svc_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Record.ProtoReflect.Descriptor instead. -func (*Record) Descriptor() ([]byte, []int) { - return file_databroker_svc_proto_rawDescGZIP(), []int{4} -} - -func (x *Record) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *Record) GetProperties() *structpb.Struct { - if x != nil { - return x.Properties - } - return nil -} - -type QueryDataBrokerRecordsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Maps record IDs to record properties - Records []*Record `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"` - TotalCount int64 `protobuf:"varint,2,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"` -} - -func (x *QueryDataBrokerRecordsResponse) Reset() { - *x = QueryDataBrokerRecordsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_databroker_svc_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *QueryDataBrokerRecordsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*QueryDataBrokerRecordsResponse) ProtoMessage() {} - -func (x *QueryDataBrokerRecordsResponse) ProtoReflect() protoreflect.Message { - mi := &file_databroker_svc_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use QueryDataBrokerRecordsResponse.ProtoReflect.Descriptor instead. -func (*QueryDataBrokerRecordsResponse) Descriptor() ([]byte, []int) { - return file_databroker_svc_proto_rawDescGZIP(), []int{5} -} - -func (x *QueryDataBrokerRecordsResponse) GetRecords() []*Record { - if x != nil { - return x.Records - } - return nil -} - -func (x *QueryDataBrokerRecordsResponse) GetTotalCount() int64 { - if x != nil { - return x.TotalCount - } - return 0 -} - -var File_databroker_svc_proto protoreflect.FileDescriptor - -var file_databroker_svc_proto_rawDesc = []byte{ - 0x0a, 0x14, 0x64, 0x61, 0x74, 0x61, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x76, 0x63, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x1a, 0x41, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2f, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x67, 0x72, 0x70, - 0x63, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3f, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4d, 0x0a, 0x1d, 0x4c, 0x69, 0x73, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x46, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, - 0x22, 0x84, 0x01, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, - 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x51, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x77, 0x0a, 0x1e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x07, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x32, 0xf7, 0x02, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x6b, - 0x65, 0x72, 0x12, 0x7c, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, - 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x30, 0x2e, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, - 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x6a, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x6b, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, - 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x16, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x31, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x70, 0x6f, 0x6d, 0x65, - 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2d, 0x5a, - 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, - 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2d, 0x63, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_databroker_svc_proto_rawDescOnce sync.Once - file_databroker_svc_proto_rawDescData = file_databroker_svc_proto_rawDesc -) - -func file_databroker_svc_proto_rawDescGZIP() []byte { - file_databroker_svc_proto_rawDescOnce.Do(func() { - file_databroker_svc_proto_rawDescData = protoimpl.X.CompressGZIP(file_databroker_svc_proto_rawDescData) - }) - return file_databroker_svc_proto_rawDescData -} - -var file_databroker_svc_proto_msgTypes = make([]protoimpl.MessageInfo, 6) -var file_databroker_svc_proto_goTypes = []any{ - (*ListDataBrokerRecordsRequest)(nil), // 0: pomerium.dashboard.ListDataBrokerRecordsRequest - (*ListDataBrokerRecordsResponse)(nil), // 1: pomerium.dashboard.ListDataBrokerRecordsResponse - (*ListDataBrokerRecordTypesResponse)(nil), // 2: pomerium.dashboard.ListDataBrokerRecordTypesResponse - (*QueryDataBrokerRecordsRequest)(nil), // 3: pomerium.dashboard.QueryDataBrokerRecordsRequest - (*Record)(nil), // 4: pomerium.dashboard.Record - (*QueryDataBrokerRecordsResponse)(nil), // 5: pomerium.dashboard.QueryDataBrokerRecordsResponse - (*databroker.Record)(nil), // 6: databroker.Record - (*structpb.Struct)(nil), // 7: google.protobuf.Struct - (*emptypb.Empty)(nil), // 8: google.protobuf.Empty -} -var file_databroker_svc_proto_depIdxs = []int32{ - 6, // 0: pomerium.dashboard.ListDataBrokerRecordsResponse.records:type_name -> databroker.Record - 7, // 1: pomerium.dashboard.Record.properties:type_name -> google.protobuf.Struct - 4, // 2: pomerium.dashboard.QueryDataBrokerRecordsResponse.records:type_name -> pomerium.dashboard.Record - 0, // 3: pomerium.dashboard.DataBroker.ListDataBrokerRecords:input_type -> pomerium.dashboard.ListDataBrokerRecordsRequest - 8, // 4: pomerium.dashboard.DataBroker.ListDataBrokerRecordTypes:input_type -> google.protobuf.Empty - 3, // 5: pomerium.dashboard.DataBroker.QueryDataBrokerRecords:input_type -> pomerium.dashboard.QueryDataBrokerRecordsRequest - 1, // 6: pomerium.dashboard.DataBroker.ListDataBrokerRecords:output_type -> pomerium.dashboard.ListDataBrokerRecordsResponse - 2, // 7: pomerium.dashboard.DataBroker.ListDataBrokerRecordTypes:output_type -> pomerium.dashboard.ListDataBrokerRecordTypesResponse - 5, // 8: pomerium.dashboard.DataBroker.QueryDataBrokerRecords:output_type -> pomerium.dashboard.QueryDataBrokerRecordsResponse - 6, // [6:9] is the sub-list for method output_type - 3, // [3:6] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name -} - -func init() { file_databroker_svc_proto_init() } -func file_databroker_svc_proto_init() { - if File_databroker_svc_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_databroker_svc_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*ListDataBrokerRecordsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_databroker_svc_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*ListDataBrokerRecordsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_databroker_svc_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*ListDataBrokerRecordTypesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_databroker_svc_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*QueryDataBrokerRecordsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_databroker_svc_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*Record); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_databroker_svc_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*QueryDataBrokerRecordsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_databroker_svc_proto_rawDesc, - NumEnums: 0, - NumMessages: 6, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_databroker_svc_proto_goTypes, - DependencyIndexes: file_databroker_svc_proto_depIdxs, - MessageInfos: file_databroker_svc_proto_msgTypes, - }.Build() - File_databroker_svc_proto = out.File - file_databroker_svc_proto_rawDesc = nil - file_databroker_svc_proto_goTypes = nil - file_databroker_svc_proto_depIdxs = nil -} diff --git a/pb/databroker_svc_grpc.pb.go b/pb/databroker_svc_grpc.pb.go deleted file mode 100644 index 11b01f3..0000000 --- a/pb/databroker_svc_grpc.pb.go +++ /dev/null @@ -1,196 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc v3.21.7 -// source: databroker_svc.proto - -package pb - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - emptypb "google.golang.org/protobuf/types/known/emptypb" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.64.0 or later. -const _ = grpc.SupportPackageIsVersion9 - -const ( - DataBroker_ListDataBrokerRecords_FullMethodName = "/pomerium.dashboard.DataBroker/ListDataBrokerRecords" - DataBroker_ListDataBrokerRecordTypes_FullMethodName = "/pomerium.dashboard.DataBroker/ListDataBrokerRecordTypes" - DataBroker_QueryDataBrokerRecords_FullMethodName = "/pomerium.dashboard.DataBroker/QueryDataBrokerRecords" -) - -// DataBrokerClient is the client API for DataBroker service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type DataBrokerClient interface { - ListDataBrokerRecords(ctx context.Context, in *ListDataBrokerRecordsRequest, opts ...grpc.CallOption) (*ListDataBrokerRecordsResponse, error) - ListDataBrokerRecordTypes(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ListDataBrokerRecordTypesResponse, error) - QueryDataBrokerRecords(ctx context.Context, in *QueryDataBrokerRecordsRequest, opts ...grpc.CallOption) (*QueryDataBrokerRecordsResponse, error) -} - -type dataBrokerClient struct { - cc grpc.ClientConnInterface -} - -func NewDataBrokerClient(cc grpc.ClientConnInterface) DataBrokerClient { - return &dataBrokerClient{cc} -} - -func (c *dataBrokerClient) ListDataBrokerRecords(ctx context.Context, in *ListDataBrokerRecordsRequest, opts ...grpc.CallOption) (*ListDataBrokerRecordsResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ListDataBrokerRecordsResponse) - err := c.cc.Invoke(ctx, DataBroker_ListDataBrokerRecords_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *dataBrokerClient) ListDataBrokerRecordTypes(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ListDataBrokerRecordTypesResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ListDataBrokerRecordTypesResponse) - err := c.cc.Invoke(ctx, DataBroker_ListDataBrokerRecordTypes_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *dataBrokerClient) QueryDataBrokerRecords(ctx context.Context, in *QueryDataBrokerRecordsRequest, opts ...grpc.CallOption) (*QueryDataBrokerRecordsResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(QueryDataBrokerRecordsResponse) - err := c.cc.Invoke(ctx, DataBroker_QueryDataBrokerRecords_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -// DataBrokerServer is the server API for DataBroker service. -// All implementations should embed UnimplementedDataBrokerServer -// for forward compatibility. -type DataBrokerServer interface { - ListDataBrokerRecords(context.Context, *ListDataBrokerRecordsRequest) (*ListDataBrokerRecordsResponse, error) - ListDataBrokerRecordTypes(context.Context, *emptypb.Empty) (*ListDataBrokerRecordTypesResponse, error) - QueryDataBrokerRecords(context.Context, *QueryDataBrokerRecordsRequest) (*QueryDataBrokerRecordsResponse, error) -} - -// UnimplementedDataBrokerServer should be embedded to have -// forward compatible implementations. -// -// NOTE: this should be embedded by value instead of pointer to avoid a nil -// pointer dereference when methods are called. -type UnimplementedDataBrokerServer struct{} - -func (UnimplementedDataBrokerServer) ListDataBrokerRecords(context.Context, *ListDataBrokerRecordsRequest) (*ListDataBrokerRecordsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListDataBrokerRecords not implemented") -} -func (UnimplementedDataBrokerServer) ListDataBrokerRecordTypes(context.Context, *emptypb.Empty) (*ListDataBrokerRecordTypesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListDataBrokerRecordTypes not implemented") -} -func (UnimplementedDataBrokerServer) QueryDataBrokerRecords(context.Context, *QueryDataBrokerRecordsRequest) (*QueryDataBrokerRecordsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryDataBrokerRecords not implemented") -} -func (UnimplementedDataBrokerServer) testEmbeddedByValue() {} - -// UnsafeDataBrokerServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to DataBrokerServer will -// result in compilation errors. -type UnsafeDataBrokerServer interface { - mustEmbedUnimplementedDataBrokerServer() -} - -func RegisterDataBrokerServer(s grpc.ServiceRegistrar, srv DataBrokerServer) { - // If the following call pancis, it indicates UnimplementedDataBrokerServer was - // embedded by pointer and is nil. This will cause panics if an - // unimplemented method is ever invoked, so we test this at initialization - // time to prevent it from happening at runtime later due to I/O. - if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { - t.testEmbeddedByValue() - } - s.RegisterService(&DataBroker_ServiceDesc, srv) -} - -func _DataBroker_ListDataBrokerRecords_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListDataBrokerRecordsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DataBrokerServer).ListDataBrokerRecords(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: DataBroker_ListDataBrokerRecords_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DataBrokerServer).ListDataBrokerRecords(ctx, req.(*ListDataBrokerRecordsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _DataBroker_ListDataBrokerRecordTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(emptypb.Empty) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DataBrokerServer).ListDataBrokerRecordTypes(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: DataBroker_ListDataBrokerRecordTypes_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DataBrokerServer).ListDataBrokerRecordTypes(ctx, req.(*emptypb.Empty)) - } - return interceptor(ctx, in, info, handler) -} - -func _DataBroker_QueryDataBrokerRecords_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryDataBrokerRecordsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DataBrokerServer).QueryDataBrokerRecords(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: DataBroker_QueryDataBrokerRecords_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DataBrokerServer).QueryDataBrokerRecords(ctx, req.(*QueryDataBrokerRecordsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// DataBroker_ServiceDesc is the grpc.ServiceDesc for DataBroker service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var DataBroker_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "pomerium.dashboard.DataBroker", - HandlerType: (*DataBrokerServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListDataBrokerRecords", - Handler: _DataBroker_ListDataBrokerRecords_Handler, - }, - { - MethodName: "ListDataBrokerRecordTypes", - Handler: _DataBroker_ListDataBrokerRecordTypes_Handler, - }, - { - MethodName: "QueryDataBrokerRecords", - Handler: _DataBroker_QueryDataBrokerRecords_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "databroker_svc.proto", -} diff --git a/pb/events.pb.go b/pb/events.pb.go deleted file mode 100644 index 7479de0..0000000 --- a/pb/events.pb.go +++ /dev/null @@ -1,575 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.12 -// source: events.proto - -package pb - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type Event_EventKind int32 - -const ( - Event_EVENT_KIND_UNDEFINED Event_EventKind = 0 - // envoy_service_discovery_v3.DeltaDiscoveryRequest - Event_EVENT_DISCOVERY_REQUEST_ACK Event_EventKind = 1 - Event_EVENT_DISCOVERY_REQUEST_NACK Event_EventKind = 2 - // envoy_service_discovery_v3.DeltaDiscoveryResponse - Event_EVENT_DISCOVERY_RESPONSE Event_EventKind = 3 -) - -// Enum value maps for Event_EventKind. -var ( - Event_EventKind_name = map[int32]string{ - 0: "EVENT_KIND_UNDEFINED", - 1: "EVENT_DISCOVERY_REQUEST_ACK", - 2: "EVENT_DISCOVERY_REQUEST_NACK", - 3: "EVENT_DISCOVERY_RESPONSE", - } - Event_EventKind_value = map[string]int32{ - "EVENT_KIND_UNDEFINED": 0, - "EVENT_DISCOVERY_REQUEST_ACK": 1, - "EVENT_DISCOVERY_REQUEST_NACK": 2, - "EVENT_DISCOVERY_RESPONSE": 3, - } -) - -func (x Event_EventKind) Enum() *Event_EventKind { - p := new(Event_EventKind) - *p = x - return p -} - -func (x Event_EventKind) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (Event_EventKind) Descriptor() protoreflect.EnumDescriptor { - return file_events_proto_enumTypes[0].Descriptor() -} - -func (Event_EventKind) Type() protoreflect.EnumType { - return &file_events_proto_enumTypes[0] -} - -func (x Event_EventKind) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use Event_EventKind.Descriptor instead. -func (Event_EventKind) EnumDescriptor() ([]byte, []int) { - return file_events_proto_rawDescGZIP(), []int{0, 0} -} - -// Event represents a single envoy DeltaDiscovery event -type Event struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` - Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` - Code int32 `protobuf:"varint,3,opt,name=code,proto3" json:"code,omitempty"` - // JSON serialized details - Details []string `protobuf:"bytes,4,rep,name=details,proto3" json:"details,omitempty"` - // databroker config version - ConfigVersion uint64 `protobuf:"varint,5,opt,name=config_version,json=configVersion,proto3" json:"config_version,omitempty"` - // envoy resource type (i.e. listener, cluster) - TypeUrl string `protobuf:"bytes,6,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` - // envoy event kind - Kind Event_EventKind `protobuf:"varint,7,opt,name=kind,proto3,enum=pomerium.dashboard.Event_EventKind" json:"kind,omitempty"` - // envoy clusters or listeners that were added to the configuration - ResourceSubscribed []string `protobuf:"bytes,8,rep,name=resource_subscribed,json=resourceSubscribed,proto3" json:"resource_subscribed,omitempty"` - // clusters or listeners that were removed from the envoy configuration - ResourceUnsubscribed []string `protobuf:"bytes,9,rep,name=resource_unsubscribed,json=resourceUnsubscribed,proto3" json:"resource_unsubscribed,omitempty"` - // pomerium instance this event originated from - Instance string `protobuf:"bytes,10,opt,name=instance,proto3" json:"instance,omitempty"` - // databroker record version during this event - SeqNo uint64 `protobuf:"varint,11,opt,name=seq_no,json=seqNo,proto3" json:"seq_no,omitempty"` - Nonce string `protobuf:"bytes,12,opt,name=nonce,proto3" json:"nonce,omitempty"` -} - -func (x *Event) Reset() { - *x = Event{} - if protoimpl.UnsafeEnabled { - mi := &file_events_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Event) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Event) ProtoMessage() {} - -func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_events_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Event.ProtoReflect.Descriptor instead. -func (*Event) Descriptor() ([]byte, []int) { - return file_events_proto_rawDescGZIP(), []int{0} -} - -func (x *Event) GetTime() *timestamppb.Timestamp { - if x != nil { - return x.Time - } - return nil -} - -func (x *Event) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -func (x *Event) GetCode() int32 { - if x != nil { - return x.Code - } - return 0 -} - -func (x *Event) GetDetails() []string { - if x != nil { - return x.Details - } - return nil -} - -func (x *Event) GetConfigVersion() uint64 { - if x != nil { - return x.ConfigVersion - } - return 0 -} - -func (x *Event) GetTypeUrl() string { - if x != nil { - return x.TypeUrl - } - return "" -} - -func (x *Event) GetKind() Event_EventKind { - if x != nil { - return x.Kind - } - return Event_EVENT_KIND_UNDEFINED -} - -func (x *Event) GetResourceSubscribed() []string { - if x != nil { - return x.ResourceSubscribed - } - return nil -} - -func (x *Event) GetResourceUnsubscribed() []string { - if x != nil { - return x.ResourceUnsubscribed - } - return nil -} - -func (x *Event) GetInstance() string { - if x != nil { - return x.Instance - } - return "" -} - -func (x *Event) GetSeqNo() uint64 { - if x != nil { - return x.SeqNo - } - return 0 -} - -func (x *Event) GetNonce() string { - if x != nil { - return x.Nonce - } - return "" -} - -type SyncRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SyncRequest) Reset() { - *x = SyncRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_events_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SyncRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SyncRequest) ProtoMessage() {} - -func (x *SyncRequest) ProtoReflect() protoreflect.Message { - mi := &file_events_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SyncRequest.ProtoReflect.Descriptor instead. -func (*SyncRequest) Descriptor() ([]byte, []int) { - return file_events_proto_rawDescGZIP(), []int{1} -} - -type SyncResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Event *Event `protobuf:"bytes,1,opt,name=event,proto3" json:"event,omitempty"` -} - -func (x *SyncResponse) Reset() { - *x = SyncResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_events_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SyncResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SyncResponse) ProtoMessage() {} - -func (x *SyncResponse) ProtoReflect() protoreflect.Message { - mi := &file_events_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SyncResponse.ProtoReflect.Descriptor instead. -func (*SyncResponse) Descriptor() ([]byte, []int) { - return file_events_proto_rawDescGZIP(), []int{2} -} - -func (x *SyncResponse) GetEvent() *Event { - if x != nil { - return x.Event - } - return nil -} - -var File_events_proto protoreflect.FileDescriptor - -var file_events_proto_rawDesc = []byte{ - 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xb2, 0x04, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, - 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x37, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, - 0x12, 0x2f, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x64, 0x12, 0x33, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x6e, - 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x71, 0x4e, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, - 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, - 0x86, 0x01, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x18, 0x0a, - 0x14, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x44, 0x45, - 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, - 0x53, 0x54, 0x5f, 0x41, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x52, 0x45, 0x51, 0x55, - 0x45, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x52, 0x45, - 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x03, 0x22, 0x0d, 0x0a, 0x0b, 0x53, 0x79, 0x6e, 0x63, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x0c, 0x53, 0x79, 0x6e, 0x63, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x32, 0x55, 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x04, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x1f, 0x2e, 0x70, 0x6f, 0x6d, - 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, - 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, - 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2d, - 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_events_proto_rawDescOnce sync.Once - file_events_proto_rawDescData = file_events_proto_rawDesc -) - -func file_events_proto_rawDescGZIP() []byte { - file_events_proto_rawDescOnce.Do(func() { - file_events_proto_rawDescData = protoimpl.X.CompressGZIP(file_events_proto_rawDescData) - }) - return file_events_proto_rawDescData -} - -var file_events_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_events_proto_msgTypes = make([]protoimpl.MessageInfo, 3) -var file_events_proto_goTypes = []interface{}{ - (Event_EventKind)(0), // 0: pomerium.dashboard.Event.EventKind - (*Event)(nil), // 1: pomerium.dashboard.Event - (*SyncRequest)(nil), // 2: pomerium.dashboard.SyncRequest - (*SyncResponse)(nil), // 3: pomerium.dashboard.SyncResponse - (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp -} -var file_events_proto_depIdxs = []int32{ - 4, // 0: pomerium.dashboard.Event.time:type_name -> google.protobuf.Timestamp - 0, // 1: pomerium.dashboard.Event.kind:type_name -> pomerium.dashboard.Event.EventKind - 1, // 2: pomerium.dashboard.SyncResponse.event:type_name -> pomerium.dashboard.Event - 2, // 3: pomerium.dashboard.Events.Sync:input_type -> pomerium.dashboard.SyncRequest - 3, // 4: pomerium.dashboard.Events.Sync:output_type -> pomerium.dashboard.SyncResponse - 4, // [4:5] is the sub-list for method output_type - 3, // [3:4] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name -} - -func init() { file_events_proto_init() } -func file_events_proto_init() { - if File_events_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_events_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Event); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_events_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SyncRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_events_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SyncResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_events_proto_rawDesc, - NumEnums: 1, - NumMessages: 3, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_events_proto_goTypes, - DependencyIndexes: file_events_proto_depIdxs, - EnumInfos: file_events_proto_enumTypes, - MessageInfos: file_events_proto_msgTypes, - }.Build() - File_events_proto = out.File - file_events_proto_rawDesc = nil - file_events_proto_goTypes = nil - file_events_proto_depIdxs = nil -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// EventsClient is the client API for Events service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type EventsClient interface { - // Sync sends all current events and then pushes new events as they arrive - Sync(ctx context.Context, in *SyncRequest, opts ...grpc.CallOption) (Events_SyncClient, error) -} - -type eventsClient struct { - cc grpc.ClientConnInterface -} - -func NewEventsClient(cc grpc.ClientConnInterface) EventsClient { - return &eventsClient{cc} -} - -func (c *eventsClient) Sync(ctx context.Context, in *SyncRequest, opts ...grpc.CallOption) (Events_SyncClient, error) { - stream, err := c.cc.NewStream(ctx, &_Events_serviceDesc.Streams[0], "/pomerium.dashboard.Events/Sync", opts...) - if err != nil { - return nil, err - } - x := &eventsSyncClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type Events_SyncClient interface { - Recv() (*SyncResponse, error) - grpc.ClientStream -} - -type eventsSyncClient struct { - grpc.ClientStream -} - -func (x *eventsSyncClient) Recv() (*SyncResponse, error) { - m := new(SyncResponse) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -// EventsServer is the server API for Events service. -type EventsServer interface { - // Sync sends all current events and then pushes new events as they arrive - Sync(*SyncRequest, Events_SyncServer) error -} - -// UnimplementedEventsServer can be embedded to have forward compatible implementations. -type UnimplementedEventsServer struct { -} - -func (*UnimplementedEventsServer) Sync(*SyncRequest, Events_SyncServer) error { - return status.Errorf(codes.Unimplemented, "method Sync not implemented") -} - -func RegisterEventsServer(s *grpc.Server, srv EventsServer) { - s.RegisterService(&_Events_serviceDesc, srv) -} - -func _Events_Sync_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(SyncRequest) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(EventsServer).Sync(m, &eventsSyncServer{stream}) -} - -type Events_SyncServer interface { - Send(*SyncResponse) error - grpc.ServerStream -} - -type eventsSyncServer struct { - grpc.ServerStream -} - -func (x *eventsSyncServer) Send(m *SyncResponse) error { - return x.ServerStream.SendMsg(m) -} - -var _Events_serviceDesc = grpc.ServiceDesc{ - ServiceName: "pomerium.dashboard.Events", - HandlerType: (*EventsServer)(nil), - Methods: []grpc.MethodDesc{}, - Streams: []grpc.StreamDesc{ - { - StreamName: "Sync", - Handler: _Events_Sync_Handler, - ServerStreams: true, - }, - }, - Metadata: "events.proto", -} diff --git a/pb/report.pb.go b/pb/report.pb.go deleted file mode 100644 index ba1e1df..0000000 --- a/pb/report.pb.go +++ /dev/null @@ -1,250 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.34.2 -// protoc v3.21.7 -// source: report.proto - -package pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// PolicyReportRequest may either specify a list of routes, -// or request to report all routes of the namespace -type PolicyReportRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RouteIds []string `protobuf:"bytes,1,rep,name=route_ids,json=routeIds,proto3" json:"route_ids,omitempty"` - NamespaceId string `protobuf:"bytes,2,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` -} - -func (x *PolicyReportRequest) Reset() { - *x = PolicyReportRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_report_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PolicyReportRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PolicyReportRequest) ProtoMessage() {} - -func (x *PolicyReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_report_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PolicyReportRequest.ProtoReflect.Descriptor instead. -func (*PolicyReportRequest) Descriptor() ([]byte, []int) { - return file_report_proto_rawDescGZIP(), []int{0} -} - -func (x *PolicyReportRequest) GetRouteIds() []string { - if x != nil { - return x.RouteIds - } - return nil -} - -func (x *PolicyReportRequest) GetNamespaceId() string { - if x != nil { - return x.NamespaceId - } - return "" -} - -type PolicyReportResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Routes []*Route `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"` - Policies []*Policy `protobuf:"bytes,2,rep,name=policies,proto3" json:"policies,omitempty"` -} - -func (x *PolicyReportResponse) Reset() { - *x = PolicyReportResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_report_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PolicyReportResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PolicyReportResponse) ProtoMessage() {} - -func (x *PolicyReportResponse) ProtoReflect() protoreflect.Message { - mi := &file_report_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PolicyReportResponse.ProtoReflect.Descriptor instead. -func (*PolicyReportResponse) Descriptor() ([]byte, []int) { - return file_report_proto_rawDescGZIP(), []int{1} -} - -func (x *PolicyReportResponse) GetRoutes() []*Route { - if x != nil { - return x.Routes - } - return nil -} - -func (x *PolicyReportResponse) GetPolicies() []*Policy { - if x != nil { - return x.Policies - } - return nil -} - -var File_report_proto protoreflect.FileDescriptor - -var file_report_proto_rawDesc = []byte{ - 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x1a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x55, - 0x0a, 0x13, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, - 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, - 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x49, 0x64, 0x22, 0x81, 0x01, 0x0a, 0x14, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, - 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, - 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, - 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x32, 0x6b, 0x0a, 0x06, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x12, 0x61, 0x0a, 0x0c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x12, 0x27, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, - 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, - 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, - 0x64, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x70, - 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_report_proto_rawDescOnce sync.Once - file_report_proto_rawDescData = file_report_proto_rawDesc -) - -func file_report_proto_rawDescGZIP() []byte { - file_report_proto_rawDescOnce.Do(func() { - file_report_proto_rawDescData = protoimpl.X.CompressGZIP(file_report_proto_rawDescData) - }) - return file_report_proto_rawDescData -} - -var file_report_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_report_proto_goTypes = []any{ - (*PolicyReportRequest)(nil), // 0: pomerium.dashboard.PolicyReportRequest - (*PolicyReportResponse)(nil), // 1: pomerium.dashboard.PolicyReportResponse - (*Route)(nil), // 2: pomerium.dashboard.Route - (*Policy)(nil), // 3: pomerium.dashboard.Policy -} -var file_report_proto_depIdxs = []int32{ - 2, // 0: pomerium.dashboard.PolicyReportResponse.routes:type_name -> pomerium.dashboard.Route - 3, // 1: pomerium.dashboard.PolicyReportResponse.policies:type_name -> pomerium.dashboard.Policy - 0, // 2: pomerium.dashboard.Report.PolicyReport:input_type -> pomerium.dashboard.PolicyReportRequest - 1, // 3: pomerium.dashboard.Report.PolicyReport:output_type -> pomerium.dashboard.PolicyReportResponse - 3, // [3:4] is the sub-list for method output_type - 2, // [2:3] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name -} - -func init() { file_report_proto_init() } -func file_report_proto_init() { - if File_report_proto != nil { - return - } - file_policy_proto_init() - file_routes_proto_init() - if !protoimpl.UnsafeEnabled { - file_report_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*PolicyReportRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_report_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*PolicyReportResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_report_proto_rawDesc, - NumEnums: 0, - NumMessages: 2, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_report_proto_goTypes, - DependencyIndexes: file_report_proto_depIdxs, - MessageInfos: file_report_proto_msgTypes, - }.Build() - File_report_proto = out.File - file_report_proto_rawDesc = nil - file_report_proto_goTypes = nil - file_report_proto_depIdxs = nil -} diff --git a/pb/report_grpc.pb.go b/pb/report_grpc.pb.go deleted file mode 100644 index 96383b0..0000000 --- a/pb/report_grpc.pb.go +++ /dev/null @@ -1,121 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc v3.21.7 -// source: report.proto - -package pb - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.64.0 or later. -const _ = grpc.SupportPackageIsVersion9 - -const ( - Report_PolicyReport_FullMethodName = "/pomerium.dashboard.Report/PolicyReport" -) - -// ReportClient is the client API for Report service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type ReportClient interface { - // PolicyReport generates a policy report - PolicyReport(ctx context.Context, in *PolicyReportRequest, opts ...grpc.CallOption) (*PolicyReportResponse, error) -} - -type reportClient struct { - cc grpc.ClientConnInterface -} - -func NewReportClient(cc grpc.ClientConnInterface) ReportClient { - return &reportClient{cc} -} - -func (c *reportClient) PolicyReport(ctx context.Context, in *PolicyReportRequest, opts ...grpc.CallOption) (*PolicyReportResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(PolicyReportResponse) - err := c.cc.Invoke(ctx, Report_PolicyReport_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ReportServer is the server API for Report service. -// All implementations should embed UnimplementedReportServer -// for forward compatibility. -type ReportServer interface { - // PolicyReport generates a policy report - PolicyReport(context.Context, *PolicyReportRequest) (*PolicyReportResponse, error) -} - -// UnimplementedReportServer should be embedded to have -// forward compatible implementations. -// -// NOTE: this should be embedded by value instead of pointer to avoid a nil -// pointer dereference when methods are called. -type UnimplementedReportServer struct{} - -func (UnimplementedReportServer) PolicyReport(context.Context, *PolicyReportRequest) (*PolicyReportResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method PolicyReport not implemented") -} -func (UnimplementedReportServer) testEmbeddedByValue() {} - -// UnsafeReportServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to ReportServer will -// result in compilation errors. -type UnsafeReportServer interface { - mustEmbedUnimplementedReportServer() -} - -func RegisterReportServer(s grpc.ServiceRegistrar, srv ReportServer) { - // If the following call pancis, it indicates UnimplementedReportServer was - // embedded by pointer and is nil. This will cause panics if an - // unimplemented method is ever invoked, so we test this at initialization - // time to prevent it from happening at runtime later due to I/O. - if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { - t.testEmbeddedByValue() - } - s.RegisterService(&Report_ServiceDesc, srv) -} - -func _Report_PolicyReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PolicyReportRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ReportServer).PolicyReport(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: Report_PolicyReport_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ReportServer).PolicyReport(ctx, req.(*PolicyReportRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// Report_ServiceDesc is the grpc.ServiceDesc for Report service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var Report_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "pomerium.dashboard.Report", - HandlerType: (*ReportServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "PolicyReport", - Handler: _Report_PolicyReport_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "report.proto", -} diff --git a/pb/route_health_check.pb.go b/pb/route_health_check.pb.go new file mode 100644 index 0000000..0696648 --- /dev/null +++ b/pb/route_health_check.pb.go @@ -0,0 +1,983 @@ +// +// +//Apache License +//Version 2.0, January 2004 +//http://www.apache.org/licenses/ +// +//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +// +//1. Definitions. +// +//"License" shall mean the terms and conditions for use, reproduction, +//and distribution as defined by Sections 1 through 9 of this document. +// +//"Licensor" shall mean the copyright owner or entity authorized by +//the copyright owner that is granting the License. +// +//"Legal Entity" shall mean the union of the acting entity and all +//other entities that control, are controlled by, or are under common +//control with that entity. For the purposes of this definition, +//"control" means (i) the power, direct or indirect, to cause the +//direction or management of such entity, whether by contract or +//otherwise, or (ii) ownership of fifty percent (50%) or more of the +//outstanding shares, or (iii) beneficial ownership of such entity. +// +//"You" (or "Your") shall mean an individual or Legal Entity +//exercising permissions granted by this License. +// +//"Source" form shall mean the preferred form for making modifications, +//including but not limited to software source code, documentation +//source, and configuration files. +// +//"Object" form shall mean any form resulting from mechanical +//transformation or translation of a Source form, including but +//not limited to compiled object code, generated documentation, +//and conversions to other media types. +// +//"Work" shall mean the work of authorship, whether in Source or +//Object form, made available under the License, as indicated by a +//copyright notice that is included in or attached to the work +//(an example is provided in the Appendix below). +// +//"Derivative Works" shall mean any work, whether in Source or Object +//form, that is based on (or derived from) the Work and for which the +//editorial revisions, annotations, elaborations, or other modifications +//represent, as a whole, an original work of authorship. For the purposes +//of this License, Derivative Works shall not include works that remain +//separable from, or merely link (or bind by name) to the interfaces of, +//the Work and Derivative Works thereof. +// +//"Contribution" shall mean any work of authorship, including +//the original version of the Work and any modifications or additions +//to that Work or Derivative Works thereof, that is intentionally +//submitted to Licensor for inclusion in the Work by the copyright owner +//or by an individual or Legal Entity authorized to submit on behalf of +//the copyright owner. For the purposes of this definition, "submitted" +//means any form of electronic, verbal, or written communication sent +//to the Licensor or its representatives, including but not limited to +//communication on electronic mailing lists, source code control systems, +//and issue tracking systems that are managed by, or on behalf of, the +//Licensor for the purpose of discussing and improving the Work, but +//excluding communication that is conspicuously marked or otherwise +//designated in writing by the copyright owner as "Not a Contribution." +// +//"Contributor" shall mean Licensor and any individual or Legal Entity +//on behalf of whom a Contribution has been received by Licensor and +//subsequently incorporated within the Work. +// +//2. Grant of Copyright License. Subject to the terms and conditions of +//this License, each Contributor hereby grants to You a perpetual, +//worldwide, non-exclusive, no-charge, royalty-free, irrevocable +//copyright license to reproduce, prepare Derivative Works of, +//publicly display, publicly perform, sublicense, and distribute the +//Work and such Derivative Works in Source or Object form. +// +//3. Grant of Patent License. Subject to the terms and conditions of +//this License, each Contributor hereby grants to You a perpetual, +//worldwide, non-exclusive, no-charge, royalty-free, irrevocable +//(except as stated in this section) patent license to make, have made, +//use, offer to sell, sell, import, and otherwise transfer the Work, +//where such license applies only to those patent claims licensable +//by such Contributor that are necessarily infringed by their +//Contribution(s) alone or by combination of their Contribution(s) +//with the Work to which such Contribution(s) was submitted. If You +//institute patent litigation against any entity (including a +//cross-claim or counterclaim in a lawsuit) alleging that the Work +//or a Contribution incorporated within the Work constitutes direct +//or contributory patent infringement, then any patent licenses +//granted to You under this License for that Work shall terminate +//as of the date such litigation is filed. +// +//4. Redistribution. You may reproduce and distribute copies of the +//Work or Derivative Works thereof in any medium, with or without +//modifications, and in Source or Object form, provided that You +//meet the following conditions: +// +//(a) You must give any other recipients of the Work or +//Derivative Works a copy of this License; and +// +//(b) You must cause any modified files to carry prominent notices +//stating that You changed the files; and +// +//(c) You must retain, in the Source form of any Derivative Works +//that You distribute, all copyright, patent, trademark, and +//attribution notices from the Source form of the Work, +//excluding those notices that do not pertain to any part of +//the Derivative Works; and +// +//(d) If the Work includes a "NOTICE" text file as part of its +//distribution, then any Derivative Works that You distribute must +//include a readable copy of the attribution notices contained +//within such NOTICE file, excluding those notices that do not +//pertain to any part of the Derivative Works, in at least one +//of the following places: within a NOTICE text file distributed +//as part of the Derivative Works; within the Source form or +//documentation, if provided along with the Derivative Works; or, +//within a display generated by the Derivative Works, if and +//wherever such third-party notices normally appear. The contents +//of the NOTICE file are for informational purposes only and +//do not modify the License. You may add Your own attribution +//notices within Derivative Works that You distribute, alongside +//or as an addendum to the NOTICE text from the Work, provided +//that such additional attribution notices cannot be construed +//as modifying the License. +// +//You may add Your own copyright statement to Your modifications and +//may provide additional or different license terms and conditions +//for use, reproduction, or distribution of Your modifications, or +//for any such Derivative Works as a whole, provided Your use, +//reproduction, and distribution of the Work otherwise complies with +//the conditions stated in this License. +// +//5. Submission of Contributions. Unless You explicitly state otherwise, +//any Contribution intentionally submitted for inclusion in the Work +//by You to the Licensor shall be under the terms and conditions of +//this License, without any additional terms or conditions. +//Notwithstanding the above, nothing herein shall supersede or modify +//the terms of any separate license agreement you may have executed +//with Licensor regarding such Contributions. +// +//6. Trademarks. This License does not grant permission to use the trade +//names, trademarks, service marks, or product names of the Licensor, +//except as required for reasonable and customary use in describing the +//origin of the Work and reproducing the content of the NOTICE file. +// +//7. Disclaimer of Warranty. Unless required by applicable law or +//agreed to in writing, Licensor provides the Work (and each +//Contributor provides its Contributions) on an "AS IS" BASIS, +//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +//implied, including, without limitation, any warranties or conditions +//of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +//PARTICULAR PURPOSE. You are solely responsible for determining the +//appropriateness of using or redistributing the Work and assume any +//risks associated with Your exercise of permissions under this License. +// +//8. Limitation of Liability. In no event and under no legal theory, +//whether in tort (including negligence), contract, or otherwise, +//unless required by applicable law (such as deliberate and grossly +//negligent acts) or agreed to in writing, shall any Contributor be +//liable to You for damages, including any direct, indirect, special, +//incidental, or consequential damages of any character arising as a +//result of this License or out of the use or inability to use the +//Work (including but not limited to damages for loss of goodwill, +//work stoppage, computer failure or malfunction, or any and all +//other commercial damages or losses), even if such Contributor +//has been advised of the possibility of such damages. +// +//9. Accepting Warranty or Additional Liability. While redistributing +//the Work or Derivative Works thereof, You may choose to offer, +//and charge a fee for, acceptance of support, warranty, indemnity, +//or other liability obligations and/or rights consistent with this +//License. However, in accepting such obligations, You may act only +//on Your own behalf and on Your sole responsibility, not on behalf +//of any other Contributor, and only if You agree to indemnify, +//defend, and hold each Contributor harmless for any liability +//incurred by, or claims asserted against, such Contributor by reason +//of your accepting any such warranty or additional liability. +// +//END OF TERMS AND CONDITIONS +// +//APPENDIX: How to apply the Apache License to your work. +// +//To apply the Apache License to your work, attach the following +//boilerplate notice, with the fields enclosed by brackets "[]" +//replaced with your own identifying information. (Don't include +//the brackets!) The text should be enclosed in the appropriate +//comment syntax for the file format. We also recommend that a +//file or class name and description of purpose be included on the +//same "printed page" as the copyright notice for easier +//identification within third-party archives. +// +//Copyright [yyyy] [name of copyright owner] +// +//Licensed under the Apache License, Version 2.0 (the "License"); +//you may not use this file except in compliance with the License. +//You may obtain a copy of the License at +// +//http://www.apache.org/licenses/LICENSE-2.0 +// +//Unless required by applicable law or agreed to in writing, software +//distributed under the License is distributed on an "AS IS" BASIS, +//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +//See the License for the specific language governing permissions and +//limitations under the License. + +// adapted from : +// https://github.com/envoyproxy/envoy/blob/main/api/envoy/config/core/v3/health_check.proto + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.2 +// protoc v3.21.7 +// source: route_health_check.proto + +package pb + +import ( + _ "github.com/envoyproxy/protoc-gen-validate/validate" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// [#next-free-field: 27] +type HealthCheck struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The time to wait for a health check response. If the timeout is reached the + // health check attempt will be considered a failure. + Timeout *durationpb.Duration `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty"` + // The interval between health checks. + Interval *durationpb.Duration `protobuf:"bytes,2,opt,name=interval,proto3" json:"interval,omitempty"` + // An optional jitter amount in milliseconds. If specified, Envoy will start + // health checking after for a random time in ms between 0 and initial_jitter. + // This only applies to the first health check. + InitialJitter *durationpb.Duration `protobuf:"bytes,20,opt,name=initial_jitter,json=initialJitter,proto3" json:"initial_jitter,omitempty"` + // An optional jitter amount in milliseconds. If specified, during every + // interval Envoy will add interval_jitter to the wait time. + IntervalJitter *durationpb.Duration `protobuf:"bytes,3,opt,name=interval_jitter,json=intervalJitter,proto3" json:"interval_jitter,omitempty"` + // An optional jitter amount as a percentage of interval_ms. If specified, + // during every interval Envoy will add “interval_ms“ * + // “interval_jitter_percent“ / 100 to the wait time. + // + // If interval_jitter_ms and interval_jitter_percent are both set, both of + // them will be used to increase the wait time. + IntervalJitterPercent uint32 `protobuf:"varint,18,opt,name=interval_jitter_percent,json=intervalJitterPercent,proto3" json:"interval_jitter_percent,omitempty"` + // The number of unhealthy health checks required before a host is marked + // unhealthy. Note that for “http“ health checking if a host responds with a + // code not in :ref:`expected_statuses + // ` + // or :ref:`retriable_statuses + // `, + // this threshold is ignored and the host is considered immediately unhealthy. + UnhealthyThreshold uint32 `protobuf:"varint,4,opt,name=unhealthy_threshold,json=unhealthyThreshold,proto3" json:"unhealthy_threshold,omitempty"` + // The number of healthy health checks required before a host is marked + // healthy. Note that during startup, only a single successful health check is + // required to mark a host healthy. + HealthyThreshold uint32 `protobuf:"varint,5,opt,name=healthy_threshold,json=healthyThreshold,proto3" json:"healthy_threshold,omitempty"` + // Types that are assignable to HealthChecker: + // + // *HealthCheck_HttpHealthCheck_ + // *HealthCheck_TcpHealthCheck_ + // *HealthCheck_GrpcHealthCheck_ + HealthChecker isHealthCheck_HealthChecker `protobuf_oneof:"health_checker"` +} + +func (x *HealthCheck) Reset() { + *x = HealthCheck{} + if protoimpl.UnsafeEnabled { + mi := &file_route_health_check_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HealthCheck) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HealthCheck) ProtoMessage() {} + +func (x *HealthCheck) ProtoReflect() protoreflect.Message { + mi := &file_route_health_check_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HealthCheck.ProtoReflect.Descriptor instead. +func (*HealthCheck) Descriptor() ([]byte, []int) { + return file_route_health_check_proto_rawDescGZIP(), []int{0} +} + +func (x *HealthCheck) GetTimeout() *durationpb.Duration { + if x != nil { + return x.Timeout + } + return nil +} + +func (x *HealthCheck) GetInterval() *durationpb.Duration { + if x != nil { + return x.Interval + } + return nil +} + +func (x *HealthCheck) GetInitialJitter() *durationpb.Duration { + if x != nil { + return x.InitialJitter + } + return nil +} + +func (x *HealthCheck) GetIntervalJitter() *durationpb.Duration { + if x != nil { + return x.IntervalJitter + } + return nil +} + +func (x *HealthCheck) GetIntervalJitterPercent() uint32 { + if x != nil { + return x.IntervalJitterPercent + } + return 0 +} + +func (x *HealthCheck) GetUnhealthyThreshold() uint32 { + if x != nil { + return x.UnhealthyThreshold + } + return 0 +} + +func (x *HealthCheck) GetHealthyThreshold() uint32 { + if x != nil { + return x.HealthyThreshold + } + return 0 +} + +func (m *HealthCheck) GetHealthChecker() isHealthCheck_HealthChecker { + if m != nil { + return m.HealthChecker + } + return nil +} + +func (x *HealthCheck) GetHttpHealthCheck() *HealthCheck_HttpHealthCheck { + if x, ok := x.GetHealthChecker().(*HealthCheck_HttpHealthCheck_); ok { + return x.HttpHealthCheck + } + return nil +} + +func (x *HealthCheck) GetTcpHealthCheck() *HealthCheck_TcpHealthCheck { + if x, ok := x.GetHealthChecker().(*HealthCheck_TcpHealthCheck_); ok { + return x.TcpHealthCheck + } + return nil +} + +func (x *HealthCheck) GetGrpcHealthCheck() *HealthCheck_GrpcHealthCheck { + if x, ok := x.GetHealthChecker().(*HealthCheck_GrpcHealthCheck_); ok { + return x.GrpcHealthCheck + } + return nil +} + +type isHealthCheck_HealthChecker interface { + isHealthCheck_HealthChecker() +} + +type HealthCheck_HttpHealthCheck_ struct { + // HTTP health check. + HttpHealthCheck *HealthCheck_HttpHealthCheck `protobuf:"bytes,8,opt,name=http_health_check,json=httpHealthCheck,proto3,oneof"` +} + +type HealthCheck_TcpHealthCheck_ struct { + // TCP health check. + TcpHealthCheck *HealthCheck_TcpHealthCheck `protobuf:"bytes,9,opt,name=tcp_health_check,json=tcpHealthCheck,proto3,oneof"` +} + +type HealthCheck_GrpcHealthCheck_ struct { + // gRPC health check. + GrpcHealthCheck *HealthCheck_GrpcHealthCheck `protobuf:"bytes,11,opt,name=grpc_health_check,json=grpcHealthCheck,proto3,oneof"` +} + +func (*HealthCheck_HttpHealthCheck_) isHealthCheck_HealthChecker() {} + +func (*HealthCheck_TcpHealthCheck_) isHealthCheck_HealthChecker() {} + +func (*HealthCheck_GrpcHealthCheck_) isHealthCheck_HealthChecker() {} + +// Describes the encoding of the payload bytes in the payload. +type HealthCheck_Payload struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Payload: + // + // *HealthCheck_Payload_Text + // *HealthCheck_Payload_Binary + Payload isHealthCheck_Payload_Payload `protobuf_oneof:"payload"` +} + +func (x *HealthCheck_Payload) Reset() { + *x = HealthCheck_Payload{} + if protoimpl.UnsafeEnabled { + mi := &file_route_health_check_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HealthCheck_Payload) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HealthCheck_Payload) ProtoMessage() {} + +func (x *HealthCheck_Payload) ProtoReflect() protoreflect.Message { + mi := &file_route_health_check_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HealthCheck_Payload.ProtoReflect.Descriptor instead. +func (*HealthCheck_Payload) Descriptor() ([]byte, []int) { + return file_route_health_check_proto_rawDescGZIP(), []int{0, 0} +} + +func (m *HealthCheck_Payload) GetPayload() isHealthCheck_Payload_Payload { + if m != nil { + return m.Payload + } + return nil +} + +func (x *HealthCheck_Payload) GetText() string { + if x, ok := x.GetPayload().(*HealthCheck_Payload_Text); ok { + return x.Text + } + return "" +} + +func (x *HealthCheck_Payload) GetBinary() []byte { + if x, ok := x.GetPayload().(*HealthCheck_Payload_Binary); ok { + return x.Binary + } + return nil +} + +type isHealthCheck_Payload_Payload interface { + isHealthCheck_Payload_Payload() +} + +type HealthCheck_Payload_Text struct { + // Hex encoded payload. E.g., "000000FF". + Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"` +} + +type HealthCheck_Payload_Binary struct { + // Binary payload. + Binary []byte `protobuf:"bytes,2,opt,name=binary,proto3,oneof"` +} + +func (*HealthCheck_Payload_Text) isHealthCheck_Payload_Payload() {} + +func (*HealthCheck_Payload_Binary) isHealthCheck_Payload_Payload() {} + +// [#next-free-field: 15] +type HealthCheck_HttpHealthCheck struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The value of the host header in the HTTP health check request. If + // left empty (default value), the name of the cluster this health check is + // associated with will be used. The host header can be customized for a + // specific endpoint by setting the :ref:`hostname + // ` + // field. + Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` + // Specifies the HTTP path that will be requested during health checking. + // For example + // “/healthcheck“. + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` + // Specifies a list of HTTP response statuses considered healthy. If + // provided, replaces default 200-only policy - 200 must be included + // explicitly as needed. Ranges follow half-open semantics of + // :ref:`Int64Range `. The start and + // end of each range are required. Only statuses in the range [100, 600) are + // allowed. + ExpectedStatuses []*Int64Range `protobuf:"bytes,9,rep,name=expected_statuses,json=expectedStatuses,proto3" json:"expected_statuses,omitempty"` + // Specifies a list of HTTP response statuses considered retriable. If + // provided, responses in this range will count towards the configured + // :ref:`unhealthy_threshold + // `, but + // will not result in the host being considered immediately unhealthy. + // Ranges follow half-open semantics of :ref:`Int64Range + // `. The start and end of each range + // are required. Only statuses in the range [100, 600) are allowed. The + // :ref:`expected_statuses + // ` + // field takes precedence for any range overlaps with this field i.e. if + // status code 200 is both retriable and expected, a 200 response will be + // considered a successful health check. By default all responses not in + // :ref:`expected_statuses + // ` + // will result in the host being considered immediately unhealthy i.e. if + // status code 200 is expected and there are no configured retriable + // statuses, any non-200 response will result in the host being marked + // unhealthy. + RetriableStatuses []*Int64Range `protobuf:"bytes,12,rep,name=retriable_statuses,json=retriableStatuses,proto3" json:"retriable_statuses,omitempty"` + // Use specified application protocol for health checks. + CodecClientType CodecClientType `protobuf:"varint,10,opt,name=codec_client_type,json=codecClientType,proto3,enum=pomerium.dashboard.CodecClientType" json:"codec_client_type,omitempty"` +} + +func (x *HealthCheck_HttpHealthCheck) Reset() { + *x = HealthCheck_HttpHealthCheck{} + if protoimpl.UnsafeEnabled { + mi := &file_route_health_check_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HealthCheck_HttpHealthCheck) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HealthCheck_HttpHealthCheck) ProtoMessage() {} + +func (x *HealthCheck_HttpHealthCheck) ProtoReflect() protoreflect.Message { + mi := &file_route_health_check_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HealthCheck_HttpHealthCheck.ProtoReflect.Descriptor instead. +func (*HealthCheck_HttpHealthCheck) Descriptor() ([]byte, []int) { + return file_route_health_check_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *HealthCheck_HttpHealthCheck) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (x *HealthCheck_HttpHealthCheck) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *HealthCheck_HttpHealthCheck) GetExpectedStatuses() []*Int64Range { + if x != nil { + return x.ExpectedStatuses + } + return nil +} + +func (x *HealthCheck_HttpHealthCheck) GetRetriableStatuses() []*Int64Range { + if x != nil { + return x.RetriableStatuses + } + return nil +} + +func (x *HealthCheck_HttpHealthCheck) GetCodecClientType() CodecClientType { + if x != nil { + return x.CodecClientType + } + return CodecClientType_HTTP1 +} + +type HealthCheck_TcpHealthCheck struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Empty payloads imply a connect-only health check. + Send *HealthCheck_Payload `protobuf:"bytes,1,opt,name=send,proto3" json:"send,omitempty"` + // When checking the response, “fuzzy” matching is performed such that each + // payload block must be found, and in the order specified, but not + // necessarily contiguous. + Receive []*HealthCheck_Payload `protobuf:"bytes,2,rep,name=receive,proto3" json:"receive,omitempty"` +} + +func (x *HealthCheck_TcpHealthCheck) Reset() { + *x = HealthCheck_TcpHealthCheck{} + if protoimpl.UnsafeEnabled { + mi := &file_route_health_check_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HealthCheck_TcpHealthCheck) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HealthCheck_TcpHealthCheck) ProtoMessage() {} + +func (x *HealthCheck_TcpHealthCheck) ProtoReflect() protoreflect.Message { + mi := &file_route_health_check_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HealthCheck_TcpHealthCheck.ProtoReflect.Descriptor instead. +func (*HealthCheck_TcpHealthCheck) Descriptor() ([]byte, []int) { + return file_route_health_check_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *HealthCheck_TcpHealthCheck) GetSend() *HealthCheck_Payload { + if x != nil { + return x.Send + } + return nil +} + +func (x *HealthCheck_TcpHealthCheck) GetReceive() []*HealthCheck_Payload { + if x != nil { + return x.Receive + } + return nil +} + +// `grpc.health.v1.Health +// `_-based +// healthcheck. See `gRPC doc +// `_ for +// details. +type HealthCheck_GrpcHealthCheck struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An optional service name parameter which will be sent to gRPC service in + // `grpc.health.v1.HealthCheckRequest + // `_. + // message. See `gRPC health-checking overview + // `_ for + // more information. + ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` + // The value of the :authority header in the gRPC health check request. If + // left empty (default value), the name of the cluster this health check is + // associated with will be used. The authority header can be customized for + // a specific endpoint by setting the :ref:`hostname + // ` + // field. + Authority string `protobuf:"bytes,2,opt,name=authority,proto3" json:"authority,omitempty"` +} + +func (x *HealthCheck_GrpcHealthCheck) Reset() { + *x = HealthCheck_GrpcHealthCheck{} + if protoimpl.UnsafeEnabled { + mi := &file_route_health_check_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HealthCheck_GrpcHealthCheck) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HealthCheck_GrpcHealthCheck) ProtoMessage() {} + +func (x *HealthCheck_GrpcHealthCheck) ProtoReflect() protoreflect.Message { + mi := &file_route_health_check_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HealthCheck_GrpcHealthCheck.ProtoReflect.Descriptor instead. +func (*HealthCheck_GrpcHealthCheck) Descriptor() ([]byte, []int) { + return file_route_health_check_proto_rawDescGZIP(), []int{0, 3} +} + +func (x *HealthCheck_GrpcHealthCheck) GetServiceName() string { + if x != nil { + return x.ServiceName + } + return "" +} + +func (x *HealthCheck_GrpcHealthCheck) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +var File_route_health_check_proto protoreflect.FileDescriptor + +var file_route_health_check_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x70, 0x6f, 0x6d, 0x65, + 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x1a, 0x0b, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x81, 0x0b, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x12, 0x3f, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x0a, 0xfa, 0x42, 0x07, 0xaa, 0x01, 0x04, 0x08, 0x01, 0x2a, 0x00, 0x52, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0xaa, 0x01, 0x04, 0x08, 0x01, 0x2a, 0x00, 0x52, 0x08, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x0e, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x6c, 0x5f, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x4a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x36, + 0x0a, 0x17, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6a, 0x69, 0x74, 0x74, 0x65, + 0x72, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x50, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x13, 0x75, 0x6e, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x01, 0x52, 0x12, 0x75, 0x6e, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x12, 0x34, 0x0a, 0x11, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x2a, 0x02, 0x28, 0x01, 0x52, 0x10, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x5d, 0x0a, 0x11, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, + 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x48, 0x00, 0x52, 0x0f, 0x68, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x5a, 0x0a, 0x10, 0x74, 0x63, 0x70, 0x5f, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x2e, 0x54, 0x63, 0x70, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, + 0x00, 0x52, 0x0e, 0x74, 0x63, 0x70, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x12, 0x5d, 0x0a, 0x11, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, + 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x47, 0x72, + 0x70, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x00, 0x52, + 0x0f, 0x67, 0x72, 0x70, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x1a, 0x52, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1d, 0x0a, 0x04, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x62, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x06, 0x62, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x42, 0x0e, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, + 0x03, 0xf8, 0x42, 0x01, 0x1a, 0xc6, 0x02, 0x0a, 0x0f, 0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xc0, 0x01, 0x02, + 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xc0, 0x01, 0x02, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, + 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x10, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x11, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x65, 0x73, 0x12, 0x59, 0x0a, 0x11, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, + 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, + 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0f, 0x63, 0x6f, + 0x64, 0x65, 0x63, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x90, 0x01, + 0x0a, 0x0e, 0x54, 0x63, 0x70, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x12, 0x3b, 0x0a, 0x04, 0x73, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x04, 0x73, 0x65, 0x6e, 0x64, 0x12, 0x41, 0x0a, + 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x1a, 0x5f, 0x0a, 0x0f, 0x47, 0x72, 0x70, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, + 0xc8, 0x01, 0x00, 0xc0, 0x01, 0x02, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x42, 0x15, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2f, + 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, + 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_route_health_check_proto_rawDescOnce sync.Once + file_route_health_check_proto_rawDescData = file_route_health_check_proto_rawDesc +) + +func file_route_health_check_proto_rawDescGZIP() []byte { + file_route_health_check_proto_rawDescOnce.Do(func() { + file_route_health_check_proto_rawDescData = protoimpl.X.CompressGZIP(file_route_health_check_proto_rawDescData) + }) + return file_route_health_check_proto_rawDescData +} + +var file_route_health_check_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_route_health_check_proto_goTypes = []any{ + (*HealthCheck)(nil), // 0: pomerium.dashboard.HealthCheck + (*HealthCheck_Payload)(nil), // 1: pomerium.dashboard.HealthCheck.Payload + (*HealthCheck_HttpHealthCheck)(nil), // 2: pomerium.dashboard.HealthCheck.HttpHealthCheck + (*HealthCheck_TcpHealthCheck)(nil), // 3: pomerium.dashboard.HealthCheck.TcpHealthCheck + (*HealthCheck_GrpcHealthCheck)(nil), // 4: pomerium.dashboard.HealthCheck.GrpcHealthCheck + (*durationpb.Duration)(nil), // 5: google.protobuf.Duration + (*Int64Range)(nil), // 6: pomerium.dashboard.Int64Range + (CodecClientType)(0), // 7: pomerium.dashboard.CodecClientType +} +var file_route_health_check_proto_depIdxs = []int32{ + 5, // 0: pomerium.dashboard.HealthCheck.timeout:type_name -> google.protobuf.Duration + 5, // 1: pomerium.dashboard.HealthCheck.interval:type_name -> google.protobuf.Duration + 5, // 2: pomerium.dashboard.HealthCheck.initial_jitter:type_name -> google.protobuf.Duration + 5, // 3: pomerium.dashboard.HealthCheck.interval_jitter:type_name -> google.protobuf.Duration + 2, // 4: pomerium.dashboard.HealthCheck.http_health_check:type_name -> pomerium.dashboard.HealthCheck.HttpHealthCheck + 3, // 5: pomerium.dashboard.HealthCheck.tcp_health_check:type_name -> pomerium.dashboard.HealthCheck.TcpHealthCheck + 4, // 6: pomerium.dashboard.HealthCheck.grpc_health_check:type_name -> pomerium.dashboard.HealthCheck.GrpcHealthCheck + 6, // 7: pomerium.dashboard.HealthCheck.HttpHealthCheck.expected_statuses:type_name -> pomerium.dashboard.Int64Range + 6, // 8: pomerium.dashboard.HealthCheck.HttpHealthCheck.retriable_statuses:type_name -> pomerium.dashboard.Int64Range + 7, // 9: pomerium.dashboard.HealthCheck.HttpHealthCheck.codec_client_type:type_name -> pomerium.dashboard.CodecClientType + 1, // 10: pomerium.dashboard.HealthCheck.TcpHealthCheck.send:type_name -> pomerium.dashboard.HealthCheck.Payload + 1, // 11: pomerium.dashboard.HealthCheck.TcpHealthCheck.receive:type_name -> pomerium.dashboard.HealthCheck.Payload + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name +} + +func init() { file_route_health_check_proto_init() } +func file_route_health_check_proto_init() { + if File_route_health_check_proto != nil { + return + } + file_types_proto_init() + if !protoimpl.UnsafeEnabled { + file_route_health_check_proto_msgTypes[0].Exporter = func(v any, i int) any { + switch v := v.(*HealthCheck); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_route_health_check_proto_msgTypes[1].Exporter = func(v any, i int) any { + switch v := v.(*HealthCheck_Payload); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_route_health_check_proto_msgTypes[2].Exporter = func(v any, i int) any { + switch v := v.(*HealthCheck_HttpHealthCheck); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_route_health_check_proto_msgTypes[3].Exporter = func(v any, i int) any { + switch v := v.(*HealthCheck_TcpHealthCheck); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_route_health_check_proto_msgTypes[4].Exporter = func(v any, i int) any { + switch v := v.(*HealthCheck_GrpcHealthCheck); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_route_health_check_proto_msgTypes[0].OneofWrappers = []any{ + (*HealthCheck_HttpHealthCheck_)(nil), + (*HealthCheck_TcpHealthCheck_)(nil), + (*HealthCheck_GrpcHealthCheck_)(nil), + } + file_route_health_check_proto_msgTypes[1].OneofWrappers = []any{ + (*HealthCheck_Payload_Text)(nil), + (*HealthCheck_Payload_Binary)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_route_health_check_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_route_health_check_proto_goTypes, + DependencyIndexes: file_route_health_check_proto_depIdxs, + MessageInfos: file_route_health_check_proto_msgTypes, + }.Build() + File_route_health_check_proto = out.File + file_route_health_check_proto_rawDesc = nil + file_route_health_check_proto_goTypes = nil + file_route_health_check_proto_depIdxs = nil +} diff --git a/pb/route_health_check.pb.validate.go b/pb/route_health_check.pb.validate.go new file mode 100644 index 0000000..5c5c8e6 --- /dev/null +++ b/pb/route_health_check.pb.validate.go @@ -0,0 +1,1098 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: route_health_check.proto + +package pb + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "sort" + "strings" + "time" + "unicode/utf8" + + "google.golang.org/protobuf/types/known/anypb" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = anypb.Any{} + _ = sort.Sort +) + +// Validate checks the field values on HealthCheck with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *HealthCheck) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on HealthCheck with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in HealthCheckMultiError, or +// nil if none found. +func (m *HealthCheck) ValidateAll() error { + return m.validate(true) +} + +func (m *HealthCheck) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetTimeout() == nil { + err := HealthCheckValidationError{ + field: "Timeout", + reason: "value is required", + } + if !all { + return err + } + errors = append(errors, err) + } + + if d := m.GetTimeout(); d != nil { + dur, err := d.AsDuration(), d.CheckValid() + if err != nil { + err = HealthCheckValidationError{ + field: "Timeout", + reason: "value is not a valid duration", + cause: err, + } + if !all { + return err + } + errors = append(errors, err) + } else { + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + err := HealthCheckValidationError{ + field: "Timeout", + reason: "value must be greater than 0s", + } + if !all { + return err + } + errors = append(errors, err) + } + + } + } + + if m.GetInterval() == nil { + err := HealthCheckValidationError{ + field: "Interval", + reason: "value is required", + } + if !all { + return err + } + errors = append(errors, err) + } + + if d := m.GetInterval(); d != nil { + dur, err := d.AsDuration(), d.CheckValid() + if err != nil { + err = HealthCheckValidationError{ + field: "Interval", + reason: "value is not a valid duration", + cause: err, + } + if !all { + return err + } + errors = append(errors, err) + } else { + + gt := time.Duration(0*time.Second + 0*time.Nanosecond) + + if dur <= gt { + err := HealthCheckValidationError{ + field: "Interval", + reason: "value must be greater than 0s", + } + if !all { + return err + } + errors = append(errors, err) + } + + } + } + + if all { + switch v := interface{}(m.GetInitialJitter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, HealthCheckValidationError{ + field: "InitialJitter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, HealthCheckValidationError{ + field: "InitialJitter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetInitialJitter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "InitialJitter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetIntervalJitter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, HealthCheckValidationError{ + field: "IntervalJitter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, HealthCheckValidationError{ + field: "IntervalJitter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetIntervalJitter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "IntervalJitter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for IntervalJitterPercent + + if m.GetUnhealthyThreshold() < 1 { + err := HealthCheckValidationError{ + field: "UnhealthyThreshold", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + if m.GetHealthyThreshold() < 1 { + err := HealthCheckValidationError{ + field: "HealthyThreshold", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + oneofHealthCheckerPresent := false + switch v := m.HealthChecker.(type) { + case *HealthCheck_HttpHealthCheck_: + if v == nil { + err := HealthCheckValidationError{ + field: "HealthChecker", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + oneofHealthCheckerPresent = true + + if all { + switch v := interface{}(m.GetHttpHealthCheck()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, HealthCheckValidationError{ + field: "HttpHealthCheck", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, HealthCheckValidationError{ + field: "HttpHealthCheck", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetHttpHealthCheck()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "HttpHealthCheck", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *HealthCheck_TcpHealthCheck_: + if v == nil { + err := HealthCheckValidationError{ + field: "HealthChecker", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + oneofHealthCheckerPresent = true + + if all { + switch v := interface{}(m.GetTcpHealthCheck()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, HealthCheckValidationError{ + field: "TcpHealthCheck", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, HealthCheckValidationError{ + field: "TcpHealthCheck", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetTcpHealthCheck()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "TcpHealthCheck", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *HealthCheck_GrpcHealthCheck_: + if v == nil { + err := HealthCheckValidationError{ + field: "HealthChecker", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + oneofHealthCheckerPresent = true + + if all { + switch v := interface{}(m.GetGrpcHealthCheck()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, HealthCheckValidationError{ + field: "GrpcHealthCheck", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, HealthCheckValidationError{ + field: "GrpcHealthCheck", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetGrpcHealthCheck()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheckValidationError{ + field: "GrpcHealthCheck", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + _ = v // ensures v is used + } + if !oneofHealthCheckerPresent { + err := HealthCheckValidationError{ + field: "HealthChecker", + reason: "value is required", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return HealthCheckMultiError(errors) + } + + return nil +} + +// HealthCheckMultiError is an error wrapping multiple validation errors +// returned by HealthCheck.ValidateAll() if the designated constraints aren't met. +type HealthCheckMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m HealthCheckMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m HealthCheckMultiError) AllErrors() []error { return m } + +// HealthCheckValidationError is the validation error returned by +// HealthCheck.Validate if the designated constraints aren't met. +type HealthCheckValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheckValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheckValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheckValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheckValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheckValidationError) ErrorName() string { return "HealthCheckValidationError" } + +// Error satisfies the builtin error interface +func (e HealthCheckValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheckValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheckValidationError{} + +// Validate checks the field values on HealthCheck_Payload with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *HealthCheck_Payload) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on HealthCheck_Payload with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// HealthCheck_PayloadMultiError, or nil if none found. +func (m *HealthCheck_Payload) ValidateAll() error { + return m.validate(true) +} + +func (m *HealthCheck_Payload) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + oneofPayloadPresent := false + switch v := m.Payload.(type) { + case *HealthCheck_Payload_Text: + if v == nil { + err := HealthCheck_PayloadValidationError{ + field: "Payload", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + oneofPayloadPresent = true + + if utf8.RuneCountInString(m.GetText()) < 1 { + err := HealthCheck_PayloadValidationError{ + field: "Text", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + case *HealthCheck_Payload_Binary: + if v == nil { + err := HealthCheck_PayloadValidationError{ + field: "Payload", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + oneofPayloadPresent = true + // no validation rules for Binary + default: + _ = v // ensures v is used + } + if !oneofPayloadPresent { + err := HealthCheck_PayloadValidationError{ + field: "Payload", + reason: "value is required", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return HealthCheck_PayloadMultiError(errors) + } + + return nil +} + +// HealthCheck_PayloadMultiError is an error wrapping multiple validation +// errors returned by HealthCheck_Payload.ValidateAll() if the designated +// constraints aren't met. +type HealthCheck_PayloadMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m HealthCheck_PayloadMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m HealthCheck_PayloadMultiError) AllErrors() []error { return m } + +// HealthCheck_PayloadValidationError is the validation error returned by +// HealthCheck_Payload.Validate if the designated constraints aren't met. +type HealthCheck_PayloadValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheck_PayloadValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheck_PayloadValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheck_PayloadValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheck_PayloadValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheck_PayloadValidationError) ErrorName() string { + return "HealthCheck_PayloadValidationError" +} + +// Error satisfies the builtin error interface +func (e HealthCheck_PayloadValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck_Payload.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheck_PayloadValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheck_PayloadValidationError{} + +// Validate checks the field values on HealthCheck_HttpHealthCheck with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *HealthCheck_HttpHealthCheck) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on HealthCheck_HttpHealthCheck with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// HealthCheck_HttpHealthCheckMultiError, or nil if none found. +func (m *HealthCheck_HttpHealthCheck) ValidateAll() error { + return m.validate(true) +} + +func (m *HealthCheck_HttpHealthCheck) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if !_HealthCheck_HttpHealthCheck_Host_Pattern.MatchString(m.GetHost()) { + err := HealthCheck_HttpHealthCheckValidationError{ + field: "Host", + reason: "value does not match regex pattern \"^[^\\x00-\\b\\n-\\x1f\\x7f]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetPath()) < 1 { + err := HealthCheck_HttpHealthCheckValidationError{ + field: "Path", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if !_HealthCheck_HttpHealthCheck_Path_Pattern.MatchString(m.GetPath()) { + err := HealthCheck_HttpHealthCheckValidationError{ + field: "Path", + reason: "value does not match regex pattern \"^[^\\x00-\\b\\n-\\x1f\\x7f]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + for idx, item := range m.GetExpectedStatuses() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, HealthCheck_HttpHealthCheckValidationError{ + field: fmt.Sprintf("ExpectedStatuses[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, HealthCheck_HttpHealthCheckValidationError{ + field: fmt.Sprintf("ExpectedStatuses[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_HttpHealthCheckValidationError{ + field: fmt.Sprintf("ExpectedStatuses[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetRetriableStatuses() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, HealthCheck_HttpHealthCheckValidationError{ + field: fmt.Sprintf("RetriableStatuses[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, HealthCheck_HttpHealthCheckValidationError{ + field: fmt.Sprintf("RetriableStatuses[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_HttpHealthCheckValidationError{ + field: fmt.Sprintf("RetriableStatuses[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if _, ok := CodecClientType_name[int32(m.GetCodecClientType())]; !ok { + err := HealthCheck_HttpHealthCheckValidationError{ + field: "CodecClientType", + reason: "value must be one of the defined enum values", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return HealthCheck_HttpHealthCheckMultiError(errors) + } + + return nil +} + +// HealthCheck_HttpHealthCheckMultiError is an error wrapping multiple +// validation errors returned by HealthCheck_HttpHealthCheck.ValidateAll() if +// the designated constraints aren't met. +type HealthCheck_HttpHealthCheckMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m HealthCheck_HttpHealthCheckMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m HealthCheck_HttpHealthCheckMultiError) AllErrors() []error { return m } + +// HealthCheck_HttpHealthCheckValidationError is the validation error returned +// by HealthCheck_HttpHealthCheck.Validate if the designated constraints +// aren't met. +type HealthCheck_HttpHealthCheckValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheck_HttpHealthCheckValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheck_HttpHealthCheckValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheck_HttpHealthCheckValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheck_HttpHealthCheckValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheck_HttpHealthCheckValidationError) ErrorName() string { + return "HealthCheck_HttpHealthCheckValidationError" +} + +// Error satisfies the builtin error interface +func (e HealthCheck_HttpHealthCheckValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck_HttpHealthCheck.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheck_HttpHealthCheckValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheck_HttpHealthCheckValidationError{} + +var _HealthCheck_HttpHealthCheck_Host_Pattern = regexp.MustCompile("^[^\x00-\b\n-\x1f\x7f]*$") + +var _HealthCheck_HttpHealthCheck_Path_Pattern = regexp.MustCompile("^[^\x00-\b\n-\x1f\x7f]*$") + +// Validate checks the field values on HealthCheck_TcpHealthCheck with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *HealthCheck_TcpHealthCheck) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on HealthCheck_TcpHealthCheck with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// HealthCheck_TcpHealthCheckMultiError, or nil if none found. +func (m *HealthCheck_TcpHealthCheck) ValidateAll() error { + return m.validate(true) +} + +func (m *HealthCheck_TcpHealthCheck) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetSend()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, HealthCheck_TcpHealthCheckValidationError{ + field: "Send", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, HealthCheck_TcpHealthCheckValidationError{ + field: "Send", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetSend()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_TcpHealthCheckValidationError{ + field: "Send", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetReceive() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, HealthCheck_TcpHealthCheckValidationError{ + field: fmt.Sprintf("Receive[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, HealthCheck_TcpHealthCheckValidationError{ + field: fmt.Sprintf("Receive[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HealthCheck_TcpHealthCheckValidationError{ + field: fmt.Sprintf("Receive[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return HealthCheck_TcpHealthCheckMultiError(errors) + } + + return nil +} + +// HealthCheck_TcpHealthCheckMultiError is an error wrapping multiple +// validation errors returned by HealthCheck_TcpHealthCheck.ValidateAll() if +// the designated constraints aren't met. +type HealthCheck_TcpHealthCheckMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m HealthCheck_TcpHealthCheckMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m HealthCheck_TcpHealthCheckMultiError) AllErrors() []error { return m } + +// HealthCheck_TcpHealthCheckValidationError is the validation error returned +// by HealthCheck_TcpHealthCheck.Validate if the designated constraints aren't met. +type HealthCheck_TcpHealthCheckValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheck_TcpHealthCheckValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheck_TcpHealthCheckValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheck_TcpHealthCheckValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheck_TcpHealthCheckValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheck_TcpHealthCheckValidationError) ErrorName() string { + return "HealthCheck_TcpHealthCheckValidationError" +} + +// Error satisfies the builtin error interface +func (e HealthCheck_TcpHealthCheckValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck_TcpHealthCheck.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheck_TcpHealthCheckValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheck_TcpHealthCheckValidationError{} + +// Validate checks the field values on HealthCheck_GrpcHealthCheck with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *HealthCheck_GrpcHealthCheck) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on HealthCheck_GrpcHealthCheck with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// HealthCheck_GrpcHealthCheckMultiError, or nil if none found. +func (m *HealthCheck_GrpcHealthCheck) ValidateAll() error { + return m.validate(true) +} + +func (m *HealthCheck_GrpcHealthCheck) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ServiceName + + if !_HealthCheck_GrpcHealthCheck_Authority_Pattern.MatchString(m.GetAuthority()) { + err := HealthCheck_GrpcHealthCheckValidationError{ + field: "Authority", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return HealthCheck_GrpcHealthCheckMultiError(errors) + } + + return nil +} + +// HealthCheck_GrpcHealthCheckMultiError is an error wrapping multiple +// validation errors returned by HealthCheck_GrpcHealthCheck.ValidateAll() if +// the designated constraints aren't met. +type HealthCheck_GrpcHealthCheckMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m HealthCheck_GrpcHealthCheckMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m HealthCheck_GrpcHealthCheckMultiError) AllErrors() []error { return m } + +// HealthCheck_GrpcHealthCheckValidationError is the validation error returned +// by HealthCheck_GrpcHealthCheck.Validate if the designated constraints +// aren't met. +type HealthCheck_GrpcHealthCheckValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HealthCheck_GrpcHealthCheckValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HealthCheck_GrpcHealthCheckValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HealthCheck_GrpcHealthCheckValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HealthCheck_GrpcHealthCheckValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HealthCheck_GrpcHealthCheckValidationError) ErrorName() string { + return "HealthCheck_GrpcHealthCheckValidationError" +} + +// Error satisfies the builtin error interface +func (e HealthCheck_GrpcHealthCheckValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHealthCheck_GrpcHealthCheck.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HealthCheck_GrpcHealthCheckValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HealthCheck_GrpcHealthCheckValidationError{} + +var _HealthCheck_GrpcHealthCheck_Authority_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") diff --git a/pb/route_redirect_action.pb.go b/pb/route_redirect_action.pb.go index c515797..60c4b69 100644 --- a/pb/route_redirect_action.pb.go +++ b/pb/route_redirect_action.pb.go @@ -611,7 +611,7 @@ var file_route_redirect_action_proto_rawDesc = []byte{ 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb0, 0x06, 0x0a, 0x0e, 0x52, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaf, 0x06, 0x0a, 0x0e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x73, 0x52, 0x65, @@ -644,29 +644,29 @@ var file_route_redirect_action_proto_rawDesc = []byte{ 0x65, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x70, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x6e, + 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x70, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x6d, 0x0a, 0x17, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x53, - 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x70, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, - 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x2f, 0x0a, - 0x0c, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc8, 0x01, 0x00, 0xc0, 0x01, 0x02, - 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, - 0x0a, 0x14, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f, - 0x50, 0x45, 0x52, 0x4d, 0x41, 0x4e, 0x45, 0x4e, 0x54, 0x4c, 0x59, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x45, 0x45, 0x5f, - 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x45, 0x4d, 0x50, 0x4f, - 0x52, 0x41, 0x52, 0x59, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12, - 0x16, 0x0a, 0x12, 0x50, 0x45, 0x52, 0x4d, 0x41, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x44, - 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x04, 0x42, 0x1a, 0x0a, 0x18, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x65, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x42, 0x18, 0x0a, 0x16, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x2d, 0x5a, - 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, - 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2d, 0x63, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x2f, 0x0a, 0x0c, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc8, 0x01, 0x00, 0xc0, 0x01, 0x02, 0x52, + 0x0c, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0x0a, + 0x14, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f, 0x50, + 0x45, 0x52, 0x4d, 0x41, 0x4e, 0x45, 0x4e, 0x54, 0x4c, 0x59, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x45, 0x45, 0x5f, 0x4f, + 0x54, 0x48, 0x45, 0x52, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x45, 0x4d, 0x50, 0x4f, 0x52, + 0x41, 0x52, 0x59, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12, 0x16, + 0x0a, 0x12, 0x50, 0x45, 0x52, 0x4d, 0x41, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x49, + 0x52, 0x45, 0x43, 0x54, 0x10, 0x04, 0x42, 0x1a, 0x0a, 0x18, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, + 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x42, 0x18, 0x0a, 0x16, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x2d, 0x5a, 0x2b, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, + 0x69, 0x75, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, + 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/pb/route_redirect_action.pb.validate.go b/pb/route_redirect_action.pb.validate.go new file mode 100644 index 0000000..d949f96 --- /dev/null +++ b/pb/route_redirect_action.pb.validate.go @@ -0,0 +1,418 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: route_redirect_action.proto + +package pb + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "sort" + "strings" + "time" + "unicode/utf8" + + "google.golang.org/protobuf/types/known/anypb" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = anypb.Any{} + _ = sort.Sort +) + +// Validate checks the field values on RedirectAction with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *RedirectAction) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on RedirectAction with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in RedirectActionMultiError, +// or nil if none found. +func (m *RedirectAction) ValidateAll() error { + return m.validate(true) +} + +func (m *RedirectAction) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if !_RedirectAction_HostRedirect_Pattern.MatchString(m.GetHostRedirect()) { + err := RedirectActionValidationError{ + field: "HostRedirect", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + // no validation rules for PortRedirect + + if _, ok := RedirectAction_RedirectResponseCode_name[int32(m.GetResponseCode())]; !ok { + err := RedirectActionValidationError{ + field: "ResponseCode", + reason: "value must be one of the defined enum values", + } + if !all { + return err + } + errors = append(errors, err) + } + + // no validation rules for StripQuery + + switch v := m.SchemeRewriteSpecifier.(type) { + case *RedirectAction_HttpsRedirect: + if v == nil { + err := RedirectActionValidationError{ + field: "SchemeRewriteSpecifier", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + // no validation rules for HttpsRedirect + case *RedirectAction_SchemeRedirect: + if v == nil { + err := RedirectActionValidationError{ + field: "SchemeRewriteSpecifier", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + // no validation rules for SchemeRedirect + default: + _ = v // ensures v is used + } + switch v := m.PathRewriteSpecifier.(type) { + case *RedirectAction_PathRedirect: + if v == nil { + err := RedirectActionValidationError{ + field: "PathRewriteSpecifier", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if !_RedirectAction_PathRedirect_Pattern.MatchString(m.GetPathRedirect()) { + err := RedirectActionValidationError{ + field: "PathRedirect", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + case *RedirectAction_PrefixRewrite: + if v == nil { + err := RedirectActionValidationError{ + field: "PathRewriteSpecifier", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if !_RedirectAction_PrefixRewrite_Pattern.MatchString(m.GetPrefixRewrite()) { + err := RedirectActionValidationError{ + field: "PrefixRewrite", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + case *RedirectAction_RegexRewrite: + if v == nil { + err := RedirectActionValidationError{ + field: "PathRewriteSpecifier", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetRegexRewrite()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RedirectActionValidationError{ + field: "RegexRewrite", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RedirectActionValidationError{ + field: "RegexRewrite", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRegexRewrite()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RedirectActionValidationError{ + field: "RegexRewrite", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + _ = v // ensures v is used + } + + if len(errors) > 0 { + return RedirectActionMultiError(errors) + } + + return nil +} + +// RedirectActionMultiError is an error wrapping multiple validation errors +// returned by RedirectAction.ValidateAll() if the designated constraints +// aren't met. +type RedirectActionMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m RedirectActionMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m RedirectActionMultiError) AllErrors() []error { return m } + +// RedirectActionValidationError is the validation error returned by +// RedirectAction.Validate if the designated constraints aren't met. +type RedirectActionValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RedirectActionValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RedirectActionValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RedirectActionValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RedirectActionValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RedirectActionValidationError) ErrorName() string { return "RedirectActionValidationError" } + +// Error satisfies the builtin error interface +func (e RedirectActionValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRedirectAction.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RedirectActionValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RedirectActionValidationError{} + +var _RedirectAction_HostRedirect_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +var _RedirectAction_PathRedirect_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +var _RedirectAction_PrefixRewrite_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") + +// Validate checks the field values on RedirectAction_RegexMatchAndSubstitute +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *RedirectAction_RegexMatchAndSubstitute) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on +// RedirectAction_RegexMatchAndSubstitute with the rules defined in the proto +// definition for this message. If any rules are violated, the result is a +// list of violation errors wrapped in +// RedirectAction_RegexMatchAndSubstituteMultiError, or nil if none found. +func (m *RedirectAction_RegexMatchAndSubstitute) ValidateAll() error { + return m.validate(true) +} + +func (m *RedirectAction_RegexMatchAndSubstitute) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if utf8.RuneCountInString(m.GetPattern()) < 1 { + err := RedirectAction_RegexMatchAndSubstituteValidationError{ + field: "Pattern", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if !_RedirectAction_RegexMatchAndSubstitute_Substitution_Pattern.MatchString(m.GetSubstitution()) { + err := RedirectAction_RegexMatchAndSubstituteValidationError{ + field: "Substitution", + reason: "value does not match regex pattern \"^[^\\x00\\n\\r]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return RedirectAction_RegexMatchAndSubstituteMultiError(errors) + } + + return nil +} + +// RedirectAction_RegexMatchAndSubstituteMultiError is an error wrapping +// multiple validation errors returned by +// RedirectAction_RegexMatchAndSubstitute.ValidateAll() if the designated +// constraints aren't met. +type RedirectAction_RegexMatchAndSubstituteMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m RedirectAction_RegexMatchAndSubstituteMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m RedirectAction_RegexMatchAndSubstituteMultiError) AllErrors() []error { return m } + +// RedirectAction_RegexMatchAndSubstituteValidationError is the validation +// error returned by RedirectAction_RegexMatchAndSubstitute.Validate if the +// designated constraints aren't met. +type RedirectAction_RegexMatchAndSubstituteValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RedirectAction_RegexMatchAndSubstituteValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RedirectAction_RegexMatchAndSubstituteValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RedirectAction_RegexMatchAndSubstituteValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RedirectAction_RegexMatchAndSubstituteValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RedirectAction_RegexMatchAndSubstituteValidationError) ErrorName() string { + return "RedirectAction_RegexMatchAndSubstituteValidationError" +} + +// Error satisfies the builtin error interface +func (e RedirectAction_RegexMatchAndSubstituteValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRedirectAction_RegexMatchAndSubstitute.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RedirectAction_RegexMatchAndSubstituteValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RedirectAction_RegexMatchAndSubstituteValidationError{} + +var _RedirectAction_RegexMatchAndSubstitute_Substitution_Pattern = regexp.MustCompile("^[^\x00\n\r]*$") diff --git a/pb/routes.pb.go b/pb/routes.pb.go index 1842f52..f56223d 100644 --- a/pb/routes.pb.go +++ b/pb/routes.pb.go @@ -7,7 +7,7 @@ package pb import ( - v3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3" + _ "github.com/envoyproxy/protoc-gen-validate/validate" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" durationpb "google.golang.org/protobuf/types/known/durationpb" @@ -125,6 +125,72 @@ func (BearerTokenFormat) EnumDescriptor() ([]byte, []int) { return file_routes_proto_rawDescGZIP(), []int{1} } +// LoadBalancingPolicy defines the strategy used to balance requests across +// upstream endpoints +type LoadBalancingPolicy int32 + +const ( + // Default load balancing if not specified + LoadBalancingPolicy_LOAD_BALANCING_POLICY_UNSPECIFIED LoadBalancingPolicy = 0 + // Classic round robin algorithm + LoadBalancingPolicy_LOAD_BALANCING_POLICY_ROUND_ROBIN LoadBalancingPolicy = 1 + // Consistent hashing load balancing + LoadBalancingPolicy_LOAD_BALANCING_POLICY_MAGLEV LoadBalancingPolicy = 2 + // Random selection of backend + LoadBalancingPolicy_LOAD_BALANCING_POLICY_RANDOM LoadBalancingPolicy = 3 + // Consistent hashing on an attribute + LoadBalancingPolicy_LOAD_BALANCING_POLICY_RING_HASH LoadBalancingPolicy = 4 + // Select backend with fewest active requests + LoadBalancingPolicy_LOAD_BALANCING_POLICY_LEAST_REQUEST LoadBalancingPolicy = 5 +) + +// Enum value maps for LoadBalancingPolicy. +var ( + LoadBalancingPolicy_name = map[int32]string{ + 0: "LOAD_BALANCING_POLICY_UNSPECIFIED", + 1: "LOAD_BALANCING_POLICY_ROUND_ROBIN", + 2: "LOAD_BALANCING_POLICY_MAGLEV", + 3: "LOAD_BALANCING_POLICY_RANDOM", + 4: "LOAD_BALANCING_POLICY_RING_HASH", + 5: "LOAD_BALANCING_POLICY_LEAST_REQUEST", + } + LoadBalancingPolicy_value = map[string]int32{ + "LOAD_BALANCING_POLICY_UNSPECIFIED": 0, + "LOAD_BALANCING_POLICY_ROUND_ROBIN": 1, + "LOAD_BALANCING_POLICY_MAGLEV": 2, + "LOAD_BALANCING_POLICY_RANDOM": 3, + "LOAD_BALANCING_POLICY_RING_HASH": 4, + "LOAD_BALANCING_POLICY_LEAST_REQUEST": 5, + } +) + +func (x LoadBalancingPolicy) Enum() *LoadBalancingPolicy { + p := new(LoadBalancingPolicy) + *p = x + return p +} + +func (x LoadBalancingPolicy) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LoadBalancingPolicy) Descriptor() protoreflect.EnumDescriptor { + return file_routes_proto_enumTypes[2].Descriptor() +} + +func (LoadBalancingPolicy) Type() protoreflect.EnumType { + return &file_routes_proto_enumTypes[2] +} + +func (x LoadBalancingPolicy) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LoadBalancingPolicy.Descriptor instead. +func (LoadBalancingPolicy) EnumDescriptor() ([]byte, []int) { + return file_routes_proto_rawDescGZIP(), []int{2} +} + type RouteRewriteHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -321,7 +387,7 @@ func (x *JwtGroupsFilter) GetInferFromPpl() bool { } // Route defines a proxy route's settings and policy associations -// Next ID: 70 +// Next ID: 72 type Route struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -371,7 +437,6 @@ type Route struct { PassIdentityHeaders *bool `protobuf:"varint,26,opt,name=pass_identity_headers,json=passIdentityHeaders,proto3,oneof" json:"pass_identity_headers,omitempty"` KubernetesServiceAccountToken *string `protobuf:"bytes,27,opt,name=kubernetes_service_account_token,json=kubernetesServiceAccountToken,proto3,oneof" json:"kubernetes_service_account_token,omitempty"` KubernetesServiceAccountTokenFile *string `protobuf:"bytes,60,opt,name=kubernetes_service_account_token_file,json=kubernetesServiceAccountTokenFile,proto3,oneof" json:"kubernetes_service_account_token_file,omitempty"` - EnvoyOpts *v3.Cluster `protobuf:"bytes,39,opt,name=envoy_opts,json=envoyOpts,proto3" json:"envoy_opts,omitempty"` EnableGoogleCloudServerlessAuthentication bool `protobuf:"varint,46,opt,name=enable_google_cloud_serverless_authentication,json=enableGoogleCloudServerlessAuthentication,proto3" json:"enable_google_cloud_serverless_authentication,omitempty"` JwtIssuerFormat IssuerFormat `protobuf:"varint,61,opt,name=jwt_issuer_format,json=jwtIssuerFormat,proto3,enum=pomerium.dashboard.IssuerFormat" json:"jwt_issuer_format,omitempty"` BearerTokenFormat *BearerTokenFormat `protobuf:"varint,68,opt,name=bearer_token_format,json=bearerTokenFormat,proto3,enum=pomerium.dashboard.BearerTokenFormat,oneof" json:"bearer_token_format,omitempty"` @@ -387,9 +452,11 @@ type Route struct { // computed NamespaceName string `protobuf:"bytes,35,opt,name=namespace_name,json=namespaceName,proto3" json:"namespace_name,omitempty"` // computed - EnforcedPolicyIds []string `protobuf:"bytes,63,rep,name=enforced_policy_ids,json=enforcedPolicyIds,proto3" json:"enforced_policy_ids,omitempty"` - EnforcedPolicyNames []string `protobuf:"bytes,64,rep,name=enforced_policy_names,json=enforcedPolicyNames,proto3" json:"enforced_policy_names,omitempty"` - IdpAccessTokenAllowedAudiences *Route_StringList `protobuf:"bytes,69,opt,name=idp_access_token_allowed_audiences,json=idpAccessTokenAllowedAudiences,proto3,oneof" json:"idp_access_token_allowed_audiences,omitempty"` + EnforcedPolicyIds []string `protobuf:"bytes,63,rep,name=enforced_policy_ids,json=enforcedPolicyIds,proto3" json:"enforced_policy_ids,omitempty"` + EnforcedPolicyNames []string `protobuf:"bytes,64,rep,name=enforced_policy_names,json=enforcedPolicyNames,proto3" json:"enforced_policy_names,omitempty"` + IdpAccessTokenAllowedAudiences *Route_StringList `protobuf:"bytes,69,opt,name=idp_access_token_allowed_audiences,json=idpAccessTokenAllowedAudiences,proto3,oneof" json:"idp_access_token_allowed_audiences,omitempty"` + LoadBalancingPolicy *LoadBalancingPolicy `protobuf:"varint,70,opt,name=load_balancing_policy,json=loadBalancingPolicy,proto3,enum=pomerium.dashboard.LoadBalancingPolicy,oneof" json:"load_balancing_policy,omitempty"` + HealthChecks []*HealthCheck `protobuf:"bytes,71,rep,name=health_checks,json=healthChecks,proto3" json:"health_checks,omitempty"` } func (x *Route) Reset() { @@ -725,13 +792,6 @@ func (x *Route) GetKubernetesServiceAccountTokenFile() string { return "" } -func (x *Route) GetEnvoyOpts() *v3.Cluster { - if x != nil { - return x.EnvoyOpts - } - return nil -} - func (x *Route) GetEnableGoogleCloudServerlessAuthentication() bool { if x != nil { return x.EnableGoogleCloudServerlessAuthentication @@ -830,6 +890,20 @@ func (x *Route) GetIdpAccessTokenAllowedAudiences() *Route_StringList { return nil } +func (x *Route) GetLoadBalancingPolicy() LoadBalancingPolicy { + if x != nil && x.LoadBalancingPolicy != nil { + return *x.LoadBalancingPolicy + } + return LoadBalancingPolicy_LOAD_BALANCING_POLICY_UNSPECIFIED +} + +func (x *Route) GetHealthChecks() []*HealthCheck { + if x != nil { + return x.HealthChecks + } + return nil +} + // RouteWithPolicies contains automatically created routes and policies from a // LoadRoutesRequest type RouteWithPolicies struct { @@ -1734,437 +1808,462 @@ var file_routes_proto_rawDesc = []byte{ 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, - 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x67, 0x0a, 0x12, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x22, 0x41, - 0x0a, 0x13, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, - 0x79, 0x22, 0x67, 0x0a, 0x0f, 0x4a, 0x77, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x29, 0x0a, 0x0e, - 0x69, 0x6e, 0x66, 0x65, 0x72, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x70, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x46, 0x72, 0x6f, - 0x6d, 0x50, 0x70, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x66, 0x65, - 0x72, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x70, 0x6c, 0x22, 0xaa, 0x21, 0x0a, 0x05, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x67, 0x0a, 0x12, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, + 0x18, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x22, 0x41, 0x0a, 0x13, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x67, 0x0a, + 0x0f, 0x4a, 0x77, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x29, 0x0a, 0x0e, 0x69, 0x6e, 0x66, 0x65, + 0x72, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x70, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x70, 0x6c, + 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x5f, 0x66, 0x72, + 0x6f, 0x6d, 0x5f, 0x70, 0x70, 0x6c, 0x22, 0xbb, 0x22, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x39, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, + 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, + 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x41, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x42, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x55, - 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, - 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x65, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, - 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x04, 0x52, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x24, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x65, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x72, 0x65, 0x67, 0x65, - 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x13, 0x72, 0x65, 0x67, 0x65, 0x78, - 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x41, 0x0a, 0x1a, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x26, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x18, 0x72, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, 0x52, 0x0b, 0x68, 0x6f, - 0x73, 0x74, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, - 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x11, 0x68, 0x6f, 0x73, - 0x74, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, - 0x01, 0x12, 0x49, 0x0a, 0x1f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, - 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0a, 0x52, 0x1b, 0x68, 0x6f, - 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x24, - 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, - 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x20, 0x68, 0x6f, - 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x03, 0x48, - 0x0c, 0x52, 0x12, 0x72, 0x65, 0x67, 0x65, 0x78, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0c, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x0e, 0x52, 0x0b, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x77, - 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x0f, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, - 0x70, 0x64, 0x79, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x48, 0x10, 0x52, 0x09, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x53, 0x70, 0x64, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x74, 0x6c, 0x73, - 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x11, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x74, 0x6c, 0x73, 0x5f, 0x75, 0x70, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x48, 0x12, 0x52, 0x15, 0x74, 0x6c, 0x73, 0x55, - 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x1a, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x6f, 0x77, 0x6e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x48, 0x13, 0x52, 0x17, 0x74, 0x6c, 0x73, 0x44, - 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x19, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x48, 0x14, 0x52, 0x14, 0x74, 0x6c, 0x73, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x61, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x16, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x2a, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x15, 0x52, 0x12, 0x74, 0x6c, 0x73, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, - 0x24, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x61, - 0x69, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x16, 0x52, 0x1e, 0x74, - 0x6c, 0x73, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x43, 0x61, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x4c, 0x0a, 0x20, 0x74, 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x37, 0x20, 0x01, 0x28, 0x08, 0x48, 0x17, 0x52, 0x1d, 0x74, 0x6c, - 0x73, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, - 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x60, - 0x0a, 0x13, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x6f, + 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x41, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x42, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x55, 0x72, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, + 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, + 0x74, 0x6f, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x43, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, + 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x3b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, + 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x05, + 0x72, 0x65, 0x67, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x05, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x25, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x13, 0x72, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, + 0x1a, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x26, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x07, 0x52, 0x18, 0x72, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, 0x52, 0x0b, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x68, 0x6f, 0x73, 0x74, + 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x11, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x1f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, + 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0a, 0x52, 0x1b, 0x68, 0x6f, 0x73, 0x74, 0x50, 0x61, + 0x74, 0x68, 0x52, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x24, 0x68, 0x6f, 0x73, 0x74, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x20, 0x68, 0x6f, 0x73, 0x74, 0x50, 0x61, + 0x74, 0x68, 0x52, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x53, 0x75, + 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x14, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x03, 0x48, 0x0c, 0x52, 0x12, 0x72, + 0x65, 0x67, 0x65, 0x78, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, + 0x0a, 0x0c, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x30, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, + 0x0e, 0x52, 0x0b, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x65, 0x62, 0x73, 0x6f, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0f, 0x52, 0x0f, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x64, 0x79, 0x18, + 0x31, 0x20, 0x01, 0x28, 0x08, 0x48, 0x10, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x70, + 0x64, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, + 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x11, + 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x74, 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x33, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x12, 0x52, 0x15, 0x74, 0x6c, 0x73, 0x55, 0x70, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x40, 0x0a, 0x1a, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x34, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x13, 0x52, 0x17, 0x74, 0x6c, 0x73, 0x44, 0x6f, 0x77, 0x6e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x19, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x5f, 0x63, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x29, 0x20, 0x01, 0x28, 0x09, 0x48, 0x14, 0x52, 0x14, 0x74, 0x6c, 0x73, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x43, 0x61, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x16, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, + 0x65, 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x15, 0x52, 0x12, 0x74, 0x6c, 0x73, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, + 0x50, 0x61, 0x69, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x24, 0x74, 0x6c, 0x73, + 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x16, 0x52, 0x1e, 0x74, 0x6c, 0x73, 0x44, 0x6f, + 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x61, + 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x20, + 0x74, 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x37, 0x20, 0x01, 0x28, 0x08, 0x48, 0x17, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x55, 0x70, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x6e, 0x65, 0x67, 0x6f, + 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x60, 0x0a, 0x13, 0x73, 0x65, + 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, + 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x73, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x16, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x63, 0x0a, 0x14, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x31, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x12, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x60, 0x0a, 0x18, 0x72, 0x65, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x6f, 0x6d, 0x65, + 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x52, 0x16, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x14, 0x70, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x48, 0x18, 0x52, 0x12, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x15, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x19, 0x52, 0x13, 0x70, 0x61, 0x73, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x20, 0x6b, 0x75, 0x62, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x1b, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x1a, 0x52, 0x1d, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, + 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x25, 0x6b, 0x75, 0x62, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x65, + 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x1b, 0x52, 0x21, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x60, + 0x0a, 0x2d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, + 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x2e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x29, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, + 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4c, 0x0a, 0x11, 0x6a, 0x77, 0x74, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x73, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x63, 0x0a, 0x14, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x38, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, - 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, - 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x60, 0x0a, 0x18, 0x72, - 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x16, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, - 0x14, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x48, 0x18, 0x52, 0x12, 0x70, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x1a, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x19, 0x52, 0x13, 0x70, 0x61, 0x73, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, - 0x20, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x1a, 0x52, 0x1d, 0x6b, 0x75, 0x62, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x25, 0x6b, - 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x66, 0x69, 0x6c, 0x65, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x1b, 0x52, 0x21, 0x6b, 0x75, - 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x6f, 0x70, 0x74, 0x73, - 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, - 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x09, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x4f, - 0x70, 0x74, 0x73, 0x12, 0x60, 0x0a, 0x2d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x29, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x11, 0x6a, 0x77, 0x74, 0x5f, 0x69, 0x73, 0x73, - 0x75, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x20, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x52, 0x0f, 0x6a, 0x77, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x46, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x12, 0x5a, 0x0a, 0x13, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x48, 0x1c, 0x52, 0x11, 0x62, 0x65, 0x61, 0x72, 0x65, - 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4f, 0x0a, 0x11, 0x6a, 0x77, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x5f, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x6f, 0x6d, - 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, - 0x4a, 0x77, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, - 0x0f, 0x6a, 0x77, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, 0x48, 0x1d, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x64, 0x70, - 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x3a, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x1e, 0x52, 0x0f, 0x69, 0x64, 0x70, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x68, - 0x6f, 0x77, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x68, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x22, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x3f, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x11, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x49, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x40, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x75, 0x0a, 0x22, 0x69, 0x64, - 0x70, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x18, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x1f, 0x52, 0x1e, - 0x69, 0x64, 0x70, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x88, 0x01, - 0x01, 0x1a, 0x24, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x44, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x45, 0x0a, - 0x17, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x75, 0x72, - 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x42, 0x1d, 0x0a, 0x1b, - 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, - 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x68, 0x6f, 0x73, - 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x64, 0x6c, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x5f, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x64, 0x79, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x42, - 0x1b, 0x0a, 0x19, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1d, 0x0a, 0x1b, - 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, - 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x61, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x74, 0x6c, - 0x73, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x61, 0x69, - 0x72, 0x5f, 0x69, 0x64, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x6f, 0x77, - 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, - 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x23, 0x0a, - 0x21, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, - 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x18, 0x0a, 0x16, 0x5f, - 0x70, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x28, 0x0a, 0x26, 0x5f, 0x6b, - 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x66, 0x69, 0x6c, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x14, - 0x0a, 0x12, 0x5f, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x69, 0x64, 0x70, 0x5f, 0x61, 0x63, 0x63, + 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0f, 0x6a, + 0x77, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x5a, + 0x0a, 0x13, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x70, 0x6f, + 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x2e, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x48, 0x1c, 0x52, 0x11, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x11, 0x6a, 0x77, + 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, + 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4a, 0x77, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x6a, 0x77, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0d, 0x69, + 0x64, 0x70, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x39, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x1d, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x1e, 0x52, 0x0f, 0x69, 0x64, 0x70, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x10, 0x73, 0x68, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x23, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x5f, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x3f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, + 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, + 0x73, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x5f, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x40, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x13, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x75, 0x0a, 0x22, 0x69, 0x64, 0x70, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x28, 0x10, - 0x29, 0x4a, 0x04, 0x08, 0x32, 0x10, 0x33, 0x22, 0x7c, 0x0a, 0x11, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x57, 0x69, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x05, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, + 0x64, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x45, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, + 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x1f, 0x52, 0x1e, 0x69, 0x64, 0x70, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x15, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x36, 0x0a, - 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x24, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x6f, 0x75, 0x74, 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, 0x15, 0x0a, 0x13, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x27, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x21, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 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, 0x43, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, - 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x11, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, - 0x19, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x22, 0x68, - 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x48, 0x20, + 0x52, 0x13, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x52, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x1a, 0x24, + 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x44, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x45, 0x0a, 0x17, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x72, 0x65, + 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x68, 0x6f, 0x73, + 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x68, 0x6f, + 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, + 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x70, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x77, + 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x64, 0x79, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x74, 0x6c, 0x73, + 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x42, 0x1b, 0x0a, 0x19, + 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x74, 0x6c, + 0x73, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x74, 0x6c, 0x73, + 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x70, + 0x61, 0x69, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x5f, 0x69, + 0x64, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x5f, 0x6b, + 0x65, 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x74, + 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x68, 0x6f, 0x73, + 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x70, 0x61, 0x73, + 0x73, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, + 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x28, 0x0a, 0x26, 0x5f, 0x6b, 0x75, 0x62, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x66, 0x69, 0x6c, + 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x64, + 0x70, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x69, 0x64, 0x70, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x61, + 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x4a, 0x04, 0x08, 0x28, 0x10, 0x29, 0x4a, 0x04, 0x08, 0x32, 0x10, 0x33, 0x4a, 0x04, + 0x08, 0x27, 0x10, 0x28, 0x22, 0x7c, 0x0a, 0x11, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, + 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, + 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, + 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, + 0x65, 0x73, 0x22, 0x24, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, + 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, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x27, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x21, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 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, 0x43, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, + 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x05, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x03, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x22, 0x68, 0x0a, 0x12, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, + 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x43, 0x0a, 0x11, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x53, 0x0a, 0x12, 0x4c, 0x6f, + 0x61, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3d, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, + 0x42, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, + 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x22, 0x43, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, + 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x45, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x06, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, + 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, + 0x46, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, - 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x43, 0x0a, 0x11, 0x4c, 0x6f, 0x61, 0x64, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x53, 0x0a, - 0x12, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, - 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, - 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x22, 0x42, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, - 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, - 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x43, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, - 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x45, 0x0a, 0x10, 0x53, - 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x31, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x22, 0x46, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, - 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, 0x5a, 0x0a, 0x11, 0x4d, 0x6f, - 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x10, - 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x31, 0x0a, 0x0c, - 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x0e, - 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x00, - 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x55, 0x52, 0x49, 0x10, 0x01, 0x2a, - 0xab, 0x01, 0x0a, 0x11, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x45, 0x41, 0x52, 0x45, 0x52, 0x5f, - 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x45, 0x41, 0x52, 0x45, 0x52, - 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x44, 0x45, - 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x52, 0x45, - 0x52, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x49, - 0x44, 0x50, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, - 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, 0x4f, 0x4b, 0x45, - 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x49, 0x44, 0x50, 0x5f, 0x49, 0x44, 0x45, - 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0x03, 0x32, 0xf0, 0x05, - 0x0a, 0x0c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5e, - 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x26, 0x2e, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, - 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x27, - 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, - 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x55, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x23, 0x2e, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, + 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, 0x5a, 0x0a, 0x11, 0x4d, 0x6f, 0x76, 0x65, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x08, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x77, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x49, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x31, 0x0a, 0x0c, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x00, 0x12, 0x0d, 0x0a, + 0x09, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x55, 0x52, 0x49, 0x10, 0x01, 0x2a, 0xab, 0x01, 0x0a, + 0x11, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x45, 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, 0x4f, 0x4b, + 0x45, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x45, 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, 0x4f, + 0x4b, 0x45, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, + 0x4c, 0x54, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, + 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x49, 0x44, 0x50, 0x5f, + 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0x02, 0x12, 0x2a, + 0x0a, 0x26, 0x42, 0x45, 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x46, + 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x49, 0x44, 0x50, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, + 0x54, 0x59, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0x03, 0x2a, 0xf5, 0x01, 0x0a, 0x13, 0x4c, + 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x41, 0x4c, 0x41, 0x4e, + 0x43, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x4f, 0x41, + 0x44, 0x5f, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4f, 0x4c, 0x49, + 0x43, 0x59, 0x5f, 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x52, 0x4f, 0x42, 0x49, 0x4e, 0x10, 0x01, + 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x49, + 0x4e, 0x47, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x4d, 0x41, 0x47, 0x4c, 0x45, 0x56, + 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x41, 0x4c, 0x41, 0x4e, + 0x43, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x52, 0x41, 0x4e, 0x44, + 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x42, 0x41, 0x4c, + 0x41, 0x4e, 0x43, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x52, 0x49, + 0x4e, 0x47, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x04, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x4f, 0x41, + 0x44, 0x5f, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4f, 0x4c, 0x49, + 0x43, 0x59, 0x5f, 0x4c, 0x45, 0x41, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, + 0x10, 0x05, 0x32, 0xf0, 0x05, 0x0a, 0x0c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x5e, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x12, 0x26, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, + 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x6f, 0x6d, + 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, + 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, + 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x12, 0x23, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, + 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x47, 0x65, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, + 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x6f, + 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, + 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0a, 0x4c, 0x6f, + 0x61, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, + 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x6f, + 0x61, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x26, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x12, 0x23, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, + 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, + 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x65, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, + 0x0a, 0x09, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x6f, + 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, + 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0a, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0a, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, - 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x6f, 0x6d, - 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, - 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x55, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x23, - 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, - 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x09, 0x53, 0x65, 0x74, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, - 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, - 0x64, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0a, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x12, 0x25, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, - 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, - 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x6f, - 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, - 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2d, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x64, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, + 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2179,87 +2278,89 @@ func file_routes_proto_rawDescGZIP() []byte { return file_routes_proto_rawDescData } -var file_routes_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_routes_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_routes_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_routes_proto_goTypes = []any{ (IssuerFormat)(0), // 0: pomerium.dashboard.IssuerFormat (BearerTokenFormat)(0), // 1: pomerium.dashboard.BearerTokenFormat - (*RouteRewriteHeader)(nil), // 2: pomerium.dashboard.RouteRewriteHeader - (*RouteDirectResponse)(nil), // 3: pomerium.dashboard.RouteDirectResponse - (*JwtGroupsFilter)(nil), // 4: pomerium.dashboard.JwtGroupsFilter - (*Route)(nil), // 5: pomerium.dashboard.Route - (*RouteWithPolicies)(nil), // 6: pomerium.dashboard.RouteWithPolicies - (*DeleteRouteRequest)(nil), // 7: pomerium.dashboard.DeleteRouteRequest - (*DeleteRouteResponse)(nil), // 8: pomerium.dashboard.DeleteRouteResponse - (*DeleteRoutesRequest)(nil), // 9: pomerium.dashboard.DeleteRoutesRequest - (*DeleteRoutesResponse)(nil), // 10: pomerium.dashboard.DeleteRoutesResponse - (*GetRouteRequest)(nil), // 11: pomerium.dashboard.GetRouteRequest - (*GetRouteResponse)(nil), // 12: pomerium.dashboard.GetRouteResponse - (*ListRoutesRequest)(nil), // 13: pomerium.dashboard.ListRoutesRequest - (*ListRoutesResponse)(nil), // 14: pomerium.dashboard.ListRoutesResponse - (*LoadRoutesRequest)(nil), // 15: pomerium.dashboard.LoadRoutesRequest - (*LoadRoutesResponse)(nil), // 16: pomerium.dashboard.LoadRoutesResponse - (*SetRouteRequest)(nil), // 17: pomerium.dashboard.SetRouteRequest - (*SetRouteResponse)(nil), // 18: pomerium.dashboard.SetRouteResponse - (*SetRoutesRequest)(nil), // 19: pomerium.dashboard.SetRoutesRequest - (*SetRoutesResponse)(nil), // 20: pomerium.dashboard.SetRoutesResponse - (*MoveRoutesRequest)(nil), // 21: pomerium.dashboard.MoveRoutesRequest - (*MoveRoutesResponse)(nil), // 22: pomerium.dashboard.MoveRoutesResponse - (*Route_StringList)(nil), // 23: pomerium.dashboard.Route.StringList - nil, // 24: pomerium.dashboard.Route.SetRequestHeadersEntry - nil, // 25: pomerium.dashboard.Route.SetResponseHeadersEntry - (*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp - (*RedirectAction)(nil), // 27: pomerium.dashboard.RedirectAction - (*durationpb.Duration)(nil), // 28: google.protobuf.Duration - (*v3.Cluster)(nil), // 29: envoy.config.cluster.v3.Cluster - (*Policy)(nil), // 30: pomerium.dashboard.Policy + (LoadBalancingPolicy)(0), // 2: pomerium.dashboard.LoadBalancingPolicy + (*RouteRewriteHeader)(nil), // 3: pomerium.dashboard.RouteRewriteHeader + (*RouteDirectResponse)(nil), // 4: pomerium.dashboard.RouteDirectResponse + (*JwtGroupsFilter)(nil), // 5: pomerium.dashboard.JwtGroupsFilter + (*Route)(nil), // 6: pomerium.dashboard.Route + (*RouteWithPolicies)(nil), // 7: pomerium.dashboard.RouteWithPolicies + (*DeleteRouteRequest)(nil), // 8: pomerium.dashboard.DeleteRouteRequest + (*DeleteRouteResponse)(nil), // 9: pomerium.dashboard.DeleteRouteResponse + (*DeleteRoutesRequest)(nil), // 10: pomerium.dashboard.DeleteRoutesRequest + (*DeleteRoutesResponse)(nil), // 11: pomerium.dashboard.DeleteRoutesResponse + (*GetRouteRequest)(nil), // 12: pomerium.dashboard.GetRouteRequest + (*GetRouteResponse)(nil), // 13: pomerium.dashboard.GetRouteResponse + (*ListRoutesRequest)(nil), // 14: pomerium.dashboard.ListRoutesRequest + (*ListRoutesResponse)(nil), // 15: pomerium.dashboard.ListRoutesResponse + (*LoadRoutesRequest)(nil), // 16: pomerium.dashboard.LoadRoutesRequest + (*LoadRoutesResponse)(nil), // 17: pomerium.dashboard.LoadRoutesResponse + (*SetRouteRequest)(nil), // 18: pomerium.dashboard.SetRouteRequest + (*SetRouteResponse)(nil), // 19: pomerium.dashboard.SetRouteResponse + (*SetRoutesRequest)(nil), // 20: pomerium.dashboard.SetRoutesRequest + (*SetRoutesResponse)(nil), // 21: pomerium.dashboard.SetRoutesResponse + (*MoveRoutesRequest)(nil), // 22: pomerium.dashboard.MoveRoutesRequest + (*MoveRoutesResponse)(nil), // 23: pomerium.dashboard.MoveRoutesResponse + (*Route_StringList)(nil), // 24: pomerium.dashboard.Route.StringList + nil, // 25: pomerium.dashboard.Route.SetRequestHeadersEntry + nil, // 26: pomerium.dashboard.Route.SetResponseHeadersEntry + (*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp + (*RedirectAction)(nil), // 28: pomerium.dashboard.RedirectAction + (*durationpb.Duration)(nil), // 29: google.protobuf.Duration + (*HealthCheck)(nil), // 30: pomerium.dashboard.HealthCheck + (*Policy)(nil), // 31: pomerium.dashboard.Policy } var file_routes_proto_depIdxs = []int32{ - 26, // 0: pomerium.dashboard.Route.created_at:type_name -> google.protobuf.Timestamp - 26, // 1: pomerium.dashboard.Route.modified_at:type_name -> google.protobuf.Timestamp - 26, // 2: pomerium.dashboard.Route.deleted_at:type_name -> google.protobuf.Timestamp - 27, // 3: pomerium.dashboard.Route.redirect:type_name -> pomerium.dashboard.RedirectAction - 3, // 4: pomerium.dashboard.Route.response:type_name -> pomerium.dashboard.RouteDirectResponse - 28, // 5: pomerium.dashboard.Route.timeout:type_name -> google.protobuf.Duration - 28, // 6: pomerium.dashboard.Route.idle_timeout:type_name -> google.protobuf.Duration - 24, // 7: pomerium.dashboard.Route.set_request_headers:type_name -> pomerium.dashboard.Route.SetRequestHeadersEntry - 25, // 8: pomerium.dashboard.Route.set_response_headers:type_name -> pomerium.dashboard.Route.SetResponseHeadersEntry - 2, // 9: pomerium.dashboard.Route.rewrite_response_headers:type_name -> pomerium.dashboard.RouteRewriteHeader - 29, // 10: pomerium.dashboard.Route.envoy_opts:type_name -> envoy.config.cluster.v3.Cluster - 0, // 11: pomerium.dashboard.Route.jwt_issuer_format:type_name -> pomerium.dashboard.IssuerFormat - 1, // 12: pomerium.dashboard.Route.bearer_token_format:type_name -> pomerium.dashboard.BearerTokenFormat - 4, // 13: pomerium.dashboard.Route.jwt_groups_filter:type_name -> pomerium.dashboard.JwtGroupsFilter - 23, // 14: pomerium.dashboard.Route.idp_access_token_allowed_audiences:type_name -> pomerium.dashboard.Route.StringList - 5, // 15: pomerium.dashboard.RouteWithPolicies.route:type_name -> pomerium.dashboard.Route - 30, // 16: pomerium.dashboard.RouteWithPolicies.policies:type_name -> pomerium.dashboard.Policy - 5, // 17: pomerium.dashboard.GetRouteResponse.route:type_name -> pomerium.dashboard.Route - 5, // 18: pomerium.dashboard.ListRoutesResponse.routes:type_name -> pomerium.dashboard.Route - 6, // 19: pomerium.dashboard.LoadRoutesResponse.routes:type_name -> pomerium.dashboard.RouteWithPolicies - 5, // 20: pomerium.dashboard.SetRouteRequest.route:type_name -> pomerium.dashboard.Route - 5, // 21: pomerium.dashboard.SetRouteResponse.route:type_name -> pomerium.dashboard.Route - 5, // 22: pomerium.dashboard.SetRoutesRequest.routes:type_name -> pomerium.dashboard.Route - 5, // 23: pomerium.dashboard.SetRoutesResponse.routes:type_name -> pomerium.dashboard.Route - 7, // 24: pomerium.dashboard.RouteService.DeleteRoute:input_type -> pomerium.dashboard.DeleteRouteRequest - 9, // 25: pomerium.dashboard.RouteService.DeleteRoutes:input_type -> pomerium.dashboard.DeleteRoutesRequest - 11, // 26: pomerium.dashboard.RouteService.GetRoute:input_type -> pomerium.dashboard.GetRouteRequest - 13, // 27: pomerium.dashboard.RouteService.ListRoutes:input_type -> pomerium.dashboard.ListRoutesRequest - 15, // 28: pomerium.dashboard.RouteService.LoadRoutes:input_type -> pomerium.dashboard.LoadRoutesRequest - 17, // 29: pomerium.dashboard.RouteService.SetRoute:input_type -> pomerium.dashboard.SetRouteRequest - 19, // 30: pomerium.dashboard.RouteService.SetRoutes:input_type -> pomerium.dashboard.SetRoutesRequest - 21, // 31: pomerium.dashboard.RouteService.MoveRoutes:input_type -> pomerium.dashboard.MoveRoutesRequest - 8, // 32: pomerium.dashboard.RouteService.DeleteRoute:output_type -> pomerium.dashboard.DeleteRouteResponse - 10, // 33: pomerium.dashboard.RouteService.DeleteRoutes:output_type -> pomerium.dashboard.DeleteRoutesResponse - 12, // 34: pomerium.dashboard.RouteService.GetRoute:output_type -> pomerium.dashboard.GetRouteResponse - 14, // 35: pomerium.dashboard.RouteService.ListRoutes:output_type -> pomerium.dashboard.ListRoutesResponse - 16, // 36: pomerium.dashboard.RouteService.LoadRoutes:output_type -> pomerium.dashboard.LoadRoutesResponse - 18, // 37: pomerium.dashboard.RouteService.SetRoute:output_type -> pomerium.dashboard.SetRouteResponse - 20, // 38: pomerium.dashboard.RouteService.SetRoutes:output_type -> pomerium.dashboard.SetRoutesResponse - 22, // 39: pomerium.dashboard.RouteService.MoveRoutes:output_type -> pomerium.dashboard.MoveRoutesResponse - 32, // [32:40] is the sub-list for method output_type - 24, // [24:32] is the sub-list for method input_type - 24, // [24:24] is the sub-list for extension type_name - 24, // [24:24] is the sub-list for extension extendee - 0, // [0:24] is the sub-list for field type_name + 27, // 0: pomerium.dashboard.Route.created_at:type_name -> google.protobuf.Timestamp + 27, // 1: pomerium.dashboard.Route.modified_at:type_name -> google.protobuf.Timestamp + 27, // 2: pomerium.dashboard.Route.deleted_at:type_name -> google.protobuf.Timestamp + 28, // 3: pomerium.dashboard.Route.redirect:type_name -> pomerium.dashboard.RedirectAction + 4, // 4: pomerium.dashboard.Route.response:type_name -> pomerium.dashboard.RouteDirectResponse + 29, // 5: pomerium.dashboard.Route.timeout:type_name -> google.protobuf.Duration + 29, // 6: pomerium.dashboard.Route.idle_timeout:type_name -> google.protobuf.Duration + 25, // 7: pomerium.dashboard.Route.set_request_headers:type_name -> pomerium.dashboard.Route.SetRequestHeadersEntry + 26, // 8: pomerium.dashboard.Route.set_response_headers:type_name -> pomerium.dashboard.Route.SetResponseHeadersEntry + 3, // 9: pomerium.dashboard.Route.rewrite_response_headers:type_name -> pomerium.dashboard.RouteRewriteHeader + 0, // 10: pomerium.dashboard.Route.jwt_issuer_format:type_name -> pomerium.dashboard.IssuerFormat + 1, // 11: pomerium.dashboard.Route.bearer_token_format:type_name -> pomerium.dashboard.BearerTokenFormat + 5, // 12: pomerium.dashboard.Route.jwt_groups_filter:type_name -> pomerium.dashboard.JwtGroupsFilter + 24, // 13: pomerium.dashboard.Route.idp_access_token_allowed_audiences:type_name -> pomerium.dashboard.Route.StringList + 2, // 14: pomerium.dashboard.Route.load_balancing_policy:type_name -> pomerium.dashboard.LoadBalancingPolicy + 30, // 15: pomerium.dashboard.Route.health_checks:type_name -> pomerium.dashboard.HealthCheck + 6, // 16: pomerium.dashboard.RouteWithPolicies.route:type_name -> pomerium.dashboard.Route + 31, // 17: pomerium.dashboard.RouteWithPolicies.policies:type_name -> pomerium.dashboard.Policy + 6, // 18: pomerium.dashboard.GetRouteResponse.route:type_name -> pomerium.dashboard.Route + 6, // 19: pomerium.dashboard.ListRoutesResponse.routes:type_name -> pomerium.dashboard.Route + 7, // 20: pomerium.dashboard.LoadRoutesResponse.routes:type_name -> pomerium.dashboard.RouteWithPolicies + 6, // 21: pomerium.dashboard.SetRouteRequest.route:type_name -> pomerium.dashboard.Route + 6, // 22: pomerium.dashboard.SetRouteResponse.route:type_name -> pomerium.dashboard.Route + 6, // 23: pomerium.dashboard.SetRoutesRequest.routes:type_name -> pomerium.dashboard.Route + 6, // 24: pomerium.dashboard.SetRoutesResponse.routes:type_name -> pomerium.dashboard.Route + 8, // 25: pomerium.dashboard.RouteService.DeleteRoute:input_type -> pomerium.dashboard.DeleteRouteRequest + 10, // 26: pomerium.dashboard.RouteService.DeleteRoutes:input_type -> pomerium.dashboard.DeleteRoutesRequest + 12, // 27: pomerium.dashboard.RouteService.GetRoute:input_type -> pomerium.dashboard.GetRouteRequest + 14, // 28: pomerium.dashboard.RouteService.ListRoutes:input_type -> pomerium.dashboard.ListRoutesRequest + 16, // 29: pomerium.dashboard.RouteService.LoadRoutes:input_type -> pomerium.dashboard.LoadRoutesRequest + 18, // 30: pomerium.dashboard.RouteService.SetRoute:input_type -> pomerium.dashboard.SetRouteRequest + 20, // 31: pomerium.dashboard.RouteService.SetRoutes:input_type -> pomerium.dashboard.SetRoutesRequest + 22, // 32: pomerium.dashboard.RouteService.MoveRoutes:input_type -> pomerium.dashboard.MoveRoutesRequest + 9, // 33: pomerium.dashboard.RouteService.DeleteRoute:output_type -> pomerium.dashboard.DeleteRouteResponse + 11, // 34: pomerium.dashboard.RouteService.DeleteRoutes:output_type -> pomerium.dashboard.DeleteRoutesResponse + 13, // 35: pomerium.dashboard.RouteService.GetRoute:output_type -> pomerium.dashboard.GetRouteResponse + 15, // 36: pomerium.dashboard.RouteService.ListRoutes:output_type -> pomerium.dashboard.ListRoutesResponse + 17, // 37: pomerium.dashboard.RouteService.LoadRoutes:output_type -> pomerium.dashboard.LoadRoutesResponse + 19, // 38: pomerium.dashboard.RouteService.SetRoute:output_type -> pomerium.dashboard.SetRouteResponse + 21, // 39: pomerium.dashboard.RouteService.SetRoutes:output_type -> pomerium.dashboard.SetRoutesResponse + 23, // 40: pomerium.dashboard.RouteService.MoveRoutes:output_type -> pomerium.dashboard.MoveRoutesResponse + 33, // [33:41] is the sub-list for method output_type + 25, // [25:33] is the sub-list for method input_type + 25, // [25:25] is the sub-list for extension type_name + 25, // [25:25] is the sub-list for extension extendee + 0, // [0:25] is the sub-list for field type_name } func init() { file_routes_proto_init() } @@ -2268,6 +2369,7 @@ func file_routes_proto_init() { return } file_policy_proto_init() + file_route_health_check_proto_init() file_route_redirect_action_proto_init() if !protoimpl.UnsafeEnabled { file_routes_proto_msgTypes[0].Exporter = func(v any, i int) any { @@ -2546,7 +2648,7 @@ func file_routes_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_routes_proto_rawDesc, - NumEnums: 2, + NumEnums: 3, NumMessages: 24, NumExtensions: 0, NumServices: 1, diff --git a/pb/routes.pb.validate.go b/pb/routes.pb.validate.go new file mode 100644 index 0000000..e9c18a5 --- /dev/null +++ b/pb/routes.pb.validate.go @@ -0,0 +1,3103 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: routes.proto + +package pb + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "sort" + "strings" + "time" + "unicode/utf8" + + "google.golang.org/protobuf/types/known/anypb" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = anypb.Any{} + _ = sort.Sort +) + +// Validate checks the field values on RouteRewriteHeader with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *RouteRewriteHeader) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on RouteRewriteHeader with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// RouteRewriteHeaderMultiError, or nil if none found. +func (m *RouteRewriteHeader) ValidateAll() error { + return m.validate(true) +} + +func (m *RouteRewriteHeader) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Header + + // no validation rules for Value + + switch v := m.Matcher.(type) { + case *RouteRewriteHeader_Prefix: + if v == nil { + err := RouteRewriteHeaderValidationError{ + field: "Matcher", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + // no validation rules for Prefix + default: + _ = v // ensures v is used + } + + if len(errors) > 0 { + return RouteRewriteHeaderMultiError(errors) + } + + return nil +} + +// RouteRewriteHeaderMultiError is an error wrapping multiple validation errors +// returned by RouteRewriteHeader.ValidateAll() if the designated constraints +// aren't met. +type RouteRewriteHeaderMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m RouteRewriteHeaderMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m RouteRewriteHeaderMultiError) AllErrors() []error { return m } + +// RouteRewriteHeaderValidationError is the validation error returned by +// RouteRewriteHeader.Validate if the designated constraints aren't met. +type RouteRewriteHeaderValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteRewriteHeaderValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteRewriteHeaderValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteRewriteHeaderValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteRewriteHeaderValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteRewriteHeaderValidationError) ErrorName() string { + return "RouteRewriteHeaderValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteRewriteHeaderValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteRewriteHeader.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteRewriteHeaderValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteRewriteHeaderValidationError{} + +// Validate checks the field values on RouteDirectResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *RouteDirectResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on RouteDirectResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// RouteDirectResponseMultiError, or nil if none found. +func (m *RouteDirectResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *RouteDirectResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Status + + // no validation rules for Body + + if len(errors) > 0 { + return RouteDirectResponseMultiError(errors) + } + + return nil +} + +// RouteDirectResponseMultiError is an error wrapping multiple validation +// errors returned by RouteDirectResponse.ValidateAll() if the designated +// constraints aren't met. +type RouteDirectResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m RouteDirectResponseMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m RouteDirectResponseMultiError) AllErrors() []error { return m } + +// RouteDirectResponseValidationError is the validation error returned by +// RouteDirectResponse.Validate if the designated constraints aren't met. +type RouteDirectResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteDirectResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteDirectResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteDirectResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteDirectResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteDirectResponseValidationError) ErrorName() string { + return "RouteDirectResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteDirectResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteDirectResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteDirectResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteDirectResponseValidationError{} + +// Validate checks the field values on JwtGroupsFilter with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *JwtGroupsFilter) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on JwtGroupsFilter with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// JwtGroupsFilterMultiError, or nil if none found. +func (m *JwtGroupsFilter) ValidateAll() error { + return m.validate(true) +} + +func (m *JwtGroupsFilter) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.InferFromPpl != nil { + // no validation rules for InferFromPpl + } + + if len(errors) > 0 { + return JwtGroupsFilterMultiError(errors) + } + + return nil +} + +// JwtGroupsFilterMultiError is an error wrapping multiple validation errors +// returned by JwtGroupsFilter.ValidateAll() if the designated constraints +// aren't met. +type JwtGroupsFilterMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m JwtGroupsFilterMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m JwtGroupsFilterMultiError) AllErrors() []error { return m } + +// JwtGroupsFilterValidationError is the validation error returned by +// JwtGroupsFilter.Validate if the designated constraints aren't met. +type JwtGroupsFilterValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e JwtGroupsFilterValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e JwtGroupsFilterValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e JwtGroupsFilterValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e JwtGroupsFilterValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e JwtGroupsFilterValidationError) ErrorName() string { return "JwtGroupsFilterValidationError" } + +// Error satisfies the builtin error interface +func (e JwtGroupsFilterValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sJwtGroupsFilter.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = JwtGroupsFilterValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = JwtGroupsFilterValidationError{} + +// Validate checks the field values on Route with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Route) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Route with the rules defined in the +// proto definition for this message. If any rules are violated, the result is +// a list of violation errors wrapped in RouteMultiError, or nil if none found. +func (m *Route) ValidateAll() error { + return m.validate(true) +} + +func (m *Route) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for NamespaceId + + if all { + switch v := interface{}(m.GetCreatedAt()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteValidationError{ + field: "CreatedAt", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteValidationError{ + field: "CreatedAt", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCreatedAt()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "CreatedAt", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetModifiedAt()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteValidationError{ + field: "ModifiedAt", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteValidationError{ + field: "ModifiedAt", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetModifiedAt()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "ModifiedAt", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetDeletedAt()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteValidationError{ + field: "DeletedAt", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteValidationError{ + field: "DeletedAt", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetDeletedAt()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "DeletedAt", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for Name + + // no validation rules for StatName + + // no validation rules for From + + if all { + switch v := interface{}(m.GetRedirect()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteValidationError{ + field: "Redirect", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteValidationError{ + field: "Redirect", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRedirect()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "Redirect", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetResponse()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteValidationError{ + field: "Response", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteValidationError{ + field: "Response", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetResponse()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "Response", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for SetRequestHeaders + + // no validation rules for SetResponseHeaders + + for idx, item := range m.GetRewriteResponseHeaders() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteValidationError{ + field: fmt.Sprintf("RewriteResponseHeaders[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteValidationError{ + field: fmt.Sprintf("RewriteResponseHeaders[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: fmt.Sprintf("RewriteResponseHeaders[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for EnableGoogleCloudServerlessAuthentication + + // no validation rules for JwtIssuerFormat + + if all { + switch v := interface{}(m.GetJwtGroupsFilter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteValidationError{ + field: "JwtGroupsFilter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteValidationError{ + field: "JwtGroupsFilter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetJwtGroupsFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "JwtGroupsFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for ShowErrorDetails + + // no validation rules for OriginatorId + + // no validation rules for NamespaceName + + for idx, item := range m.GetHealthChecks() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteValidationError{ + field: fmt.Sprintf("HealthChecks[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteValidationError{ + field: fmt.Sprintf("HealthChecks[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: fmt.Sprintf("HealthChecks[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.Description != nil { + // no validation rules for Description + } + + if m.LogoUrl != nil { + // no validation rules for LogoUrl + } + + if m.Prefix != nil { + // no validation rules for Prefix + } + + if m.Path != nil { + // no validation rules for Path + } + + if m.Regex != nil { + // no validation rules for Regex + } + + if m.PrefixRewrite != nil { + // no validation rules for PrefixRewrite + } + + if m.RegexRewritePattern != nil { + // no validation rules for RegexRewritePattern + } + + if m.RegexRewriteSubstitution != nil { + // no validation rules for RegexRewriteSubstitution + } + + if m.HostRewrite != nil { + // no validation rules for HostRewrite + } + + if m.HostRewriteHeader != nil { + // no validation rules for HostRewriteHeader + } + + if m.HostPathRegexRewritePattern != nil { + // no validation rules for HostPathRegexRewritePattern + } + + if m.HostPathRegexRewriteSubstitution != nil { + // no validation rules for HostPathRegexRewriteSubstitution + } + + if m.RegexPriorityOrder != nil { + // no validation rules for RegexPriorityOrder + } + + if m.Timeout != nil { + + if all { + switch v := interface{}(m.GetTimeout()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteValidationError{ + field: "Timeout", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteValidationError{ + field: "Timeout", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "Timeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.IdleTimeout != nil { + + if all { + switch v := interface{}(m.GetIdleTimeout()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteValidationError{ + field: "IdleTimeout", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteValidationError{ + field: "IdleTimeout", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetIdleTimeout()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "IdleTimeout", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.AllowWebsockets != nil { + // no validation rules for AllowWebsockets + } + + if m.AllowSpdy != nil { + // no validation rules for AllowSpdy + } + + if m.TlsSkipVerify != nil { + // no validation rules for TlsSkipVerify + } + + if m.TlsUpstreamServerName != nil { + // no validation rules for TlsUpstreamServerName + } + + if m.TlsDownstreamServerName != nil { + // no validation rules for TlsDownstreamServerName + } + + if m.TlsCustomCaKeyPairId != nil { + // no validation rules for TlsCustomCaKeyPairId + } + + if m.TlsClientKeyPairId != nil { + // no validation rules for TlsClientKeyPairId + } + + if m.TlsDownstreamClientCaKeyPairId != nil { + // no validation rules for TlsDownstreamClientCaKeyPairId + } + + if m.TlsUpstreamAllowRenegotiation != nil { + // no validation rules for TlsUpstreamAllowRenegotiation + } + + if m.PreserveHostHeader != nil { + // no validation rules for PreserveHostHeader + } + + if m.PassIdentityHeaders != nil { + // no validation rules for PassIdentityHeaders + } + + if m.KubernetesServiceAccountToken != nil { + // no validation rules for KubernetesServiceAccountToken + } + + if m.KubernetesServiceAccountTokenFile != nil { + // no validation rules for KubernetesServiceAccountTokenFile + } + + if m.BearerTokenFormat != nil { + // no validation rules for BearerTokenFormat + } + + if m.IdpClientId != nil { + // no validation rules for IdpClientId + } + + if m.IdpClientSecret != nil { + // no validation rules for IdpClientSecret + } + + if m.IdpAccessTokenAllowedAudiences != nil { + + if all { + switch v := interface{}(m.GetIdpAccessTokenAllowedAudiences()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteValidationError{ + field: "IdpAccessTokenAllowedAudiences", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteValidationError{ + field: "IdpAccessTokenAllowedAudiences", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetIdpAccessTokenAllowedAudiences()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteValidationError{ + field: "IdpAccessTokenAllowedAudiences", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.LoadBalancingPolicy != nil { + + if _, ok := LoadBalancingPolicy_name[int32(m.GetLoadBalancingPolicy())]; !ok { + err := RouteValidationError{ + field: "LoadBalancingPolicy", + reason: "value must be one of the defined enum values", + } + if !all { + return err + } + errors = append(errors, err) + } + + } + + if len(errors) > 0 { + return RouteMultiError(errors) + } + + return nil +} + +// RouteMultiError is an error wrapping multiple validation errors returned by +// Route.ValidateAll() if the designated constraints aren't met. +type RouteMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m RouteMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m RouteMultiError) AllErrors() []error { return m } + +// RouteValidationError is the validation error returned by Route.Validate if +// the designated constraints aren't met. +type RouteValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteValidationError) ErrorName() string { return "RouteValidationError" } + +// Error satisfies the builtin error interface +func (e RouteValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRoute.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteValidationError{} + +// Validate checks the field values on RouteWithPolicies with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *RouteWithPolicies) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on RouteWithPolicies with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// RouteWithPoliciesMultiError, or nil if none found. +func (m *RouteWithPolicies) ValidateAll() error { + return m.validate(true) +} + +func (m *RouteWithPolicies) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetRoute()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteWithPoliciesValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteWithPoliciesValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRoute()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteWithPoliciesValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetPolicies() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RouteWithPoliciesValidationError{ + field: fmt.Sprintf("Policies[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RouteWithPoliciesValidationError{ + field: fmt.Sprintf("Policies[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RouteWithPoliciesValidationError{ + field: fmt.Sprintf("Policies[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return RouteWithPoliciesMultiError(errors) + } + + return nil +} + +// RouteWithPoliciesMultiError is an error wrapping multiple validation errors +// returned by RouteWithPolicies.ValidateAll() if the designated constraints +// aren't met. +type RouteWithPoliciesMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m RouteWithPoliciesMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m RouteWithPoliciesMultiError) AllErrors() []error { return m } + +// RouteWithPoliciesValidationError is the validation error returned by +// RouteWithPolicies.Validate if the designated constraints aren't met. +type RouteWithPoliciesValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RouteWithPoliciesValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RouteWithPoliciesValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RouteWithPoliciesValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RouteWithPoliciesValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RouteWithPoliciesValidationError) ErrorName() string { + return "RouteWithPoliciesValidationError" +} + +// Error satisfies the builtin error interface +func (e RouteWithPoliciesValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRouteWithPolicies.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RouteWithPoliciesValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RouteWithPoliciesValidationError{} + +// Validate checks the field values on DeleteRouteRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *DeleteRouteRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteRouteRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DeleteRouteRequestMultiError, or nil if none found. +func (m *DeleteRouteRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteRouteRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + if len(errors) > 0 { + return DeleteRouteRequestMultiError(errors) + } + + return nil +} + +// DeleteRouteRequestMultiError is an error wrapping multiple validation errors +// returned by DeleteRouteRequest.ValidateAll() if the designated constraints +// aren't met. +type DeleteRouteRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteRouteRequestMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeleteRouteRequestMultiError) AllErrors() []error { return m } + +// DeleteRouteRequestValidationError is the validation error returned by +// DeleteRouteRequest.Validate if the designated constraints aren't met. +type DeleteRouteRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteRouteRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteRouteRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteRouteRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteRouteRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteRouteRequestValidationError) ErrorName() string { + return "DeleteRouteRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteRouteRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeleteRouteRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteRouteRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteRouteRequestValidationError{} + +// Validate checks the field values on DeleteRouteResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *DeleteRouteResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteRouteResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DeleteRouteResponseMultiError, or nil if none found. +func (m *DeleteRouteResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteRouteResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return DeleteRouteResponseMultiError(errors) + } + + return nil +} + +// DeleteRouteResponseMultiError is an error wrapping multiple validation +// errors returned by DeleteRouteResponse.ValidateAll() if the designated +// constraints aren't met. +type DeleteRouteResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteRouteResponseMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeleteRouteResponseMultiError) AllErrors() []error { return m } + +// DeleteRouteResponseValidationError is the validation error returned by +// DeleteRouteResponse.Validate if the designated constraints aren't met. +type DeleteRouteResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteRouteResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteRouteResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteRouteResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteRouteResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteRouteResponseValidationError) ErrorName() string { + return "DeleteRouteResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteRouteResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeleteRouteResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteRouteResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteRouteResponseValidationError{} + +// Validate checks the field values on DeleteRoutesRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *DeleteRoutesRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteRoutesRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DeleteRoutesRequestMultiError, or nil if none found. +func (m *DeleteRoutesRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteRoutesRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return DeleteRoutesRequestMultiError(errors) + } + + return nil +} + +// DeleteRoutesRequestMultiError is an error wrapping multiple validation +// errors returned by DeleteRoutesRequest.ValidateAll() if the designated +// constraints aren't met. +type DeleteRoutesRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteRoutesRequestMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeleteRoutesRequestMultiError) AllErrors() []error { return m } + +// DeleteRoutesRequestValidationError is the validation error returned by +// DeleteRoutesRequest.Validate if the designated constraints aren't met. +type DeleteRoutesRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteRoutesRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteRoutesRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteRoutesRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteRoutesRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteRoutesRequestValidationError) ErrorName() string { + return "DeleteRoutesRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteRoutesRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeleteRoutesRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteRoutesRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteRoutesRequestValidationError{} + +// Validate checks the field values on DeleteRoutesResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *DeleteRoutesResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteRoutesResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DeleteRoutesResponseMultiError, or nil if none found. +func (m *DeleteRoutesResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteRoutesResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return DeleteRoutesResponseMultiError(errors) + } + + return nil +} + +// DeleteRoutesResponseMultiError is an error wrapping multiple validation +// errors returned by DeleteRoutesResponse.ValidateAll() if the designated +// constraints aren't met. +type DeleteRoutesResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteRoutesResponseMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeleteRoutesResponseMultiError) AllErrors() []error { return m } + +// DeleteRoutesResponseValidationError is the validation error returned by +// DeleteRoutesResponse.Validate if the designated constraints aren't met. +type DeleteRoutesResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteRoutesResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteRoutesResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteRoutesResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteRoutesResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteRoutesResponseValidationError) ErrorName() string { + return "DeleteRoutesResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteRoutesResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeleteRoutesResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteRoutesResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteRoutesResponseValidationError{} + +// Validate checks the field values on GetRouteRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *GetRouteRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetRouteRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// GetRouteRequestMultiError, or nil if none found. +func (m *GetRouteRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *GetRouteRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + if len(errors) > 0 { + return GetRouteRequestMultiError(errors) + } + + return nil +} + +// GetRouteRequestMultiError is an error wrapping multiple validation errors +// returned by GetRouteRequest.ValidateAll() if the designated constraints +// aren't met. +type GetRouteRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetRouteRequestMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetRouteRequestMultiError) AllErrors() []error { return m } + +// GetRouteRequestValidationError is the validation error returned by +// GetRouteRequest.Validate if the designated constraints aren't met. +type GetRouteRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetRouteRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetRouteRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetRouteRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetRouteRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetRouteRequestValidationError) ErrorName() string { return "GetRouteRequestValidationError" } + +// Error satisfies the builtin error interface +func (e GetRouteRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetRouteRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetRouteRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetRouteRequestValidationError{} + +// Validate checks the field values on GetRouteResponse with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *GetRouteResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetRouteResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// GetRouteResponseMultiError, or nil if none found. +func (m *GetRouteResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *GetRouteResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetRoute()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GetRouteResponseValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GetRouteResponseValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRoute()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GetRouteResponseValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return GetRouteResponseMultiError(errors) + } + + return nil +} + +// GetRouteResponseMultiError is an error wrapping multiple validation errors +// returned by GetRouteResponse.ValidateAll() if the designated constraints +// aren't met. +type GetRouteResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetRouteResponseMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetRouteResponseMultiError) AllErrors() []error { return m } + +// GetRouteResponseValidationError is the validation error returned by +// GetRouteResponse.Validate if the designated constraints aren't met. +type GetRouteResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetRouteResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetRouteResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetRouteResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetRouteResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetRouteResponseValidationError) ErrorName() string { return "GetRouteResponseValidationError" } + +// Error satisfies the builtin error interface +func (e GetRouteResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetRouteResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetRouteResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetRouteResponseValidationError{} + +// Validate checks the field values on ListRoutesRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *ListRoutesRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListRoutesRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListRoutesRequestMultiError, or nil if none found. +func (m *ListRoutesRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ListRoutesRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Namespace + + if m.Query != nil { + // no validation rules for Query + } + + if m.Offset != nil { + // no validation rules for Offset + } + + if m.Limit != nil { + // no validation rules for Limit + } + + if m.OrderBy != nil { + // no validation rules for OrderBy + } + + if len(errors) > 0 { + return ListRoutesRequestMultiError(errors) + } + + return nil +} + +// ListRoutesRequestMultiError is an error wrapping multiple validation errors +// returned by ListRoutesRequest.ValidateAll() if the designated constraints +// aren't met. +type ListRoutesRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListRoutesRequestMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListRoutesRequestMultiError) AllErrors() []error { return m } + +// ListRoutesRequestValidationError is the validation error returned by +// ListRoutesRequest.Validate if the designated constraints aren't met. +type ListRoutesRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListRoutesRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListRoutesRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListRoutesRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListRoutesRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListRoutesRequestValidationError) ErrorName() string { + return "ListRoutesRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ListRoutesRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListRoutesRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListRoutesRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListRoutesRequestValidationError{} + +// Validate checks the field values on ListRoutesResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListRoutesResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListRoutesResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListRoutesResponseMultiError, or nil if none found. +func (m *ListRoutesResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ListRoutesResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetRoutes() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListRoutesResponseValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListRoutesResponseValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListRoutesResponseValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for TotalCount + + if len(errors) > 0 { + return ListRoutesResponseMultiError(errors) + } + + return nil +} + +// ListRoutesResponseMultiError is an error wrapping multiple validation errors +// returned by ListRoutesResponse.ValidateAll() if the designated constraints +// aren't met. +type ListRoutesResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListRoutesResponseMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListRoutesResponseMultiError) AllErrors() []error { return m } + +// ListRoutesResponseValidationError is the validation error returned by +// ListRoutesResponse.Validate if the designated constraints aren't met. +type ListRoutesResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListRoutesResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListRoutesResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListRoutesResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListRoutesResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListRoutesResponseValidationError) ErrorName() string { + return "ListRoutesResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ListRoutesResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListRoutesResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListRoutesResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListRoutesResponseValidationError{} + +// Validate checks the field values on LoadRoutesRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *LoadRoutesRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on LoadRoutesRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// LoadRoutesRequestMultiError, or nil if none found. +func (m *LoadRoutesRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *LoadRoutesRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Name + + // no validation rules for Contents + + if len(errors) > 0 { + return LoadRoutesRequestMultiError(errors) + } + + return nil +} + +// LoadRoutesRequestMultiError is an error wrapping multiple validation errors +// returned by LoadRoutesRequest.ValidateAll() if the designated constraints +// aren't met. +type LoadRoutesRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m LoadRoutesRequestMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m LoadRoutesRequestMultiError) AllErrors() []error { return m } + +// LoadRoutesRequestValidationError is the validation error returned by +// LoadRoutesRequest.Validate if the designated constraints aren't met. +type LoadRoutesRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e LoadRoutesRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e LoadRoutesRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e LoadRoutesRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e LoadRoutesRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e LoadRoutesRequestValidationError) ErrorName() string { + return "LoadRoutesRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e LoadRoutesRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sLoadRoutesRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = LoadRoutesRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = LoadRoutesRequestValidationError{} + +// Validate checks the field values on LoadRoutesResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *LoadRoutesResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on LoadRoutesResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// LoadRoutesResponseMultiError, or nil if none found. +func (m *LoadRoutesResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *LoadRoutesResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetRoutes() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, LoadRoutesResponseValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, LoadRoutesResponseValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return LoadRoutesResponseValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return LoadRoutesResponseMultiError(errors) + } + + return nil +} + +// LoadRoutesResponseMultiError is an error wrapping multiple validation errors +// returned by LoadRoutesResponse.ValidateAll() if the designated constraints +// aren't met. +type LoadRoutesResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m LoadRoutesResponseMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m LoadRoutesResponseMultiError) AllErrors() []error { return m } + +// LoadRoutesResponseValidationError is the validation error returned by +// LoadRoutesResponse.Validate if the designated constraints aren't met. +type LoadRoutesResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e LoadRoutesResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e LoadRoutesResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e LoadRoutesResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e LoadRoutesResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e LoadRoutesResponseValidationError) ErrorName() string { + return "LoadRoutesResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e LoadRoutesResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sLoadRoutesResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = LoadRoutesResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = LoadRoutesResponseValidationError{} + +// Validate checks the field values on SetRouteRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *SetRouteRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on SetRouteRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// SetRouteRequestMultiError, or nil if none found. +func (m *SetRouteRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *SetRouteRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetRoute()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, SetRouteRequestValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, SetRouteRequestValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRoute()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SetRouteRequestValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return SetRouteRequestMultiError(errors) + } + + return nil +} + +// SetRouteRequestMultiError is an error wrapping multiple validation errors +// returned by SetRouteRequest.ValidateAll() if the designated constraints +// aren't met. +type SetRouteRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m SetRouteRequestMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m SetRouteRequestMultiError) AllErrors() []error { return m } + +// SetRouteRequestValidationError is the validation error returned by +// SetRouteRequest.Validate if the designated constraints aren't met. +type SetRouteRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SetRouteRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SetRouteRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SetRouteRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SetRouteRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SetRouteRequestValidationError) ErrorName() string { return "SetRouteRequestValidationError" } + +// Error satisfies the builtin error interface +func (e SetRouteRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSetRouteRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SetRouteRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SetRouteRequestValidationError{} + +// Validate checks the field values on SetRouteResponse with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *SetRouteResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on SetRouteResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// SetRouteResponseMultiError, or nil if none found. +func (m *SetRouteResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *SetRouteResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetRoute()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, SetRouteResponseValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, SetRouteResponseValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRoute()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SetRouteResponseValidationError{ + field: "Route", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return SetRouteResponseMultiError(errors) + } + + return nil +} + +// SetRouteResponseMultiError is an error wrapping multiple validation errors +// returned by SetRouteResponse.ValidateAll() if the designated constraints +// aren't met. +type SetRouteResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m SetRouteResponseMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m SetRouteResponseMultiError) AllErrors() []error { return m } + +// SetRouteResponseValidationError is the validation error returned by +// SetRouteResponse.Validate if the designated constraints aren't met. +type SetRouteResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SetRouteResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SetRouteResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SetRouteResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SetRouteResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SetRouteResponseValidationError) ErrorName() string { return "SetRouteResponseValidationError" } + +// Error satisfies the builtin error interface +func (e SetRouteResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSetRouteResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SetRouteResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SetRouteResponseValidationError{} + +// Validate checks the field values on SetRoutesRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *SetRoutesRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on SetRoutesRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// SetRoutesRequestMultiError, or nil if none found. +func (m *SetRoutesRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *SetRoutesRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetRoutes() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, SetRoutesRequestValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, SetRoutesRequestValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SetRoutesRequestValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return SetRoutesRequestMultiError(errors) + } + + return nil +} + +// SetRoutesRequestMultiError is an error wrapping multiple validation errors +// returned by SetRoutesRequest.ValidateAll() if the designated constraints +// aren't met. +type SetRoutesRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m SetRoutesRequestMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m SetRoutesRequestMultiError) AllErrors() []error { return m } + +// SetRoutesRequestValidationError is the validation error returned by +// SetRoutesRequest.Validate if the designated constraints aren't met. +type SetRoutesRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SetRoutesRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SetRoutesRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SetRoutesRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SetRoutesRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SetRoutesRequestValidationError) ErrorName() string { return "SetRoutesRequestValidationError" } + +// Error satisfies the builtin error interface +func (e SetRoutesRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSetRoutesRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SetRoutesRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SetRoutesRequestValidationError{} + +// Validate checks the field values on SetRoutesResponse with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *SetRoutesResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on SetRoutesResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// SetRoutesResponseMultiError, or nil if none found. +func (m *SetRoutesResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *SetRoutesResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetRoutes() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, SetRoutesResponseValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, SetRoutesResponseValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SetRoutesResponseValidationError{ + field: fmt.Sprintf("Routes[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return SetRoutesResponseMultiError(errors) + } + + return nil +} + +// SetRoutesResponseMultiError is an error wrapping multiple validation errors +// returned by SetRoutesResponse.ValidateAll() if the designated constraints +// aren't met. +type SetRoutesResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m SetRoutesResponseMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m SetRoutesResponseMultiError) AllErrors() []error { return m } + +// SetRoutesResponseValidationError is the validation error returned by +// SetRoutesResponse.Validate if the designated constraints aren't met. +type SetRoutesResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SetRoutesResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SetRoutesResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SetRoutesResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SetRoutesResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SetRoutesResponseValidationError) ErrorName() string { + return "SetRoutesResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e SetRoutesResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSetRoutesResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SetRoutesResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SetRoutesResponseValidationError{} + +// Validate checks the field values on MoveRoutesRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *MoveRoutesRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MoveRoutesRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// MoveRoutesRequestMultiError, or nil if none found. +func (m *MoveRoutesRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *MoveRoutesRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for NewNamespaceId + + if len(errors) > 0 { + return MoveRoutesRequestMultiError(errors) + } + + return nil +} + +// MoveRoutesRequestMultiError is an error wrapping multiple validation errors +// returned by MoveRoutesRequest.ValidateAll() if the designated constraints +// aren't met. +type MoveRoutesRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MoveRoutesRequestMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m MoveRoutesRequestMultiError) AllErrors() []error { return m } + +// MoveRoutesRequestValidationError is the validation error returned by +// MoveRoutesRequest.Validate if the designated constraints aren't met. +type MoveRoutesRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MoveRoutesRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MoveRoutesRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MoveRoutesRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MoveRoutesRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MoveRoutesRequestValidationError) ErrorName() string { + return "MoveRoutesRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e MoveRoutesRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMoveRoutesRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MoveRoutesRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MoveRoutesRequestValidationError{} + +// Validate checks the field values on MoveRoutesResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *MoveRoutesResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MoveRoutesResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// MoveRoutesResponseMultiError, or nil if none found. +func (m *MoveRoutesResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *MoveRoutesResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return MoveRoutesResponseMultiError(errors) + } + + return nil +} + +// MoveRoutesResponseMultiError is an error wrapping multiple validation errors +// returned by MoveRoutesResponse.ValidateAll() if the designated constraints +// aren't met. +type MoveRoutesResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MoveRoutesResponseMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m MoveRoutesResponseMultiError) AllErrors() []error { return m } + +// MoveRoutesResponseValidationError is the validation error returned by +// MoveRoutesResponse.Validate if the designated constraints aren't met. +type MoveRoutesResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MoveRoutesResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MoveRoutesResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MoveRoutesResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MoveRoutesResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MoveRoutesResponseValidationError) ErrorName() string { + return "MoveRoutesResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e MoveRoutesResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMoveRoutesResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MoveRoutesResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MoveRoutesResponseValidationError{} + +// Validate checks the field values on Route_StringList with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *Route_StringList) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Route_StringList with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// Route_StringListMultiError, or nil if none found. +func (m *Route_StringList) ValidateAll() error { + return m.validate(true) +} + +func (m *Route_StringList) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return Route_StringListMultiError(errors) + } + + return nil +} + +// Route_StringListMultiError is an error wrapping multiple validation errors +// returned by Route_StringList.ValidateAll() if the designated constraints +// aren't met. +type Route_StringListMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m Route_StringListMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m Route_StringListMultiError) AllErrors() []error { return m } + +// Route_StringListValidationError is the validation error returned by +// Route_StringList.Validate if the designated constraints aren't met. +type Route_StringListValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Route_StringListValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Route_StringListValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Route_StringListValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Route_StringListValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Route_StringListValidationError) ErrorName() string { return "Route_StringListValidationError" } + +// Error satisfies the builtin error interface +func (e Route_StringListValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRoute_StringList.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Route_StringListValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Route_StringListValidationError{} diff --git a/pb/tsdb.pb.go b/pb/tsdb.pb.go deleted file mode 100644 index 67a3d02..0000000 --- a/pb/tsdb.pb.go +++ /dev/null @@ -1,3587 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.34.2 -// protoc v3.21.7 -// source: tsdb.proto - -package pb - -import ( - _ "github.com/envoyproxy/protoc-gen-validate/validate" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - durationpb "google.golang.org/protobuf/types/known/durationpb" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// Rate defines time-sampled values -type Rate int32 - -const ( - // undefined means this is an actual value that is not sampled - Rate_NONE Rate = 0 - // value represents per second - Rate_PER_SECOND Rate = 1 -) - -// Enum value maps for Rate. -var ( - Rate_name = map[int32]string{ - 0: "NONE", - 1: "PER_SECOND", - } - Rate_value = map[string]int32{ - "NONE": 0, - "PER_SECOND": 1, - } -) - -func (x Rate) Enum() *Rate { - p := new(Rate) - *p = x - return p -} - -func (x Rate) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (Rate) Descriptor() protoreflect.EnumDescriptor { - return file_tsdb_proto_enumTypes[0].Descriptor() -} - -func (Rate) Type() protoreflect.EnumType { - return &file_tsdb_proto_enumTypes[0] -} - -func (x Rate) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use Rate.Descriptor instead. -func (Rate) EnumDescriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{0} -} - -// see -// https://www.envoyproxy.io/docs/envoy/latest/configuration/upstream/cluster_manager/cluster_stats -type Metric int32 - -const ( - Metric_UNDEFINED_METRIC_DO_NOT_USE Metric = 0 - // request counter - Metric_REQUESTS Metric = 1 - // request rate (per second) - Metric_REQUESTS_RATE Metric = 2 - // duration of the request in milliseconds - this is a histogram counter and - // requires percentile - Metric_REQUESTS_DURATION_MS Metric = 3 - // returns distribution of response codes - Metric_RESPONSE_CODES Metric = 4 - // Total responses from the authz filter (note that does not imply that - // requests were allowed to pass thru) - Metric_AUTHZ_OK Metric = 20 - // Total responses from the authorizations service that were to deny the - // traffic. - Metric_AUTHZ_DENIED Metric = 21 - // Total errors contacting the external service. - Metric_AUTHZ_ERROR Metric = 22 - // Total requests that are allowed without calling external services due to - // the filter is disabled. - Metric_AUTHZ_DISABLED Metric = 23 - // Total requests that were error(s) but were allowed through because of - // failure_mode_allow set to true. - Metric_AUTHZ_FAILURE_MODE_ALLOWED Metric = 24 - // Current cluster healthy total (inclusive of both health checking and - // outlier detection) - Metric_MEMBERSHIP_HEALTHY Metric = 30 - // Current cluster degraded total - Metric_MEMBERSHIP_DEGRADED Metric = 31 - // Current cluster excluded total - Metric_MEMBERSHIP_EXCLUDED Metric = 32 - // Current cluster membership total - Metric_MEMBERSHIP_TOTAL Metric = 33 - // bytes received - upstream_cx_rx_bytes_total - Metric_RX_BYTES Metric = 40 - // bytes sent - upstream_cx_tx_bytes_total - Metric_TX_BYTES Metric = 41 - // total of rx + tx bytes - Metric_TOTAL_BYTES Metric = 42 - // system metrics - Metric_MEMORY_ALLOCATED Metric = 51 - Metric_CPU_USAGE Metric = 52 - // identity provider specific - Metric_IDP_LAST_REFRESH_TIMESTAMP Metric = 60 - Metric_IDP_LAST_USER_REFRESH_SUCCESS_TIMESTAMP Metric = 100 - Metric_IDP_LAST_USER_REFRESH_ERROR_TIMESTAMP Metric = 101 - Metric_IDP_LAST_USER_REFRESH_ERROR Metric = 102 - Metric_IDP_LAST_USER_REFRESH_SUCCESS Metric = 103 - Metric_IDP_LAST_USER_GROUP_REFRESH_SUCCESS_TIMESTAMP Metric = 104 - Metric_IDP_LAST_USER_GROUP_REFRESH_ERROR_TIMESTAMP Metric = 105 - Metric_IDP_LAST_USER_GROUP_REFRESH_ERROR Metric = 106 - Metric_IDP_LAST_USER_GROUP_REFRESH_SUCCESS Metric = 107 - Metric_IDP_LAST_SESSION_REFRESH_SUCCESS_TIMESTAMP Metric = 108 - Metric_IDP_LAST_SESSION_REFRESH_ERROR_TIMESTAMP Metric = 109 - Metric_IDP_LAST_SESSION_REFRESH_ERROR Metric = 110 - Metric_IDP_LAST_SESSION_REFRESH_SUCCESS Metric = 111 - // configuration related - Metric_CONFIG_LAST_RELOAD_SUCCESS_TIMESTAMP Metric = 70 - Metric_BUILD_INFO Metric = 71 - Metric_CONFIG_CHECKSUM_LOCAL Metric = 72 - Metric_CONFIG_CHECKSUM_DATABROKER Metric = 73 - Metric_CONFIG_VERSION Metric = 74 - Metric_CONFIG_ERRORS Metric = 75 - Metric_CONFIG_CONSOLE_VERSION Metric = 76 - // prometheus metrics - Metric_PROMETHEUS_STORAGE_BYTES Metric = 80 - // console metrics - Metric_MONTHLY_ACTIVE_USERS_THRESHOLD Metric = 90 - Metric_MONTHLY_ACTIVE_USERS Metric = 91 - // http requests completed (not necessarily with code=200) - Metric_HTTP_REQUESTS_COMPLETED Metric = 120 - // http requests failed due to network or dns error - Metric_HTTP_REQUESTS_FAILED Metric = 121 - // http requests successfully completed (with code=200 or 304 (unchanged)) - Metric_HTTP_REQUESTS_SUCCESS Metric = 122 - // http requests either failed or having codes that are not 200 or 304 - Metric_HTTP_REQUESTS_ERROR Metric = 123 - // http average response body size in bytes - Metric_HTTP_AVG_RESPONSE_SIZE_BYTES Metric = 124 -) - -// Enum value maps for Metric. -var ( - Metric_name = map[int32]string{ - 0: "UNDEFINED_METRIC_DO_NOT_USE", - 1: "REQUESTS", - 2: "REQUESTS_RATE", - 3: "REQUESTS_DURATION_MS", - 4: "RESPONSE_CODES", - 20: "AUTHZ_OK", - 21: "AUTHZ_DENIED", - 22: "AUTHZ_ERROR", - 23: "AUTHZ_DISABLED", - 24: "AUTHZ_FAILURE_MODE_ALLOWED", - 30: "MEMBERSHIP_HEALTHY", - 31: "MEMBERSHIP_DEGRADED", - 32: "MEMBERSHIP_EXCLUDED", - 33: "MEMBERSHIP_TOTAL", - 40: "RX_BYTES", - 41: "TX_BYTES", - 42: "TOTAL_BYTES", - 51: "MEMORY_ALLOCATED", - 52: "CPU_USAGE", - 60: "IDP_LAST_REFRESH_TIMESTAMP", - 100: "IDP_LAST_USER_REFRESH_SUCCESS_TIMESTAMP", - 101: "IDP_LAST_USER_REFRESH_ERROR_TIMESTAMP", - 102: "IDP_LAST_USER_REFRESH_ERROR", - 103: "IDP_LAST_USER_REFRESH_SUCCESS", - 104: "IDP_LAST_USER_GROUP_REFRESH_SUCCESS_TIMESTAMP", - 105: "IDP_LAST_USER_GROUP_REFRESH_ERROR_TIMESTAMP", - 106: "IDP_LAST_USER_GROUP_REFRESH_ERROR", - 107: "IDP_LAST_USER_GROUP_REFRESH_SUCCESS", - 108: "IDP_LAST_SESSION_REFRESH_SUCCESS_TIMESTAMP", - 109: "IDP_LAST_SESSION_REFRESH_ERROR_TIMESTAMP", - 110: "IDP_LAST_SESSION_REFRESH_ERROR", - 111: "IDP_LAST_SESSION_REFRESH_SUCCESS", - 70: "CONFIG_LAST_RELOAD_SUCCESS_TIMESTAMP", - 71: "BUILD_INFO", - 72: "CONFIG_CHECKSUM_LOCAL", - 73: "CONFIG_CHECKSUM_DATABROKER", - 74: "CONFIG_VERSION", - 75: "CONFIG_ERRORS", - 76: "CONFIG_CONSOLE_VERSION", - 80: "PROMETHEUS_STORAGE_BYTES", - 90: "MONTHLY_ACTIVE_USERS_THRESHOLD", - 91: "MONTHLY_ACTIVE_USERS", - 120: "HTTP_REQUESTS_COMPLETED", - 121: "HTTP_REQUESTS_FAILED", - 122: "HTTP_REQUESTS_SUCCESS", - 123: "HTTP_REQUESTS_ERROR", - 124: "HTTP_AVG_RESPONSE_SIZE_BYTES", - } - Metric_value = map[string]int32{ - "UNDEFINED_METRIC_DO_NOT_USE": 0, - "REQUESTS": 1, - "REQUESTS_RATE": 2, - "REQUESTS_DURATION_MS": 3, - "RESPONSE_CODES": 4, - "AUTHZ_OK": 20, - "AUTHZ_DENIED": 21, - "AUTHZ_ERROR": 22, - "AUTHZ_DISABLED": 23, - "AUTHZ_FAILURE_MODE_ALLOWED": 24, - "MEMBERSHIP_HEALTHY": 30, - "MEMBERSHIP_DEGRADED": 31, - "MEMBERSHIP_EXCLUDED": 32, - "MEMBERSHIP_TOTAL": 33, - "RX_BYTES": 40, - "TX_BYTES": 41, - "TOTAL_BYTES": 42, - "MEMORY_ALLOCATED": 51, - "CPU_USAGE": 52, - "IDP_LAST_REFRESH_TIMESTAMP": 60, - "IDP_LAST_USER_REFRESH_SUCCESS_TIMESTAMP": 100, - "IDP_LAST_USER_REFRESH_ERROR_TIMESTAMP": 101, - "IDP_LAST_USER_REFRESH_ERROR": 102, - "IDP_LAST_USER_REFRESH_SUCCESS": 103, - "IDP_LAST_USER_GROUP_REFRESH_SUCCESS_TIMESTAMP": 104, - "IDP_LAST_USER_GROUP_REFRESH_ERROR_TIMESTAMP": 105, - "IDP_LAST_USER_GROUP_REFRESH_ERROR": 106, - "IDP_LAST_USER_GROUP_REFRESH_SUCCESS": 107, - "IDP_LAST_SESSION_REFRESH_SUCCESS_TIMESTAMP": 108, - "IDP_LAST_SESSION_REFRESH_ERROR_TIMESTAMP": 109, - "IDP_LAST_SESSION_REFRESH_ERROR": 110, - "IDP_LAST_SESSION_REFRESH_SUCCESS": 111, - "CONFIG_LAST_RELOAD_SUCCESS_TIMESTAMP": 70, - "BUILD_INFO": 71, - "CONFIG_CHECKSUM_LOCAL": 72, - "CONFIG_CHECKSUM_DATABROKER": 73, - "CONFIG_VERSION": 74, - "CONFIG_ERRORS": 75, - "CONFIG_CONSOLE_VERSION": 76, - "PROMETHEUS_STORAGE_BYTES": 80, - "MONTHLY_ACTIVE_USERS_THRESHOLD": 90, - "MONTHLY_ACTIVE_USERS": 91, - "HTTP_REQUESTS_COMPLETED": 120, - "HTTP_REQUESTS_FAILED": 121, - "HTTP_REQUESTS_SUCCESS": 122, - "HTTP_REQUESTS_ERROR": 123, - "HTTP_AVG_RESPONSE_SIZE_BYTES": 124, - } -) - -func (x Metric) Enum() *Metric { - p := new(Metric) - *p = x - return p -} - -func (x Metric) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (Metric) Descriptor() protoreflect.EnumDescriptor { - return file_tsdb_proto_enumTypes[1].Descriptor() -} - -func (Metric) Type() protoreflect.EnumType { - return &file_tsdb_proto_enumTypes[1] -} - -func (x Metric) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use Metric.Descriptor instead. -func (Metric) EnumDescriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{1} -} - -type Component int32 - -const ( - Component_UNKNOWN_DO_NOT_USE Component = 0 - Component_AUTHENTICATE Component = 1 - Component_AUTHORIZE Component = 2 - Component_DATABROKER Component = 3 - Component_CONSOLE Component = 4 - Component_PROXY Component = 5 - // used when all components are running in the all-in-one mode - Component_ALL_IN_ONE Component = 6 - // Proxy envoy is always reported separately - Component_PROXY_ENVOY Component = 7 - Component_PROMETHEUS Component = 8 -) - -// Enum value maps for Component. -var ( - Component_name = map[int32]string{ - 0: "UNKNOWN_DO_NOT_USE", - 1: "AUTHENTICATE", - 2: "AUTHORIZE", - 3: "DATABROKER", - 4: "CONSOLE", - 5: "PROXY", - 6: "ALL_IN_ONE", - 7: "PROXY_ENVOY", - 8: "PROMETHEUS", - } - Component_value = map[string]int32{ - "UNKNOWN_DO_NOT_USE": 0, - "AUTHENTICATE": 1, - "AUTHORIZE": 2, - "DATABROKER": 3, - "CONSOLE": 4, - "PROXY": 5, - "ALL_IN_ONE": 6, - "PROXY_ENVOY": 7, - "PROMETHEUS": 8, - } -) - -func (x Component) Enum() *Component { - p := new(Component) - *p = x - return p -} - -func (x Component) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (Component) Descriptor() protoreflect.EnumDescriptor { - return file_tsdb_proto_enumTypes[2].Descriptor() -} - -func (Component) Type() protoreflect.EnumType { - return &file_tsdb_proto_enumTypes[2] -} - -func (x Component) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use Component.Descriptor instead. -func (Component) EnumDescriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{2} -} - -type UptimeResponse_Status int32 - -const ( - UptimeResponse_UNDEFINED_STATUS_DO_NOT_USE UptimeResponse_Status = 0 - // fully operational - UptimeResponse_LIVE UptimeResponse_Status = 1 - // no data is available for the period in the prometheus - UptimeResponse_NO_DATA UptimeResponse_Status = 2 - // prometheus is up but the scraping instance is down - UptimeResponse_DOWN UptimeResponse_Status = 3 -) - -// Enum value maps for UptimeResponse_Status. -var ( - UptimeResponse_Status_name = map[int32]string{ - 0: "UNDEFINED_STATUS_DO_NOT_USE", - 1: "LIVE", - 2: "NO_DATA", - 3: "DOWN", - } - UptimeResponse_Status_value = map[string]int32{ - "UNDEFINED_STATUS_DO_NOT_USE": 0, - "LIVE": 1, - "NO_DATA": 2, - "DOWN": 3, - } -) - -func (x UptimeResponse_Status) Enum() *UptimeResponse_Status { - p := new(UptimeResponse_Status) - *p = x - return p -} - -func (x UptimeResponse_Status) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (UptimeResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_tsdb_proto_enumTypes[3].Descriptor() -} - -func (UptimeResponse_Status) Type() protoreflect.EnumType { - return &file_tsdb_proto_enumTypes[3] -} - -func (x UptimeResponse_Status) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use UptimeResponse_Status.Descriptor instead. -func (UptimeResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{21, 0} -} - -type GetStatusResponse_Target_Health int32 - -const ( - GetStatusResponse_Target_TARGET_HEALTH_UNKNOWN GetStatusResponse_Target_Health = 0 - GetStatusResponse_Target_TARGET_HEALTH_UP GetStatusResponse_Target_Health = 1 - GetStatusResponse_Target_TARGET_HEALTH_DOWN GetStatusResponse_Target_Health = 2 -) - -// Enum value maps for GetStatusResponse_Target_Health. -var ( - GetStatusResponse_Target_Health_name = map[int32]string{ - 0: "TARGET_HEALTH_UNKNOWN", - 1: "TARGET_HEALTH_UP", - 2: "TARGET_HEALTH_DOWN", - } - GetStatusResponse_Target_Health_value = map[string]int32{ - "TARGET_HEALTH_UNKNOWN": 0, - "TARGET_HEALTH_UP": 1, - "TARGET_HEALTH_DOWN": 2, - } -) - -func (x GetStatusResponse_Target_Health) Enum() *GetStatusResponse_Target_Health { - p := new(GetStatusResponse_Target_Health) - *p = x - return p -} - -func (x GetStatusResponse_Target_Health) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (GetStatusResponse_Target_Health) Descriptor() protoreflect.EnumDescriptor { - return file_tsdb_proto_enumTypes[4].Descriptor() -} - -func (GetStatusResponse_Target_Health) Type() protoreflect.EnumType { - return &file_tsdb_proto_enumTypes[4] -} - -func (x GetStatusResponse_Target_Health) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use GetStatusResponse_Target_Health.Descriptor instead. -func (GetStatusResponse_Target_Health) EnumDescriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{26, 0, 0} -} - -type Range struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Start time - Start *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` - // End time - End *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` - // Max time between two slices within [start:end] - Step *durationpb.Duration `protobuf:"bytes,3,opt,name=step,proto3" json:"step,omitempty"` -} - -func (x *Range) Reset() { - *x = Range{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Range) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Range) ProtoMessage() {} - -func (x *Range) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Range.ProtoReflect.Descriptor instead. -func (*Range) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{0} -} - -func (x *Range) GetStart() *timestamppb.Timestamp { - if x != nil { - return x.Start - } - return nil -} - -func (x *Range) GetEnd() *timestamppb.Timestamp { - if x != nil { - return x.End - } - return nil -} - -func (x *Range) GetStep() *durationpb.Duration { - if x != nil { - return x.Step - } - return nil -} - -// RouteMatcher may be used to query data for multiple routes -type RouteMatcher struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Matcher: - // - // *RouteMatcher_RouteId - // *RouteMatcher_NamespaceId - // *RouteMatcher_ExtDataSourceId - Matcher isRouteMatcher_Matcher `protobuf_oneof:"matcher"` -} - -func (x *RouteMatcher) Reset() { - *x = RouteMatcher{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RouteMatcher) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RouteMatcher) ProtoMessage() {} - -func (x *RouteMatcher) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RouteMatcher.ProtoReflect.Descriptor instead. -func (*RouteMatcher) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{1} -} - -func (m *RouteMatcher) GetMatcher() isRouteMatcher_Matcher { - if m != nil { - return m.Matcher - } - return nil -} - -func (x *RouteMatcher) GetRouteId() string { - if x, ok := x.GetMatcher().(*RouteMatcher_RouteId); ok { - return x.RouteId - } - return "" -} - -func (x *RouteMatcher) GetNamespaceId() string { - if x, ok := x.GetMatcher().(*RouteMatcher_NamespaceId); ok { - return x.NamespaceId - } - return "" -} - -func (x *RouteMatcher) GetExtDataSourceId() string { - if x, ok := x.GetMatcher().(*RouteMatcher_ExtDataSourceId); ok { - return x.ExtDataSourceId - } - return "" -} - -type isRouteMatcher_Matcher interface { - isRouteMatcher_Matcher() -} - -type RouteMatcher_RouteId struct { - // route database ID - RouteId string `protobuf:"bytes,1,opt,name=route_id,json=routeId,proto3,oneof"` -} - -type RouteMatcher_NamespaceId struct { - // namespace ID - NamespaceId string `protobuf:"bytes,2,opt,name=namespace_id,json=namespaceId,proto3,oneof"` -} - -type RouteMatcher_ExtDataSourceId struct { - // external data source database ID - ExtDataSourceId string `protobuf:"bytes,3,opt,name=ext_data_source_id,json=extDataSourceId,proto3,oneof"` -} - -func (*RouteMatcher_RouteId) isRouteMatcher_Matcher() {} - -func (*RouteMatcher_NamespaceId) isRouteMatcher_Matcher() {} - -func (*RouteMatcher_ExtDataSourceId) isRouteMatcher_Matcher() {} - -type String struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` - Ts *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=ts,proto3" json:"ts,omitempty"` -} - -func (x *String) Reset() { - *x = String{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *String) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*String) ProtoMessage() {} - -func (x *String) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use String.ProtoReflect.Descriptor instead. -func (*String) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{2} -} - -func (x *String) GetValue() string { - if x != nil { - return x.Value - } - return "" -} - -func (x *String) GetTs() *timestamppb.Timestamp { - if x != nil { - return x.Ts - } - return nil -} - -type Scalar struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` - Ts *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=ts,proto3" json:"ts,omitempty"` -} - -func (x *Scalar) Reset() { - *x = Scalar{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Scalar) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Scalar) ProtoMessage() {} - -func (x *Scalar) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Scalar.ProtoReflect.Descriptor instead. -func (*Scalar) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{3} -} - -func (x *Scalar) GetValue() float64 { - if x != nil { - return x.Value - } - return 0 -} - -func (x *Scalar) GetTs() *timestamppb.Timestamp { - if x != nil { - return x.Ts - } - return nil -} - -type TimeSeries struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Series []*Scalar `protobuf:"bytes,2,rep,name=series,proto3" json:"series,omitempty"` -} - -func (x *TimeSeries) Reset() { - *x = TimeSeries{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TimeSeries) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TimeSeries) ProtoMessage() {} - -func (x *TimeSeries) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TimeSeries.ProtoReflect.Descriptor instead. -func (*TimeSeries) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{4} -} - -func (x *TimeSeries) GetLabels() map[string]string { - if x != nil { - return x.Labels - } - return nil -} - -func (x *TimeSeries) GetSeries() []*Scalar { - if x != nil { - return x.Series - } - return nil -} - -type Matrix struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Series []*TimeSeries `protobuf:"bytes,1,rep,name=series,proto3" json:"series,omitempty"` -} - -func (x *Matrix) Reset() { - *x = Matrix{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Matrix) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Matrix) ProtoMessage() {} - -func (x *Matrix) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Matrix.ProtoReflect.Descriptor instead. -func (*Matrix) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{5} -} - -func (x *Matrix) GetSeries() []*TimeSeries { - if x != nil { - return x.Series - } - return nil -} - -type Sample struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Value *Scalar `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *Sample) Reset() { - *x = Sample{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Sample) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Sample) ProtoMessage() {} - -func (x *Sample) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Sample.ProtoReflect.Descriptor instead. -func (*Sample) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{6} -} - -func (x *Sample) GetLabels() map[string]string { - if x != nil { - return x.Labels - } - return nil -} - -func (x *Sample) GetValue() *Scalar { - if x != nil { - return x.Value - } - return nil -} - -type Vector struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Samples []*Sample `protobuf:"bytes,1,rep,name=samples,proto3" json:"samples,omitempty"` -} - -func (x *Vector) Reset() { - *x = Vector{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Vector) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Vector) ProtoMessage() {} - -func (x *Vector) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Vector.ProtoReflect.Descriptor instead. -func (*Vector) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{7} -} - -func (x *Vector) GetSamples() []*Sample { - if x != nil { - return x.Samples - } - return nil -} - -// request route-specific metric time series -type RouteMetricSeriesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // route to match - Matcher *RouteMatcher `protobuf:"bytes,1,opt,name=matcher,proto3" json:"matcher,omitempty"` - // metric to retrieve - Metric Metric `protobuf:"varint,2,opt,name=metric,proto3,enum=pomerium.dashboard.Metric" json:"metric,omitempty"` - // time range and sampling step - Range *Range `protobuf:"bytes,3,opt,name=range,proto3" json:"range,omitempty"` -} - -func (x *RouteMetricSeriesRequest) Reset() { - *x = RouteMetricSeriesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RouteMetricSeriesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RouteMetricSeriesRequest) ProtoMessage() {} - -func (x *RouteMetricSeriesRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RouteMetricSeriesRequest.ProtoReflect.Descriptor instead. -func (*RouteMetricSeriesRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{8} -} - -func (x *RouteMetricSeriesRequest) GetMatcher() *RouteMatcher { - if x != nil { - return x.Matcher - } - return nil -} - -func (x *RouteMetricSeriesRequest) GetMetric() Metric { - if x != nil { - return x.Metric - } - return Metric_UNDEFINED_METRIC_DO_NOT_USE -} - -func (x *RouteMetricSeriesRequest) GetRange() *Range { - if x != nil { - return x.Range - } - return nil -} - -// request route-specific metric time series histogram -type RouteMetricSeriesHistogramRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // route to match - Matcher *RouteMatcher `protobuf:"bytes,1,opt,name=matcher,proto3" json:"matcher,omitempty"` - // metric to retrieve - Metric Metric `protobuf:"varint,2,opt,name=metric,proto3,enum=pomerium.dashboard.Metric" json:"metric,omitempty"` - // time range and sampling step - Range *Range `protobuf:"bytes,3,opt,name=range,proto3" json:"range,omitempty"` - // if data for the metric was precomputed as histogram, the data may be - // requested within a certain percentile - Percentile float64 `protobuf:"fixed64,4,opt,name=percentile,proto3" json:"percentile,omitempty"` -} - -func (x *RouteMetricSeriesHistogramRequest) Reset() { - *x = RouteMetricSeriesHistogramRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RouteMetricSeriesHistogramRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RouteMetricSeriesHistogramRequest) ProtoMessage() {} - -func (x *RouteMetricSeriesHistogramRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RouteMetricSeriesHistogramRequest.ProtoReflect.Descriptor instead. -func (*RouteMetricSeriesHistogramRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{9} -} - -func (x *RouteMetricSeriesHistogramRequest) GetMatcher() *RouteMatcher { - if x != nil { - return x.Matcher - } - return nil -} - -func (x *RouteMetricSeriesHistogramRequest) GetMetric() Metric { - if x != nil { - return x.Metric - } - return Metric_UNDEFINED_METRIC_DO_NOT_USE -} - -func (x *RouteMetricSeriesHistogramRequest) GetRange() *Range { - if x != nil { - return x.Range - } - return nil -} - -func (x *RouteMetricSeriesHistogramRequest) GetPercentile() float64 { - if x != nil { - return x.Percentile - } - return 0 -} - -type ServerMetricSeriesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // metric to retrieve - Metric Metric `protobuf:"varint,2,opt,name=metric,proto3,enum=pomerium.dashboard.Metric" json:"metric,omitempty"` - // time range and sampling step - Range *Range `protobuf:"bytes,3,opt,name=range,proto3" json:"range,omitempty"` - // if data for the metric was precomputed as histogram, the data may be - // requested within a certain percentile - Percentile float64 `protobuf:"fixed64,4,opt,name=percentile,proto3" json:"percentile,omitempty"` - // server component and instance ID - Component Component `protobuf:"varint,5,opt,name=component,proto3,enum=pomerium.dashboard.Component" json:"component,omitempty"` - InstanceId string `protobuf:"bytes,6,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` -} - -func (x *ServerMetricSeriesRequest) Reset() { - *x = ServerMetricSeriesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ServerMetricSeriesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ServerMetricSeriesRequest) ProtoMessage() {} - -func (x *ServerMetricSeriesRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ServerMetricSeriesRequest.ProtoReflect.Descriptor instead. -func (*ServerMetricSeriesRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{10} -} - -func (x *ServerMetricSeriesRequest) GetMetric() Metric { - if x != nil { - return x.Metric - } - return Metric_UNDEFINED_METRIC_DO_NOT_USE -} - -func (x *ServerMetricSeriesRequest) GetRange() *Range { - if x != nil { - return x.Range - } - return nil -} - -func (x *ServerMetricSeriesRequest) GetPercentile() float64 { - if x != nil { - return x.Percentile - } - return 0 -} - -func (x *ServerMetricSeriesRequest) GetComponent() Component { - if x != nil { - return x.Component - } - return Component_UNKNOWN_DO_NOT_USE -} - -func (x *ServerMetricSeriesRequest) GetInstanceId() string { - if x != nil { - return x.InstanceId - } - return "" -} - -type ServerMetricRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Component Component `protobuf:"varint,1,opt,name=component,proto3,enum=pomerium.dashboard.Component" json:"component,omitempty"` - InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` - // metric to retrieve - Metric Metric `protobuf:"varint,3,opt,name=metric,proto3,enum=pomerium.dashboard.Metric" json:"metric,omitempty"` -} - -func (x *ServerMetricRequest) Reset() { - *x = ServerMetricRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ServerMetricRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ServerMetricRequest) ProtoMessage() {} - -func (x *ServerMetricRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ServerMetricRequest.ProtoReflect.Descriptor instead. -func (*ServerMetricRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{11} -} - -func (x *ServerMetricRequest) GetComponent() Component { - if x != nil { - return x.Component - } - return Component_UNKNOWN_DO_NOT_USE -} - -func (x *ServerMetricRequest) GetInstanceId() string { - if x != nil { - return x.InstanceId - } - return "" -} - -func (x *ServerMetricRequest) GetMetric() Metric { - if x != nil { - return x.Metric - } - return Metric_UNDEFINED_METRIC_DO_NOT_USE -} - -type ConsoleMetricRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metric Metric `protobuf:"varint,1,opt,name=metric,proto3,enum=pomerium.dashboard.Metric" json:"metric,omitempty"` -} - -func (x *ConsoleMetricRequest) Reset() { - *x = ConsoleMetricRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ConsoleMetricRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ConsoleMetricRequest) ProtoMessage() {} - -func (x *ConsoleMetricRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_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 ConsoleMetricRequest.ProtoReflect.Descriptor instead. -func (*ConsoleMetricRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{12} -} - -func (x *ConsoleMetricRequest) GetMetric() Metric { - if x != nil { - return x.Metric - } - return Metric_UNDEFINED_METRIC_DO_NOT_USE -} - -// Requests console metric time series -type ConsoleMetricSeriesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // metric to retrieve - Metric Metric `protobuf:"varint,1,opt,name=metric,proto3,enum=pomerium.dashboard.Metric" json:"metric,omitempty"` - // Start time - Start *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start,proto3" json:"start,omitempty"` - // End time - End *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=end,proto3" json:"end,omitempty"` -} - -func (x *ConsoleMetricSeriesRequest) Reset() { - *x = ConsoleMetricSeriesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ConsoleMetricSeriesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ConsoleMetricSeriesRequest) ProtoMessage() {} - -func (x *ConsoleMetricSeriesRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_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 ConsoleMetricSeriesRequest.ProtoReflect.Descriptor instead. -func (*ConsoleMetricSeriesRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{13} -} - -func (x *ConsoleMetricSeriesRequest) GetMetric() Metric { - if x != nil { - return x.Metric - } - return Metric_UNDEFINED_METRIC_DO_NOT_USE -} - -func (x *ConsoleMetricSeriesRequest) GetStart() *timestamppb.Timestamp { - if x != nil { - return x.Start - } - return nil -} - -func (x *ConsoleMetricSeriesRequest) GetEnd() *timestamppb.Timestamp { - if x != nil { - return x.End - } - return nil -} - -// LastErrorRequest will fetch last known error for certain error-related -// metrics -type LastErrorRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metric Metric `protobuf:"varint,1,opt,name=metric,proto3,enum=pomerium.dashboard.Metric" json:"metric,omitempty"` -} - -func (x *LastErrorRequest) Reset() { - *x = LastErrorRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *LastErrorRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LastErrorRequest) ProtoMessage() {} - -func (x *LastErrorRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LastErrorRequest.ProtoReflect.Descriptor instead. -func (*LastErrorRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{14} -} - -func (x *LastErrorRequest) GetMetric() Metric { - if x != nil { - return x.Metric - } - return Metric_UNDEFINED_METRIC_DO_NOT_USE -} - -// LastErrorResponse returns last known error for certain error-related metrics -type LastErrorResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Ts *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=ts,proto3" json:"ts,omitempty"` - Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *LastErrorResponse) Reset() { - *x = LastErrorResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *LastErrorResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LastErrorResponse) ProtoMessage() {} - -func (x *LastErrorResponse) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_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 LastErrorResponse.ProtoReflect.Descriptor instead. -func (*LastErrorResponse) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{15} -} - -func (x *LastErrorResponse) GetTs() *timestamppb.Timestamp { - if x != nil { - return x.Ts - } - return nil -} - -func (x *LastErrorResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// Used to request a particular metric change within a given period of time -type RouteMetricChangeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // route to match - Matcher *RouteMatcher `protobuf:"bytes,1,opt,name=matcher,proto3" json:"matcher,omitempty"` - // metric to retrieve - Metric Metric `protobuf:"varint,2,opt,name=metric,proto3,enum=pomerium.dashboard.Metric" json:"metric,omitempty"` - // Start time - Start *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start,proto3" json:"start,omitempty"` - // End time - End *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=end,proto3" json:"end,omitempty"` -} - -func (x *RouteMetricChangeRequest) Reset() { - *x = RouteMetricChangeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RouteMetricChangeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RouteMetricChangeRequest) ProtoMessage() {} - -func (x *RouteMetricChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_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 RouteMetricChangeRequest.ProtoReflect.Descriptor instead. -func (*RouteMetricChangeRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{16} -} - -func (x *RouteMetricChangeRequest) GetMatcher() *RouteMatcher { - if x != nil { - return x.Matcher - } - return nil -} - -func (x *RouteMetricChangeRequest) GetMetric() Metric { - if x != nil { - return x.Metric - } - return Metric_UNDEFINED_METRIC_DO_NOT_USE -} - -func (x *RouteMetricChangeRequest) GetStart() *timestamppb.Timestamp { - if x != nil { - return x.Start - } - return nil -} - -func (x *RouteMetricChangeRequest) GetEnd() *timestamppb.Timestamp { - if x != nil { - return x.End - } - return nil -} - -// TimeSeries response returns -type TimeSeriesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // provided for time-sampled values - i.e. requests - Rate Rate `protobuf:"varint,1,opt,name=rate,proto3,enum=pomerium.dashboard.Rate" json:"rate,omitempty"` - // series are (timestamp,value) data points - Series []*Scalar `protobuf:"bytes,2,rep,name=series,proto3" json:"series,omitempty"` -} - -func (x *TimeSeriesResponse) Reset() { - *x = TimeSeriesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TimeSeriesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TimeSeriesResponse) ProtoMessage() {} - -func (x *TimeSeriesResponse) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_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 TimeSeriesResponse.ProtoReflect.Descriptor instead. -func (*TimeSeriesResponse) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{17} -} - -func (x *TimeSeriesResponse) GetRate() Rate { - if x != nil { - return x.Rate - } - return Rate_NONE -} - -func (x *TimeSeriesResponse) GetSeries() []*Scalar { - if x != nil { - return x.Series - } - return nil -} - -// Multiple time series response -type TimeSeriesResponseMulti struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Rate Rate `protobuf:"varint,1,opt,name=rate,proto3,enum=pomerium.dashboard.Rate" json:"rate,omitempty"` - Series []*TimeSeries `protobuf:"bytes,2,rep,name=series,proto3" json:"series,omitempty"` -} - -func (x *TimeSeriesResponseMulti) Reset() { - *x = TimeSeriesResponseMulti{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TimeSeriesResponseMulti) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TimeSeriesResponseMulti) ProtoMessage() {} - -func (x *TimeSeriesResponseMulti) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TimeSeriesResponseMulti.ProtoReflect.Descriptor instead. -func (*TimeSeriesResponseMulti) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{18} -} - -func (x *TimeSeriesResponseMulti) GetRate() Rate { - if x != nil { - return x.Rate - } - return Rate_NONE -} - -func (x *TimeSeriesResponseMulti) GetSeries() []*TimeSeries { - if x != nil { - return x.Series - } - return nil -} - -// returns histogram values -type ScalarBuckets struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Buckets []*ScalarBuckets_Bucket `protobuf:"bytes,1,rep,name=buckets,proto3" json:"buckets,omitempty"` -} - -func (x *ScalarBuckets) Reset() { - *x = ScalarBuckets{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ScalarBuckets) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ScalarBuckets) ProtoMessage() {} - -func (x *ScalarBuckets) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ScalarBuckets.ProtoReflect.Descriptor instead. -func (*ScalarBuckets) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{19} -} - -func (x *ScalarBuckets) GetBuckets() []*ScalarBuckets_Bucket { - if x != nil { - return x.Buckets - } - return nil -} - -// uptime info for all pomerium services for a given period of time -type UptimeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Start *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` - End *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` - Component Component `protobuf:"varint,3,opt,name=component,proto3,enum=pomerium.dashboard.Component" json:"component,omitempty"` - InstanceId string `protobuf:"bytes,4,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` -} - -func (x *UptimeRequest) Reset() { - *x = UptimeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UptimeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UptimeRequest) ProtoMessage() {} - -func (x *UptimeRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_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 UptimeRequest.ProtoReflect.Descriptor instead. -func (*UptimeRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{20} -} - -func (x *UptimeRequest) GetStart() *timestamppb.Timestamp { - if x != nil { - return x.Start - } - return nil -} - -func (x *UptimeRequest) GetEnd() *timestamppb.Timestamp { - if x != nil { - return x.End - } - return nil -} - -func (x *UptimeRequest) GetComponent() Component { - if x != nil { - return x.Component - } - return Component_UNKNOWN_DO_NOT_USE -} - -func (x *UptimeRequest) GetInstanceId() string { - if x != nil { - return x.InstanceId - } - return "" -} - -// service uptime is calculated based on liveness probe published by each -// component it is delivered as 2-level hierarchical periods to make it simple -// for the UI consumer it does not provide statistics as data representation -// makes it trivial to calculate depending on the UI requirements -type UptimeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Intervals []*UptimeResponse_Summary `protobuf:"bytes,1,rep,name=intervals,proto3" json:"intervals,omitempty"` -} - -func (x *UptimeResponse) Reset() { - *x = UptimeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UptimeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UptimeResponse) ProtoMessage() {} - -func (x *UptimeResponse) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_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 UptimeResponse.ProtoReflect.Descriptor instead. -func (*UptimeResponse) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{21} -} - -func (x *UptimeResponse) GetIntervals() []*UptimeResponse_Summary { - if x != nil { - return x.Intervals - } - return nil -} - -type GetInstancesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Start *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` - End *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` -} - -func (x *GetInstancesRequest) Reset() { - *x = GetInstancesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetInstancesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetInstancesRequest) ProtoMessage() {} - -func (x *GetInstancesRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_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 GetInstancesRequest.ProtoReflect.Descriptor instead. -func (*GetInstancesRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{22} -} - -func (x *GetInstancesRequest) GetStart() *timestamppb.Timestamp { - if x != nil { - return x.Start - } - return nil -} - -func (x *GetInstancesRequest) GetEnd() *timestamppb.Timestamp { - if x != nil { - return x.End - } - return nil -} - -type Instances struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Instances []*Instances_Instance `protobuf:"bytes,1,rep,name=instances,proto3" json:"instances,omitempty"` -} - -func (x *Instances) Reset() { - *x = Instances{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Instances) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Instances) ProtoMessage() {} - -func (x *Instances) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Instances.ProtoReflect.Descriptor instead. -func (*Instances) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{23} -} - -func (x *Instances) GetInstances() []*Instances_Instance { - if x != nil { - return x.Instances - } - return nil -} - -type GetInstanceInfoRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Component Component `protobuf:"varint,3,opt,name=component,proto3,enum=pomerium.dashboard.Component" json:"component,omitempty"` - InstanceId string `protobuf:"bytes,4,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` -} - -func (x *GetInstanceInfoRequest) Reset() { - *x = GetInstanceInfoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetInstanceInfoRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetInstanceInfoRequest) ProtoMessage() {} - -func (x *GetInstanceInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_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 GetInstanceInfoRequest.ProtoReflect.Descriptor instead. -func (*GetInstanceInfoRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{24} -} - -func (x *GetInstanceInfoRequest) GetComponent() Component { - if x != nil { - return x.Component - } - return Component_UNKNOWN_DO_NOT_USE -} - -func (x *GetInstanceInfoRequest) GetInstanceId() string { - if x != nil { - return x.InstanceId - } - return "" -} - -type GetStatusRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *GetStatusRequest) Reset() { - *x = GetStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetStatusRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetStatusRequest) ProtoMessage() {} - -func (x *GetStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetStatusRequest.ProtoReflect.Descriptor instead. -func (*GetStatusRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{25} -} - -type GetStatusResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Targets []*GetStatusResponse_Target `protobuf:"bytes,1,rep,name=targets,proto3" json:"targets,omitempty"` - // Types that are assignable to Status: - // - // *GetStatusResponse_Ok - // *GetStatusResponse_LastError - Status isGetStatusResponse_Status `protobuf_oneof:"status"` -} - -func (x *GetStatusResponse) Reset() { - *x = GetStatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetStatusResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetStatusResponse) ProtoMessage() {} - -func (x *GetStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetStatusResponse.ProtoReflect.Descriptor instead. -func (*GetStatusResponse) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{26} -} - -func (x *GetStatusResponse) GetTargets() []*GetStatusResponse_Target { - if x != nil { - return x.Targets - } - return nil -} - -func (m *GetStatusResponse) GetStatus() isGetStatusResponse_Status { - if m != nil { - return m.Status - } - return nil -} - -func (x *GetStatusResponse) GetOk() bool { - if x, ok := x.GetStatus().(*GetStatusResponse_Ok); ok { - return x.Ok - } - return false -} - -func (x *GetStatusResponse) GetLastError() string { - if x, ok := x.GetStatus().(*GetStatusResponse_LastError); ok { - return x.LastError - } - return "" -} - -type isGetStatusResponse_Status interface { - isGetStatusResponse_Status() -} - -type GetStatusResponse_Ok struct { - Ok bool `protobuf:"varint,2,opt,name=ok,proto3,oneof"` -} - -type GetStatusResponse_LastError struct { - LastError string `protobuf:"bytes,3,opt,name=last_error,json=lastError,proto3,oneof"` -} - -func (*GetStatusResponse_Ok) isGetStatusResponse_Status() {} - -func (*GetStatusResponse_LastError) isGetStatusResponse_Status() {} - -type UsageReportRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *UsageReportRequest) Reset() { - *x = UsageReportRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UsageReportRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UsageReportRequest) ProtoMessage() {} - -func (x *UsageReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UsageReportRequest.ProtoReflect.Descriptor instead. -func (*UsageReportRequest) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{27} -} - -type UsageReportResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Report []byte `protobuf:"bytes,1,opt,name=report,proto3" json:"report,omitempty"` -} - -func (x *UsageReportResponse) Reset() { - *x = UsageReportResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UsageReportResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UsageReportResponse) ProtoMessage() {} - -func (x *UsageReportResponse) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UsageReportResponse.ProtoReflect.Descriptor instead. -func (*UsageReportResponse) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{28} -} - -func (x *UsageReportResponse) GetReport() []byte { - if x != nil { - return x.Report - } - return nil -} - -type Labels struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} - -func (x *Labels) Reset() { - *x = Labels{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Labels) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Labels) ProtoMessage() {} - -func (x *Labels) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Labels.ProtoReflect.Descriptor instead. -func (*Labels) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{29} -} - -func (x *Labels) GetLabels() map[string]string { - if x != nil { - return x.Labels - } - return nil -} - -type ScalarBuckets_Bucket struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // bucket identifier - LessOrEqualThan float64 `protobuf:"fixed64,1,opt,name=less_or_equal_than,json=lessOrEqualThan,proto3" json:"less_or_equal_than,omitempty"` - // occurences for the given bucket - Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` -} - -func (x *ScalarBuckets_Bucket) Reset() { - *x = ScalarBuckets_Bucket{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ScalarBuckets_Bucket) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ScalarBuckets_Bucket) ProtoMessage() {} - -func (x *ScalarBuckets_Bucket) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ScalarBuckets_Bucket.ProtoReflect.Descriptor instead. -func (*ScalarBuckets_Bucket) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{19, 0} -} - -func (x *ScalarBuckets_Bucket) GetLessOrEqualThan() float64 { - if x != nil { - return x.LessOrEqualThan - } - return 0 -} - -func (x *ScalarBuckets_Bucket) GetCount() int64 { - if x != nil { - return x.Count - } - return 0 -} - -// summary provides a higher level information re health of the component -type UptimeResponse_Summary struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Start *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` - End *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` - // aggregate status of the system - Status UptimeResponse_Status `protobuf:"varint,3,opt,name=status,proto3,enum=pomerium.dashboard.UptimeResponse_Status" json:"status,omitempty"` -} - -func (x *UptimeResponse_Summary) Reset() { - *x = UptimeResponse_Summary{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UptimeResponse_Summary) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UptimeResponse_Summary) ProtoMessage() {} - -func (x *UptimeResponse_Summary) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UptimeResponse_Summary.ProtoReflect.Descriptor instead. -func (*UptimeResponse_Summary) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{21, 0} -} - -func (x *UptimeResponse_Summary) GetStart() *timestamppb.Timestamp { - if x != nil { - return x.Start - } - return nil -} - -func (x *UptimeResponse_Summary) GetEnd() *timestamppb.Timestamp { - if x != nil { - return x.End - } - return nil -} - -func (x *UptimeResponse_Summary) GetStatus() UptimeResponse_Status { - if x != nil { - return x.Status - } - return UptimeResponse_UNDEFINED_STATUS_DO_NOT_USE -} - -type Instances_Instance struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Component Component `protobuf:"varint,1,opt,name=component,proto3,enum=pomerium.dashboard.Component" json:"component,omitempty"` - // ID that should be used in requests for metrics - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - // human readable instance name - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` -} - -func (x *Instances_Instance) Reset() { - *x = Instances_Instance{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Instances_Instance) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Instances_Instance) ProtoMessage() {} - -func (x *Instances_Instance) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Instances_Instance.ProtoReflect.Descriptor instead. -func (*Instances_Instance) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{23, 0} -} - -func (x *Instances_Instance) GetComponent() Component { - if x != nil { - return x.Component - } - return Component_UNKNOWN_DO_NOT_USE -} - -func (x *Instances_Instance) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *Instances_Instance) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -type GetStatusResponse_Target struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ScrapeUrl string `protobuf:"bytes,1,opt,name=scrape_url,json=scrapeUrl,proto3" json:"scrape_url,omitempty"` - GlobalUrl string `protobuf:"bytes,2,opt,name=global_url,json=globalUrl,proto3" json:"global_url,omitempty"` - LastError string `protobuf:"bytes,3,opt,name=last_error,json=lastError,proto3" json:"last_error,omitempty"` - LastScrape *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=last_scrape,json=lastScrape,proto3" json:"last_scrape,omitempty"` - Health GetStatusResponse_Target_Health `protobuf:"varint,5,opt,name=health,proto3,enum=pomerium.dashboard.GetStatusResponse_Target_Health" json:"health,omitempty"` -} - -func (x *GetStatusResponse_Target) Reset() { - *x = GetStatusResponse_Target{} - if protoimpl.UnsafeEnabled { - mi := &file_tsdb_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetStatusResponse_Target) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetStatusResponse_Target) ProtoMessage() {} - -func (x *GetStatusResponse_Target) ProtoReflect() protoreflect.Message { - mi := &file_tsdb_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetStatusResponse_Target.ProtoReflect.Descriptor instead. -func (*GetStatusResponse_Target) Descriptor() ([]byte, []int) { - return file_tsdb_proto_rawDescGZIP(), []int{26, 0} -} - -func (x *GetStatusResponse_Target) GetScrapeUrl() string { - if x != nil { - return x.ScrapeUrl - } - return "" -} - -func (x *GetStatusResponse_Target) GetGlobalUrl() string { - if x != nil { - return x.GlobalUrl - } - return "" -} - -func (x *GetStatusResponse_Target) GetLastError() string { - if x != nil { - return x.LastError - } - return "" -} - -func (x *GetStatusResponse_Target) GetLastScrape() *timestamppb.Timestamp { - if x != nil { - return x.LastScrape - } - return nil -} - -func (x *GetStatusResponse_Target) GetHealth() GetStatusResponse_Target_Health { - if x != nil { - return x.Health - } - return GetStatusResponse_Target_TARGET_HEALTH_UNKNOWN -} - -var File_tsdb_proto protoreflect.FileDescriptor - -var file_tsdb_proto_rawDesc = []byte{ - 0x0a, 0x0a, 0x74, 0x73, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb4, 0x01, 0x0a, 0x05, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, - 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x12, 0x36, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, - 0x02, 0x08, 0x01, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x37, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x08, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x22, 0xa5, 0x01, 0x0a, 0x0c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x72, 0x12, 0x24, 0x0a, 0x08, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, - 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0c, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x65, - 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x42, 0x09, - 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x22, 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x02, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x02, 0x74, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x02, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x74, - 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, - 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, - 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, - 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, - 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x40, 0x0a, 0x06, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x36, 0x0a, - 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x06, 0x73, - 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x06, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x12, 0x3e, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3e, 0x0a, - 0x06, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x07, 0x73, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, - 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x07, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x22, 0xdb, 0x01, - 0x0a, 0x18, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x07, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x08, 0xfa, - 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, - 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0a, 0xfa, 0x42, - 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x39, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, - 0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x9d, 0x02, 0x0a, 0x21, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x69, 0x65, - 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x44, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, - 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, - 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, - 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x39, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x42, 0x17, 0xfa, 0x42, 0x14, 0x12, 0x12, 0x19, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, - 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x22, 0xc2, 0x02, 0x0a, 0x19, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, - 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, - 0x00, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x39, 0x0a, 0x05, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, - 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, - 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x42, 0x17, 0xfa, 0x42, 0x14, 0x12, 0x12, 0x19, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x47, 0x0a, - 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x42, - 0x0a, 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, - 0x22, 0xc8, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x82, - 0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x12, 0x28, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, - 0x01, 0x20, 0x00, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x56, 0x0a, 0x14, 0x43, - 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, - 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, - 0x0a, 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, 0x06, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x22, 0xd0, 0x01, 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, - 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0a, - 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, - 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x36, - 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, - 0x01, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x52, 0x0a, 0x10, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, - 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, - 0x20, 0x00, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x59, 0x0a, 0x11, 0x4c, 0x61, - 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x2a, 0x0a, 0x02, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x92, 0x02, 0x0a, 0x18, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x44, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, - 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, - 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, - 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x36, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, - 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x76, 0x0a, 0x12, 0x54, 0x69, - 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, - 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x32, - 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, - 0x65, 0x73, 0x22, 0x7f, 0x0a, 0x17, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x12, 0x2c, 0x0a, - 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x2e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x73, - 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x06, 0x73, 0x65, 0x72, - 0x69, 0x65, 0x73, 0x22, 0xa0, 0x01, 0x0a, 0x0d, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x42, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x63, 0x61, 0x6c, - 0x61, 0x72, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x52, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x4b, 0x0a, 0x06, 0x42, 0x75, 0x63, - 0x6b, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x12, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x6f, 0x72, 0x5f, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x0f, 0x6c, 0x65, 0x73, 0x73, 0x4f, 0x72, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x54, 0x68, 0x61, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf6, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x74, 0x69, 0x6d, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x12, 0x36, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, - 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x47, 0x0a, 0x09, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1d, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x42, 0x0a, - 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x22, - 0xd5, 0x02, 0x0a, 0x0e, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x55, 0x70, 0x74, 0x69, 0x6d, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x79, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x1a, 0xac, 0x01, 0x0a, - 0x07, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, - 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x55, 0x70, - 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, - 0x45, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x5f, 0x4e, 0x4f, 0x54, - 0x5f, 0x55, 0x53, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x01, - 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x02, 0x12, 0x08, 0x0a, - 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x22, 0x89, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, - 0x01, 0x02, 0x08, 0x01, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x36, 0x0a, 0x03, 0x65, - 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x03, - 0x65, 0x6e, 0x64, 0x22, 0xbe, 0x01, 0x0a, 0x09, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, - 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x6b, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x47, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, - 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, 0x09, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x49, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xdd, 0x03, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x07, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x07, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x1f, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x61, - 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0xc2, 0x02, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x63, 0x72, 0x61, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x63, 0x72, 0x61, 0x70, 0x65, 0x55, 0x72, - 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x55, 0x72, 0x6c, - 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x3b, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x72, 0x61, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x72, 0x61, 0x70, 0x65, 0x12, 0x4b, 0x0a, 0x06, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x70, - 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, - 0x64, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x52, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x22, 0x51, 0x0a, 0x06, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x48, 0x45, - 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, - 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, - 0x55, 0x50, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x48, - 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2d, 0x0a, 0x13, - 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x06, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x2a, 0x20, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, - 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x43, 0x4f, 0x4e, - 0x44, 0x10, 0x01, 0x2a, 0xc8, 0x0a, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1f, - 0x0a, 0x1b, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x52, - 0x49, 0x43, 0x5f, 0x44, 0x4f, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x10, 0x00, 0x12, - 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x53, 0x10, 0x01, 0x12, 0x11, 0x0a, - 0x0d, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x53, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x02, - 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x53, 0x5f, 0x44, 0x55, 0x52, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x53, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, - 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x53, 0x10, 0x04, 0x12, 0x0c, - 0x0a, 0x08, 0x41, 0x55, 0x54, 0x48, 0x5a, 0x5f, 0x4f, 0x4b, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, - 0x41, 0x55, 0x54, 0x48, 0x5a, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x15, 0x12, 0x0f, - 0x0a, 0x0b, 0x41, 0x55, 0x54, 0x48, 0x5a, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x16, 0x12, - 0x12, 0x0a, 0x0e, 0x41, 0x55, 0x54, 0x48, 0x5a, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, - 0x44, 0x10, 0x17, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x55, 0x54, 0x48, 0x5a, 0x5f, 0x46, 0x41, 0x49, - 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, - 0x44, 0x10, 0x18, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x48, 0x49, - 0x50, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x1e, 0x12, 0x17, 0x0a, 0x13, 0x4d, - 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x48, 0x49, 0x50, 0x5f, 0x44, 0x45, 0x47, 0x52, 0x41, 0x44, - 0x45, 0x44, 0x10, 0x1f, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x48, - 0x49, 0x50, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x44, 0x45, 0x44, 0x10, 0x20, 0x12, 0x14, 0x0a, - 0x10, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x48, 0x49, 0x50, 0x5f, 0x54, 0x4f, 0x54, 0x41, - 0x4c, 0x10, 0x21, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x58, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, - 0x28, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x58, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x29, 0x12, - 0x0f, 0x0a, 0x0b, 0x54, 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x2a, - 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x45, 0x4d, 0x4f, 0x52, 0x59, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x43, - 0x41, 0x54, 0x45, 0x44, 0x10, 0x33, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x50, 0x55, 0x5f, 0x55, 0x53, - 0x41, 0x47, 0x45, 0x10, 0x34, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x44, 0x50, 0x5f, 0x4c, 0x41, 0x53, - 0x54, 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, - 0x41, 0x4d, 0x50, 0x10, 0x3c, 0x12, 0x2b, 0x0a, 0x27, 0x49, 0x44, 0x50, 0x5f, 0x4c, 0x41, 0x53, - 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x5f, 0x53, - 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, - 0x10, 0x64, 0x12, 0x29, 0x0a, 0x25, 0x49, 0x44, 0x50, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x55, - 0x53, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, - 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x65, 0x12, 0x1f, 0x0a, - 0x1b, 0x49, 0x44, 0x50, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x52, - 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x66, 0x12, 0x21, - 0x0a, 0x1d, 0x49, 0x44, 0x50, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, - 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, - 0x67, 0x12, 0x31, 0x0a, 0x2d, 0x49, 0x44, 0x50, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x55, 0x53, - 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, - 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, - 0x4d, 0x50, 0x10, 0x68, 0x12, 0x2f, 0x0a, 0x2b, 0x49, 0x44, 0x50, 0x5f, 0x4c, 0x41, 0x53, 0x54, - 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x46, 0x52, - 0x45, 0x53, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, - 0x41, 0x4d, 0x50, 0x10, 0x69, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x44, 0x50, 0x5f, 0x4c, 0x41, 0x53, - 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x46, - 0x52, 0x45, 0x53, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x6a, 0x12, 0x27, 0x0a, 0x23, - 0x49, 0x44, 0x50, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x47, 0x52, - 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x5f, 0x53, 0x55, 0x43, 0x43, - 0x45, 0x53, 0x53, 0x10, 0x6b, 0x12, 0x2e, 0x0a, 0x2a, 0x49, 0x44, 0x50, 0x5f, 0x4c, 0x41, 0x53, - 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, - 0x48, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, - 0x41, 0x4d, 0x50, 0x10, 0x6c, 0x12, 0x2c, 0x0a, 0x28, 0x49, 0x44, 0x50, 0x5f, 0x4c, 0x41, 0x53, - 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, - 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, - 0x50, 0x10, 0x6d, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x44, 0x50, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, - 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x5f, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x6e, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x44, 0x50, 0x5f, 0x4c, - 0x41, 0x53, 0x54, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x46, 0x52, - 0x45, 0x53, 0x48, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x6f, 0x12, 0x28, 0x0a, - 0x24, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x4c, - 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x49, 0x4d, 0x45, - 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x46, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x55, 0x49, 0x4c, 0x44, - 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x47, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4e, 0x46, 0x49, - 0x47, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x53, 0x55, 0x4d, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, - 0x10, 0x48, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x43, 0x48, 0x45, - 0x43, 0x4b, 0x53, 0x55, 0x4d, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x52, 0x4f, 0x4b, 0x45, 0x52, - 0x10, 0x49, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x56, 0x45, 0x52, - 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x4a, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, - 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x53, 0x10, 0x4b, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, - 0x46, 0x49, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x4f, 0x4c, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x53, - 0x49, 0x4f, 0x4e, 0x10, 0x4c, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x52, 0x4f, 0x4d, 0x45, 0x54, 0x48, - 0x45, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, - 0x53, 0x10, 0x50, 0x12, 0x22, 0x0a, 0x1e, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x4c, 0x59, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x45, - 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x5a, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x4f, 0x4e, 0x54, 0x48, - 0x4c, 0x59, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x53, 0x10, - 0x5b, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, - 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x78, 0x12, 0x18, - 0x0a, 0x14, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x53, 0x5f, - 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x79, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x54, 0x54, 0x50, - 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, - 0x53, 0x10, 0x7a, 0x12, 0x17, 0x0a, 0x13, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x52, 0x45, 0x51, 0x55, - 0x45, 0x53, 0x54, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x7b, 0x12, 0x20, 0x0a, 0x1c, - 0x48, 0x54, 0x54, 0x50, 0x5f, 0x41, 0x56, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, - 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x7c, 0x2a, 0x9d, - 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x12, - 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x44, 0x4f, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x55, - 0x53, 0x45, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x55, 0x54, 0x48, 0x45, 0x4e, 0x54, 0x49, - 0x43, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, - 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x41, 0x54, 0x41, 0x42, 0x52, 0x4f, - 0x4b, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4e, 0x53, 0x4f, 0x4c, 0x45, - 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x10, 0x05, 0x12, 0x0e, 0x0a, - 0x0a, 0x41, 0x4c, 0x4c, 0x5f, 0x49, 0x4e, 0x5f, 0x4f, 0x4e, 0x45, 0x10, 0x06, 0x12, 0x0f, 0x0a, - 0x0b, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x45, 0x4e, 0x56, 0x4f, 0x59, 0x10, 0x07, 0x12, 0x0e, - 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x4d, 0x45, 0x54, 0x48, 0x45, 0x55, 0x53, 0x10, 0x08, 0x32, 0xdc, - 0x09, 0x0a, 0x0c, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x44, 0x42, 0x12, - 0x60, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2c, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, - 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, - 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x61, - 0x72, 0x12, 0x70, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, - 0x61, 0x6d, 0x12, 0x2c, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, - 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x42, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x73, 0x12, 0x6c, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x70, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x6f, 0x6d, 0x65, - 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x7e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, - 0x61, 0x6d, 0x12, 0x35, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, - 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, - 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x6f, 0x6d, 0x65, - 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x76, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x12, 0x2c, - 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, - 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, - 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, - 0x64, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x12, 0x52, 0x0a, 0x09, 0x47, 0x65, 0x74, - 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x55, 0x70, 0x74, 0x69, - 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x6f, 0x6d, 0x65, - 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x55, - 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, - 0x0c, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x27, 0x2e, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, - 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2d, - 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x27, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, - 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, - 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x58, 0x0a, - 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x6f, 0x6d, - 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4c, 0x61, - 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x24, 0x2e, - 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, - 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x26, 0x2e, 0x70, - 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, - 0x64, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, - 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2d, 0x5a, - 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, - 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2d, 0x63, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_tsdb_proto_rawDescOnce sync.Once - file_tsdb_proto_rawDescData = file_tsdb_proto_rawDesc -) - -func file_tsdb_proto_rawDescGZIP() []byte { - file_tsdb_proto_rawDescOnce.Do(func() { - file_tsdb_proto_rawDescData = protoimpl.X.CompressGZIP(file_tsdb_proto_rawDescData) - }) - return file_tsdb_proto_rawDescData -} - -var file_tsdb_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_tsdb_proto_msgTypes = make([]protoimpl.MessageInfo, 37) -var file_tsdb_proto_goTypes = []any{ - (Rate)(0), // 0: pomerium.dashboard.Rate - (Metric)(0), // 1: pomerium.dashboard.Metric - (Component)(0), // 2: pomerium.dashboard.Component - (UptimeResponse_Status)(0), // 3: pomerium.dashboard.UptimeResponse.Status - (GetStatusResponse_Target_Health)(0), // 4: pomerium.dashboard.GetStatusResponse.Target.Health - (*Range)(nil), // 5: pomerium.dashboard.Range - (*RouteMatcher)(nil), // 6: pomerium.dashboard.RouteMatcher - (*String)(nil), // 7: pomerium.dashboard.String - (*Scalar)(nil), // 8: pomerium.dashboard.Scalar - (*TimeSeries)(nil), // 9: pomerium.dashboard.TimeSeries - (*Matrix)(nil), // 10: pomerium.dashboard.Matrix - (*Sample)(nil), // 11: pomerium.dashboard.Sample - (*Vector)(nil), // 12: pomerium.dashboard.Vector - (*RouteMetricSeriesRequest)(nil), // 13: pomerium.dashboard.RouteMetricSeriesRequest - (*RouteMetricSeriesHistogramRequest)(nil), // 14: pomerium.dashboard.RouteMetricSeriesHistogramRequest - (*ServerMetricSeriesRequest)(nil), // 15: pomerium.dashboard.ServerMetricSeriesRequest - (*ServerMetricRequest)(nil), // 16: pomerium.dashboard.ServerMetricRequest - (*ConsoleMetricRequest)(nil), // 17: pomerium.dashboard.ConsoleMetricRequest - (*ConsoleMetricSeriesRequest)(nil), // 18: pomerium.dashboard.ConsoleMetricSeriesRequest - (*LastErrorRequest)(nil), // 19: pomerium.dashboard.LastErrorRequest - (*LastErrorResponse)(nil), // 20: pomerium.dashboard.LastErrorResponse - (*RouteMetricChangeRequest)(nil), // 21: pomerium.dashboard.RouteMetricChangeRequest - (*TimeSeriesResponse)(nil), // 22: pomerium.dashboard.TimeSeriesResponse - (*TimeSeriesResponseMulti)(nil), // 23: pomerium.dashboard.TimeSeriesResponseMulti - (*ScalarBuckets)(nil), // 24: pomerium.dashboard.ScalarBuckets - (*UptimeRequest)(nil), // 25: pomerium.dashboard.UptimeRequest - (*UptimeResponse)(nil), // 26: pomerium.dashboard.UptimeResponse - (*GetInstancesRequest)(nil), // 27: pomerium.dashboard.GetInstancesRequest - (*Instances)(nil), // 28: pomerium.dashboard.Instances - (*GetInstanceInfoRequest)(nil), // 29: pomerium.dashboard.GetInstanceInfoRequest - (*GetStatusRequest)(nil), // 30: pomerium.dashboard.GetStatusRequest - (*GetStatusResponse)(nil), // 31: pomerium.dashboard.GetStatusResponse - (*UsageReportRequest)(nil), // 32: pomerium.dashboard.UsageReportRequest - (*UsageReportResponse)(nil), // 33: pomerium.dashboard.UsageReportResponse - (*Labels)(nil), // 34: pomerium.dashboard.Labels - nil, // 35: pomerium.dashboard.TimeSeries.LabelsEntry - nil, // 36: pomerium.dashboard.Sample.LabelsEntry - (*ScalarBuckets_Bucket)(nil), // 37: pomerium.dashboard.ScalarBuckets.Bucket - (*UptimeResponse_Summary)(nil), // 38: pomerium.dashboard.UptimeResponse.Summary - (*Instances_Instance)(nil), // 39: pomerium.dashboard.Instances.Instance - (*GetStatusResponse_Target)(nil), // 40: pomerium.dashboard.GetStatusResponse.Target - nil, // 41: pomerium.dashboard.Labels.LabelsEntry - (*timestamppb.Timestamp)(nil), // 42: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 43: google.protobuf.Duration -} -var file_tsdb_proto_depIdxs = []int32{ - 42, // 0: pomerium.dashboard.Range.start:type_name -> google.protobuf.Timestamp - 42, // 1: pomerium.dashboard.Range.end:type_name -> google.protobuf.Timestamp - 43, // 2: pomerium.dashboard.Range.step:type_name -> google.protobuf.Duration - 42, // 3: pomerium.dashboard.String.ts:type_name -> google.protobuf.Timestamp - 42, // 4: pomerium.dashboard.Scalar.ts:type_name -> google.protobuf.Timestamp - 35, // 5: pomerium.dashboard.TimeSeries.labels:type_name -> pomerium.dashboard.TimeSeries.LabelsEntry - 8, // 6: pomerium.dashboard.TimeSeries.series:type_name -> pomerium.dashboard.Scalar - 9, // 7: pomerium.dashboard.Matrix.series:type_name -> pomerium.dashboard.TimeSeries - 36, // 8: pomerium.dashboard.Sample.labels:type_name -> pomerium.dashboard.Sample.LabelsEntry - 8, // 9: pomerium.dashboard.Sample.value:type_name -> pomerium.dashboard.Scalar - 11, // 10: pomerium.dashboard.Vector.samples:type_name -> pomerium.dashboard.Sample - 6, // 11: pomerium.dashboard.RouteMetricSeriesRequest.matcher:type_name -> pomerium.dashboard.RouteMatcher - 1, // 12: pomerium.dashboard.RouteMetricSeriesRequest.metric:type_name -> pomerium.dashboard.Metric - 5, // 13: pomerium.dashboard.RouteMetricSeriesRequest.range:type_name -> pomerium.dashboard.Range - 6, // 14: pomerium.dashboard.RouteMetricSeriesHistogramRequest.matcher:type_name -> pomerium.dashboard.RouteMatcher - 1, // 15: pomerium.dashboard.RouteMetricSeriesHistogramRequest.metric:type_name -> pomerium.dashboard.Metric - 5, // 16: pomerium.dashboard.RouteMetricSeriesHistogramRequest.range:type_name -> pomerium.dashboard.Range - 1, // 17: pomerium.dashboard.ServerMetricSeriesRequest.metric:type_name -> pomerium.dashboard.Metric - 5, // 18: pomerium.dashboard.ServerMetricSeriesRequest.range:type_name -> pomerium.dashboard.Range - 2, // 19: pomerium.dashboard.ServerMetricSeriesRequest.component:type_name -> pomerium.dashboard.Component - 2, // 20: pomerium.dashboard.ServerMetricRequest.component:type_name -> pomerium.dashboard.Component - 1, // 21: pomerium.dashboard.ServerMetricRequest.metric:type_name -> pomerium.dashboard.Metric - 1, // 22: pomerium.dashboard.ConsoleMetricRequest.metric:type_name -> pomerium.dashboard.Metric - 1, // 23: pomerium.dashboard.ConsoleMetricSeriesRequest.metric:type_name -> pomerium.dashboard.Metric - 42, // 24: pomerium.dashboard.ConsoleMetricSeriesRequest.start:type_name -> google.protobuf.Timestamp - 42, // 25: pomerium.dashboard.ConsoleMetricSeriesRequest.end:type_name -> google.protobuf.Timestamp - 1, // 26: pomerium.dashboard.LastErrorRequest.metric:type_name -> pomerium.dashboard.Metric - 42, // 27: pomerium.dashboard.LastErrorResponse.ts:type_name -> google.protobuf.Timestamp - 6, // 28: pomerium.dashboard.RouteMetricChangeRequest.matcher:type_name -> pomerium.dashboard.RouteMatcher - 1, // 29: pomerium.dashboard.RouteMetricChangeRequest.metric:type_name -> pomerium.dashboard.Metric - 42, // 30: pomerium.dashboard.RouteMetricChangeRequest.start:type_name -> google.protobuf.Timestamp - 42, // 31: pomerium.dashboard.RouteMetricChangeRequest.end:type_name -> google.protobuf.Timestamp - 0, // 32: pomerium.dashboard.TimeSeriesResponse.rate:type_name -> pomerium.dashboard.Rate - 8, // 33: pomerium.dashboard.TimeSeriesResponse.series:type_name -> pomerium.dashboard.Scalar - 0, // 34: pomerium.dashboard.TimeSeriesResponseMulti.rate:type_name -> pomerium.dashboard.Rate - 9, // 35: pomerium.dashboard.TimeSeriesResponseMulti.series:type_name -> pomerium.dashboard.TimeSeries - 37, // 36: pomerium.dashboard.ScalarBuckets.buckets:type_name -> pomerium.dashboard.ScalarBuckets.Bucket - 42, // 37: pomerium.dashboard.UptimeRequest.start:type_name -> google.protobuf.Timestamp - 42, // 38: pomerium.dashboard.UptimeRequest.end:type_name -> google.protobuf.Timestamp - 2, // 39: pomerium.dashboard.UptimeRequest.component:type_name -> pomerium.dashboard.Component - 38, // 40: pomerium.dashboard.UptimeResponse.intervals:type_name -> pomerium.dashboard.UptimeResponse.Summary - 42, // 41: pomerium.dashboard.GetInstancesRequest.start:type_name -> google.protobuf.Timestamp - 42, // 42: pomerium.dashboard.GetInstancesRequest.end:type_name -> google.protobuf.Timestamp - 39, // 43: pomerium.dashboard.Instances.instances:type_name -> pomerium.dashboard.Instances.Instance - 2, // 44: pomerium.dashboard.GetInstanceInfoRequest.component:type_name -> pomerium.dashboard.Component - 40, // 45: pomerium.dashboard.GetStatusResponse.targets:type_name -> pomerium.dashboard.GetStatusResponse.Target - 41, // 46: pomerium.dashboard.Labels.labels:type_name -> pomerium.dashboard.Labels.LabelsEntry - 42, // 47: pomerium.dashboard.UptimeResponse.Summary.start:type_name -> google.protobuf.Timestamp - 42, // 48: pomerium.dashboard.UptimeResponse.Summary.end:type_name -> google.protobuf.Timestamp - 3, // 49: pomerium.dashboard.UptimeResponse.Summary.status:type_name -> pomerium.dashboard.UptimeResponse.Status - 2, // 50: pomerium.dashboard.Instances.Instance.component:type_name -> pomerium.dashboard.Component - 42, // 51: pomerium.dashboard.GetStatusResponse.Target.last_scrape:type_name -> google.protobuf.Timestamp - 4, // 52: pomerium.dashboard.GetStatusResponse.Target.health:type_name -> pomerium.dashboard.GetStatusResponse.Target.Health - 21, // 53: pomerium.dashboard.TimeSeriesDB.GetRouteMetricChange:input_type -> pomerium.dashboard.RouteMetricChangeRequest - 21, // 54: pomerium.dashboard.TimeSeriesDB.GetRouteMetricChangeHistogram:input_type -> pomerium.dashboard.RouteMetricChangeRequest - 13, // 55: pomerium.dashboard.TimeSeriesDB.GetRouteMetricSeries:input_type -> pomerium.dashboard.RouteMetricSeriesRequest - 14, // 56: pomerium.dashboard.TimeSeriesDB.GetRouteMetricSeriesHistogram:input_type -> pomerium.dashboard.RouteMetricSeriesHistogramRequest - 13, // 57: pomerium.dashboard.TimeSeriesDB.GetRouteMetricSeriesMulti:input_type -> pomerium.dashboard.RouteMetricSeriesRequest - 25, // 58: pomerium.dashboard.TimeSeriesDB.GetUptime:input_type -> pomerium.dashboard.UptimeRequest - 27, // 59: pomerium.dashboard.TimeSeriesDB.GetInstances:input_type -> pomerium.dashboard.GetInstancesRequest - 15, // 60: pomerium.dashboard.TimeSeriesDB.GetServerMetricSeries:input_type -> pomerium.dashboard.ServerMetricSeriesRequest - 16, // 61: pomerium.dashboard.TimeSeriesDB.GetServerMetric:input_type -> pomerium.dashboard.ServerMetricRequest - 30, // 62: pomerium.dashboard.TimeSeriesDB.GetStatus:input_type -> pomerium.dashboard.GetStatusRequest - 19, // 63: pomerium.dashboard.TimeSeriesDB.GetLastMetricError:input_type -> pomerium.dashboard.LastErrorRequest - 32, // 64: pomerium.dashboard.TimeSeriesDB.GetUsageReport:input_type -> pomerium.dashboard.UsageReportRequest - 8, // 65: pomerium.dashboard.TimeSeriesDB.GetRouteMetricChange:output_type -> pomerium.dashboard.Scalar - 24, // 66: pomerium.dashboard.TimeSeriesDB.GetRouteMetricChangeHistogram:output_type -> pomerium.dashboard.ScalarBuckets - 22, // 67: pomerium.dashboard.TimeSeriesDB.GetRouteMetricSeries:output_type -> pomerium.dashboard.TimeSeriesResponse - 22, // 68: pomerium.dashboard.TimeSeriesDB.GetRouteMetricSeriesHistogram:output_type -> pomerium.dashboard.TimeSeriesResponse - 23, // 69: pomerium.dashboard.TimeSeriesDB.GetRouteMetricSeriesMulti:output_type -> pomerium.dashboard.TimeSeriesResponseMulti - 26, // 70: pomerium.dashboard.TimeSeriesDB.GetUptime:output_type -> pomerium.dashboard.UptimeResponse - 28, // 71: pomerium.dashboard.TimeSeriesDB.GetInstances:output_type -> pomerium.dashboard.Instances - 22, // 72: pomerium.dashboard.TimeSeriesDB.GetServerMetricSeries:output_type -> pomerium.dashboard.TimeSeriesResponse - 11, // 73: pomerium.dashboard.TimeSeriesDB.GetServerMetric:output_type -> pomerium.dashboard.Sample - 31, // 74: pomerium.dashboard.TimeSeriesDB.GetStatus:output_type -> pomerium.dashboard.GetStatusResponse - 20, // 75: pomerium.dashboard.TimeSeriesDB.GetLastMetricError:output_type -> pomerium.dashboard.LastErrorResponse - 33, // 76: pomerium.dashboard.TimeSeriesDB.GetUsageReport:output_type -> pomerium.dashboard.UsageReportResponse - 65, // [65:77] is the sub-list for method output_type - 53, // [53:65] is the sub-list for method input_type - 53, // [53:53] is the sub-list for extension type_name - 53, // [53:53] is the sub-list for extension extendee - 0, // [0:53] is the sub-list for field type_name -} - -func init() { file_tsdb_proto_init() } -func file_tsdb_proto_init() { - if File_tsdb_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_tsdb_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*Range); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*RouteMatcher); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*String); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*Scalar); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*TimeSeries); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*Matrix); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*Sample); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*Vector); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*RouteMetricSeriesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*RouteMetricSeriesHistogramRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*ServerMetricSeriesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*ServerMetricRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*ConsoleMetricRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*ConsoleMetricSeriesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*LastErrorRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*LastErrorResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*RouteMetricChangeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*TimeSeriesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*TimeSeriesResponseMulti); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*ScalarBuckets); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*UptimeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*UptimeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*GetInstancesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*Instances); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[24].Exporter = func(v any, i int) any { - switch v := v.(*GetInstanceInfoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[25].Exporter = func(v any, i int) any { - switch v := v.(*GetStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*GetStatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[27].Exporter = func(v any, i int) any { - switch v := v.(*UsageReportRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*UsageReportResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*Labels); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[32].Exporter = func(v any, i int) any { - switch v := v.(*ScalarBuckets_Bucket); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[33].Exporter = func(v any, i int) any { - switch v := v.(*UptimeResponse_Summary); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[34].Exporter = func(v any, i int) any { - switch v := v.(*Instances_Instance); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tsdb_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*GetStatusResponse_Target); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_tsdb_proto_msgTypes[1].OneofWrappers = []any{ - (*RouteMatcher_RouteId)(nil), - (*RouteMatcher_NamespaceId)(nil), - (*RouteMatcher_ExtDataSourceId)(nil), - } - file_tsdb_proto_msgTypes[26].OneofWrappers = []any{ - (*GetStatusResponse_Ok)(nil), - (*GetStatusResponse_LastError)(nil), - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_tsdb_proto_rawDesc, - NumEnums: 5, - NumMessages: 37, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_tsdb_proto_goTypes, - DependencyIndexes: file_tsdb_proto_depIdxs, - EnumInfos: file_tsdb_proto_enumTypes, - MessageInfos: file_tsdb_proto_msgTypes, - }.Build() - File_tsdb_proto = out.File - file_tsdb_proto_rawDesc = nil - file_tsdb_proto_goTypes = nil - file_tsdb_proto_depIdxs = nil -} diff --git a/pb/tsdb_grpc.pb.go b/pb/tsdb_grpc.pb.go deleted file mode 100644 index aad8c4e..0000000 --- a/pb/tsdb_grpc.pb.go +++ /dev/null @@ -1,571 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc v3.21.7 -// source: tsdb.proto - -package pb - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.64.0 or later. -const _ = grpc.SupportPackageIsVersion9 - -const ( - TimeSeriesDB_GetRouteMetricChange_FullMethodName = "/pomerium.dashboard.TimeSeriesDB/GetRouteMetricChange" - TimeSeriesDB_GetRouteMetricChangeHistogram_FullMethodName = "/pomerium.dashboard.TimeSeriesDB/GetRouteMetricChangeHistogram" - TimeSeriesDB_GetRouteMetricSeries_FullMethodName = "/pomerium.dashboard.TimeSeriesDB/GetRouteMetricSeries" - TimeSeriesDB_GetRouteMetricSeriesHistogram_FullMethodName = "/pomerium.dashboard.TimeSeriesDB/GetRouteMetricSeriesHistogram" - TimeSeriesDB_GetRouteMetricSeriesMulti_FullMethodName = "/pomerium.dashboard.TimeSeriesDB/GetRouteMetricSeriesMulti" - TimeSeriesDB_GetUptime_FullMethodName = "/pomerium.dashboard.TimeSeriesDB/GetUptime" - TimeSeriesDB_GetInstances_FullMethodName = "/pomerium.dashboard.TimeSeriesDB/GetInstances" - TimeSeriesDB_GetServerMetricSeries_FullMethodName = "/pomerium.dashboard.TimeSeriesDB/GetServerMetricSeries" - TimeSeriesDB_GetServerMetric_FullMethodName = "/pomerium.dashboard.TimeSeriesDB/GetServerMetric" - TimeSeriesDB_GetStatus_FullMethodName = "/pomerium.dashboard.TimeSeriesDB/GetStatus" - TimeSeriesDB_GetLastMetricError_FullMethodName = "/pomerium.dashboard.TimeSeriesDB/GetLastMetricError" - TimeSeriesDB_GetUsageReport_FullMethodName = "/pomerium.dashboard.TimeSeriesDB/GetUsageReport" -) - -// TimeSeriesDBClient is the client API for TimeSeriesDB service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -// -// TimeSeriesDB is a generic service that is meant to be able to query for -// historical metrics and should provide a sufficient abstraction between the UI -// and underlying time series service, would it be Prometheus, embedded TSDB or -// other 3rd party provider -type TimeSeriesDBClient interface { - // returns metric change for a period of time - GetRouteMetricChange(ctx context.Context, in *RouteMetricChangeRequest, opts ...grpc.CallOption) (*Scalar, error) - // returns buckets of values for a given metric - GetRouteMetricChangeHistogram(ctx context.Context, in *RouteMetricChangeRequest, opts ...grpc.CallOption) (*ScalarBuckets, error) - // returns metric change as time series - GetRouteMetricSeries(ctx context.Context, in *RouteMetricSeriesRequest, opts ...grpc.CallOption) (*TimeSeriesResponse, error) - // returns metric change as time series - GetRouteMetricSeriesHistogram(ctx context.Context, in *RouteMetricSeriesHistogramRequest, opts ...grpc.CallOption) (*TimeSeriesResponse, error) - // returns multiple annotated time series - GetRouteMetricSeriesMulti(ctx context.Context, in *RouteMetricSeriesRequest, opts ...grpc.CallOption) (*TimeSeriesResponseMulti, error) - // returns service uptime statistics - GetUptime(ctx context.Context, in *UptimeRequest, opts ...grpc.CallOption) (*UptimeResponse, error) - // returns list of system services with metrics - GetInstances(ctx context.Context, in *GetInstancesRequest, opts ...grpc.CallOption) (*Instances, error) - // returns server queries - GetServerMetricSeries(ctx context.Context, in *ServerMetricSeriesRequest, opts ...grpc.CallOption) (*TimeSeriesResponse, error) - // returns current metric value - GetServerMetric(ctx context.Context, in *ServerMetricRequest, opts ...grpc.CallOption) (*Sample, error) - // returns current status of scraping targets - GetStatus(ctx context.Context, in *GetStatusRequest, opts ...grpc.CallOption) (*GetStatusResponse, error) - // returns last known error for a metric, if available - GetLastMetricError(ctx context.Context, in *LastErrorRequest, opts ...grpc.CallOption) (*LastErrorResponse, error) - // returns usage report - GetUsageReport(ctx context.Context, in *UsageReportRequest, opts ...grpc.CallOption) (*UsageReportResponse, error) -} - -type timeSeriesDBClient struct { - cc grpc.ClientConnInterface -} - -func NewTimeSeriesDBClient(cc grpc.ClientConnInterface) TimeSeriesDBClient { - return &timeSeriesDBClient{cc} -} - -func (c *timeSeriesDBClient) GetRouteMetricChange(ctx context.Context, in *RouteMetricChangeRequest, opts ...grpc.CallOption) (*Scalar, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(Scalar) - err := c.cc.Invoke(ctx, TimeSeriesDB_GetRouteMetricChange_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeSeriesDBClient) GetRouteMetricChangeHistogram(ctx context.Context, in *RouteMetricChangeRequest, opts ...grpc.CallOption) (*ScalarBuckets, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ScalarBuckets) - err := c.cc.Invoke(ctx, TimeSeriesDB_GetRouteMetricChangeHistogram_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeSeriesDBClient) GetRouteMetricSeries(ctx context.Context, in *RouteMetricSeriesRequest, opts ...grpc.CallOption) (*TimeSeriesResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(TimeSeriesResponse) - err := c.cc.Invoke(ctx, TimeSeriesDB_GetRouteMetricSeries_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeSeriesDBClient) GetRouteMetricSeriesHistogram(ctx context.Context, in *RouteMetricSeriesHistogramRequest, opts ...grpc.CallOption) (*TimeSeriesResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(TimeSeriesResponse) - err := c.cc.Invoke(ctx, TimeSeriesDB_GetRouteMetricSeriesHistogram_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeSeriesDBClient) GetRouteMetricSeriesMulti(ctx context.Context, in *RouteMetricSeriesRequest, opts ...grpc.CallOption) (*TimeSeriesResponseMulti, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(TimeSeriesResponseMulti) - err := c.cc.Invoke(ctx, TimeSeriesDB_GetRouteMetricSeriesMulti_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeSeriesDBClient) GetUptime(ctx context.Context, in *UptimeRequest, opts ...grpc.CallOption) (*UptimeResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(UptimeResponse) - err := c.cc.Invoke(ctx, TimeSeriesDB_GetUptime_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeSeriesDBClient) GetInstances(ctx context.Context, in *GetInstancesRequest, opts ...grpc.CallOption) (*Instances, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(Instances) - err := c.cc.Invoke(ctx, TimeSeriesDB_GetInstances_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeSeriesDBClient) GetServerMetricSeries(ctx context.Context, in *ServerMetricSeriesRequest, opts ...grpc.CallOption) (*TimeSeriesResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(TimeSeriesResponse) - err := c.cc.Invoke(ctx, TimeSeriesDB_GetServerMetricSeries_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeSeriesDBClient) GetServerMetric(ctx context.Context, in *ServerMetricRequest, opts ...grpc.CallOption) (*Sample, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(Sample) - err := c.cc.Invoke(ctx, TimeSeriesDB_GetServerMetric_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeSeriesDBClient) GetStatus(ctx context.Context, in *GetStatusRequest, opts ...grpc.CallOption) (*GetStatusResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(GetStatusResponse) - err := c.cc.Invoke(ctx, TimeSeriesDB_GetStatus_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeSeriesDBClient) GetLastMetricError(ctx context.Context, in *LastErrorRequest, opts ...grpc.CallOption) (*LastErrorResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(LastErrorResponse) - err := c.cc.Invoke(ctx, TimeSeriesDB_GetLastMetricError_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeSeriesDBClient) GetUsageReport(ctx context.Context, in *UsageReportRequest, opts ...grpc.CallOption) (*UsageReportResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(UsageReportResponse) - err := c.cc.Invoke(ctx, TimeSeriesDB_GetUsageReport_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -// TimeSeriesDBServer is the server API for TimeSeriesDB service. -// All implementations should embed UnimplementedTimeSeriesDBServer -// for forward compatibility. -// -// TimeSeriesDB is a generic service that is meant to be able to query for -// historical metrics and should provide a sufficient abstraction between the UI -// and underlying time series service, would it be Prometheus, embedded TSDB or -// other 3rd party provider -type TimeSeriesDBServer interface { - // returns metric change for a period of time - GetRouteMetricChange(context.Context, *RouteMetricChangeRequest) (*Scalar, error) - // returns buckets of values for a given metric - GetRouteMetricChangeHistogram(context.Context, *RouteMetricChangeRequest) (*ScalarBuckets, error) - // returns metric change as time series - GetRouteMetricSeries(context.Context, *RouteMetricSeriesRequest) (*TimeSeriesResponse, error) - // returns metric change as time series - GetRouteMetricSeriesHistogram(context.Context, *RouteMetricSeriesHistogramRequest) (*TimeSeriesResponse, error) - // returns multiple annotated time series - GetRouteMetricSeriesMulti(context.Context, *RouteMetricSeriesRequest) (*TimeSeriesResponseMulti, error) - // returns service uptime statistics - GetUptime(context.Context, *UptimeRequest) (*UptimeResponse, error) - // returns list of system services with metrics - GetInstances(context.Context, *GetInstancesRequest) (*Instances, error) - // returns server queries - GetServerMetricSeries(context.Context, *ServerMetricSeriesRequest) (*TimeSeriesResponse, error) - // returns current metric value - GetServerMetric(context.Context, *ServerMetricRequest) (*Sample, error) - // returns current status of scraping targets - GetStatus(context.Context, *GetStatusRequest) (*GetStatusResponse, error) - // returns last known error for a metric, if available - GetLastMetricError(context.Context, *LastErrorRequest) (*LastErrorResponse, error) - // returns usage report - GetUsageReport(context.Context, *UsageReportRequest) (*UsageReportResponse, error) -} - -// UnimplementedTimeSeriesDBServer should be embedded to have -// forward compatible implementations. -// -// NOTE: this should be embedded by value instead of pointer to avoid a nil -// pointer dereference when methods are called. -type UnimplementedTimeSeriesDBServer struct{} - -func (UnimplementedTimeSeriesDBServer) GetRouteMetricChange(context.Context, *RouteMetricChangeRequest) (*Scalar, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetRouteMetricChange not implemented") -} -func (UnimplementedTimeSeriesDBServer) GetRouteMetricChangeHistogram(context.Context, *RouteMetricChangeRequest) (*ScalarBuckets, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetRouteMetricChangeHistogram not implemented") -} -func (UnimplementedTimeSeriesDBServer) GetRouteMetricSeries(context.Context, *RouteMetricSeriesRequest) (*TimeSeriesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetRouteMetricSeries not implemented") -} -func (UnimplementedTimeSeriesDBServer) GetRouteMetricSeriesHistogram(context.Context, *RouteMetricSeriesHistogramRequest) (*TimeSeriesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetRouteMetricSeriesHistogram not implemented") -} -func (UnimplementedTimeSeriesDBServer) GetRouteMetricSeriesMulti(context.Context, *RouteMetricSeriesRequest) (*TimeSeriesResponseMulti, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetRouteMetricSeriesMulti not implemented") -} -func (UnimplementedTimeSeriesDBServer) GetUptime(context.Context, *UptimeRequest) (*UptimeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUptime not implemented") -} -func (UnimplementedTimeSeriesDBServer) GetInstances(context.Context, *GetInstancesRequest) (*Instances, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetInstances not implemented") -} -func (UnimplementedTimeSeriesDBServer) GetServerMetricSeries(context.Context, *ServerMetricSeriesRequest) (*TimeSeriesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetServerMetricSeries not implemented") -} -func (UnimplementedTimeSeriesDBServer) GetServerMetric(context.Context, *ServerMetricRequest) (*Sample, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetServerMetric not implemented") -} -func (UnimplementedTimeSeriesDBServer) GetStatus(context.Context, *GetStatusRequest) (*GetStatusResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetStatus not implemented") -} -func (UnimplementedTimeSeriesDBServer) GetLastMetricError(context.Context, *LastErrorRequest) (*LastErrorResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetLastMetricError not implemented") -} -func (UnimplementedTimeSeriesDBServer) GetUsageReport(context.Context, *UsageReportRequest) (*UsageReportResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUsageReport not implemented") -} -func (UnimplementedTimeSeriesDBServer) testEmbeddedByValue() {} - -// UnsafeTimeSeriesDBServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to TimeSeriesDBServer will -// result in compilation errors. -type UnsafeTimeSeriesDBServer interface { - mustEmbedUnimplementedTimeSeriesDBServer() -} - -func RegisterTimeSeriesDBServer(s grpc.ServiceRegistrar, srv TimeSeriesDBServer) { - // If the following call pancis, it indicates UnimplementedTimeSeriesDBServer was - // embedded by pointer and is nil. This will cause panics if an - // unimplemented method is ever invoked, so we test this at initialization - // time to prevent it from happening at runtime later due to I/O. - if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { - t.testEmbeddedByValue() - } - s.RegisterService(&TimeSeriesDB_ServiceDesc, srv) -} - -func _TimeSeriesDB_GetRouteMetricChange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RouteMetricChangeRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeSeriesDBServer).GetRouteMetricChange(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeSeriesDB_GetRouteMetricChange_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeSeriesDBServer).GetRouteMetricChange(ctx, req.(*RouteMetricChangeRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeSeriesDB_GetRouteMetricChangeHistogram_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RouteMetricChangeRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeSeriesDBServer).GetRouteMetricChangeHistogram(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeSeriesDB_GetRouteMetricChangeHistogram_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeSeriesDBServer).GetRouteMetricChangeHistogram(ctx, req.(*RouteMetricChangeRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeSeriesDB_GetRouteMetricSeries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RouteMetricSeriesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeSeriesDBServer).GetRouteMetricSeries(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeSeriesDB_GetRouteMetricSeries_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeSeriesDBServer).GetRouteMetricSeries(ctx, req.(*RouteMetricSeriesRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeSeriesDB_GetRouteMetricSeriesHistogram_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RouteMetricSeriesHistogramRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeSeriesDBServer).GetRouteMetricSeriesHistogram(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeSeriesDB_GetRouteMetricSeriesHistogram_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeSeriesDBServer).GetRouteMetricSeriesHistogram(ctx, req.(*RouteMetricSeriesHistogramRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeSeriesDB_GetRouteMetricSeriesMulti_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RouteMetricSeriesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeSeriesDBServer).GetRouteMetricSeriesMulti(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeSeriesDB_GetRouteMetricSeriesMulti_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeSeriesDBServer).GetRouteMetricSeriesMulti(ctx, req.(*RouteMetricSeriesRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeSeriesDB_GetUptime_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UptimeRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeSeriesDBServer).GetUptime(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeSeriesDB_GetUptime_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeSeriesDBServer).GetUptime(ctx, req.(*UptimeRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeSeriesDB_GetInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetInstancesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeSeriesDBServer).GetInstances(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeSeriesDB_GetInstances_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeSeriesDBServer).GetInstances(ctx, req.(*GetInstancesRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeSeriesDB_GetServerMetricSeries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ServerMetricSeriesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeSeriesDBServer).GetServerMetricSeries(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeSeriesDB_GetServerMetricSeries_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeSeriesDBServer).GetServerMetricSeries(ctx, req.(*ServerMetricSeriesRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeSeriesDB_GetServerMetric_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ServerMetricRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeSeriesDBServer).GetServerMetric(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeSeriesDB_GetServerMetric_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeSeriesDBServer).GetServerMetric(ctx, req.(*ServerMetricRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeSeriesDB_GetStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetStatusRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeSeriesDBServer).GetStatus(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeSeriesDB_GetStatus_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeSeriesDBServer).GetStatus(ctx, req.(*GetStatusRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeSeriesDB_GetLastMetricError_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(LastErrorRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeSeriesDBServer).GetLastMetricError(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeSeriesDB_GetLastMetricError_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeSeriesDBServer).GetLastMetricError(ctx, req.(*LastErrorRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeSeriesDB_GetUsageReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UsageReportRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeSeriesDBServer).GetUsageReport(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeSeriesDB_GetUsageReport_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeSeriesDBServer).GetUsageReport(ctx, req.(*UsageReportRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// TimeSeriesDB_ServiceDesc is the grpc.ServiceDesc for TimeSeriesDB service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var TimeSeriesDB_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "pomerium.dashboard.TimeSeriesDB", - HandlerType: (*TimeSeriesDBServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetRouteMetricChange", - Handler: _TimeSeriesDB_GetRouteMetricChange_Handler, - }, - { - MethodName: "GetRouteMetricChangeHistogram", - Handler: _TimeSeriesDB_GetRouteMetricChangeHistogram_Handler, - }, - { - MethodName: "GetRouteMetricSeries", - Handler: _TimeSeriesDB_GetRouteMetricSeries_Handler, - }, - { - MethodName: "GetRouteMetricSeriesHistogram", - Handler: _TimeSeriesDB_GetRouteMetricSeriesHistogram_Handler, - }, - { - MethodName: "GetRouteMetricSeriesMulti", - Handler: _TimeSeriesDB_GetRouteMetricSeriesMulti_Handler, - }, - { - MethodName: "GetUptime", - Handler: _TimeSeriesDB_GetUptime_Handler, - }, - { - MethodName: "GetInstances", - Handler: _TimeSeriesDB_GetInstances_Handler, - }, - { - MethodName: "GetServerMetricSeries", - Handler: _TimeSeriesDB_GetServerMetricSeries_Handler, - }, - { - MethodName: "GetServerMetric", - Handler: _TimeSeriesDB_GetServerMetric_Handler, - }, - { - MethodName: "GetStatus", - Handler: _TimeSeriesDB_GetStatus_Handler, - }, - { - MethodName: "GetLastMetricError", - Handler: _TimeSeriesDB_GetLastMetricError_Handler, - }, - { - MethodName: "GetUsageReport", - Handler: _TimeSeriesDB_GetUsageReport_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "tsdb.proto", -} diff --git a/pb/types.pb.go b/pb/types.pb.go new file mode 100644 index 0000000..6734ff2 --- /dev/null +++ b/pb/types.pb.go @@ -0,0 +1,419 @@ +// +// +//Apache License +//Version 2.0, January 2004 +//http://www.apache.org/licenses/ +// +//TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +// +//1. Definitions. +// +//"License" shall mean the terms and conditions for use, reproduction, +//and distribution as defined by Sections 1 through 9 of this document. +// +//"Licensor" shall mean the copyright owner or entity authorized by +//the copyright owner that is granting the License. +// +//"Legal Entity" shall mean the union of the acting entity and all +//other entities that control, are controlled by, or are under common +//control with that entity. For the purposes of this definition, +//"control" means (i) the power, direct or indirect, to cause the +//direction or management of such entity, whether by contract or +//otherwise, or (ii) ownership of fifty percent (50%) or more of the +//outstanding shares, or (iii) beneficial ownership of such entity. +// +//"You" (or "Your") shall mean an individual or Legal Entity +//exercising permissions granted by this License. +// +//"Source" form shall mean the preferred form for making modifications, +//including but not limited to software source code, documentation +//source, and configuration files. +// +//"Object" form shall mean any form resulting from mechanical +//transformation or translation of a Source form, including but +//not limited to compiled object code, generated documentation, +//and conversions to other media types. +// +//"Work" shall mean the work of authorship, whether in Source or +//Object form, made available under the License, as indicated by a +//copyright notice that is included in or attached to the work +//(an example is provided in the Appendix below). +// +//"Derivative Works" shall mean any work, whether in Source or Object +//form, that is based on (or derived from) the Work and for which the +//editorial revisions, annotations, elaborations, or other modifications +//represent, as a whole, an original work of authorship. For the purposes +//of this License, Derivative Works shall not include works that remain +//separable from, or merely link (or bind by name) to the interfaces of, +//the Work and Derivative Works thereof. +// +//"Contribution" shall mean any work of authorship, including +//the original version of the Work and any modifications or additions +//to that Work or Derivative Works thereof, that is intentionally +//submitted to Licensor for inclusion in the Work by the copyright owner +//or by an individual or Legal Entity authorized to submit on behalf of +//the copyright owner. For the purposes of this definition, "submitted" +//means any form of electronic, verbal, or written communication sent +//to the Licensor or its representatives, including but not limited to +//communication on electronic mailing lists, source code control systems, +//and issue tracking systems that are managed by, or on behalf of, the +//Licensor for the purpose of discussing and improving the Work, but +//excluding communication that is conspicuously marked or otherwise +//designated in writing by the copyright owner as "Not a Contribution." +// +//"Contributor" shall mean Licensor and any individual or Legal Entity +//on behalf of whom a Contribution has been received by Licensor and +//subsequently incorporated within the Work. +// +//2. Grant of Copyright License. Subject to the terms and conditions of +//this License, each Contributor hereby grants to You a perpetual, +//worldwide, non-exclusive, no-charge, royalty-free, irrevocable +//copyright license to reproduce, prepare Derivative Works of, +//publicly display, publicly perform, sublicense, and distribute the +//Work and such Derivative Works in Source or Object form. +// +//3. Grant of Patent License. Subject to the terms and conditions of +//this License, each Contributor hereby grants to You a perpetual, +//worldwide, non-exclusive, no-charge, royalty-free, irrevocable +//(except as stated in this section) patent license to make, have made, +//use, offer to sell, sell, import, and otherwise transfer the Work, +//where such license applies only to those patent claims licensable +//by such Contributor that are necessarily infringed by their +//Contribution(s) alone or by combination of their Contribution(s) +//with the Work to which such Contribution(s) was submitted. If You +//institute patent litigation against any entity (including a +//cross-claim or counterclaim in a lawsuit) alleging that the Work +//or a Contribution incorporated within the Work constitutes direct +//or contributory patent infringement, then any patent licenses +//granted to You under this License for that Work shall terminate +//as of the date such litigation is filed. +// +//4. Redistribution. You may reproduce and distribute copies of the +//Work or Derivative Works thereof in any medium, with or without +//modifications, and in Source or Object form, provided that You +//meet the following conditions: +// +//(a) You must give any other recipients of the Work or +//Derivative Works a copy of this License; and +// +//(b) You must cause any modified files to carry prominent notices +//stating that You changed the files; and +// +//(c) You must retain, in the Source form of any Derivative Works +//that You distribute, all copyright, patent, trademark, and +//attribution notices from the Source form of the Work, +//excluding those notices that do not pertain to any part of +//the Derivative Works; and +// +//(d) If the Work includes a "NOTICE" text file as part of its +//distribution, then any Derivative Works that You distribute must +//include a readable copy of the attribution notices contained +//within such NOTICE file, excluding those notices that do not +//pertain to any part of the Derivative Works, in at least one +//of the following places: within a NOTICE text file distributed +//as part of the Derivative Works; within the Source form or +//documentation, if provided along with the Derivative Works; or, +//within a display generated by the Derivative Works, if and +//wherever such third-party notices normally appear. The contents +//of the NOTICE file are for informational purposes only and +//do not modify the License. You may add Your own attribution +//notices within Derivative Works that You distribute, alongside +//or as an addendum to the NOTICE text from the Work, provided +//that such additional attribution notices cannot be construed +//as modifying the License. +// +//You may add Your own copyright statement to Your modifications and +//may provide additional or different license terms and conditions +//for use, reproduction, or distribution of Your modifications, or +//for any such Derivative Works as a whole, provided Your use, +//reproduction, and distribution of the Work otherwise complies with +//the conditions stated in this License. +// +//5. Submission of Contributions. Unless You explicitly state otherwise, +//any Contribution intentionally submitted for inclusion in the Work +//by You to the Licensor shall be under the terms and conditions of +//this License, without any additional terms or conditions. +//Notwithstanding the above, nothing herein shall supersede or modify +//the terms of any separate license agreement you may have executed +//with Licensor regarding such Contributions. +// +//6. Trademarks. This License does not grant permission to use the trade +//names, trademarks, service marks, or product names of the Licensor, +//except as required for reasonable and customary use in describing the +//origin of the Work and reproducing the content of the NOTICE file. +// +//7. Disclaimer of Warranty. Unless required by applicable law or +//agreed to in writing, Licensor provides the Work (and each +//Contributor provides its Contributions) on an "AS IS" BASIS, +//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +//implied, including, without limitation, any warranties or conditions +//of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +//PARTICULAR PURPOSE. You are solely responsible for determining the +//appropriateness of using or redistributing the Work and assume any +//risks associated with Your exercise of permissions under this License. +// +//8. Limitation of Liability. In no event and under no legal theory, +//whether in tort (including negligence), contract, or otherwise, +//unless required by applicable law (such as deliberate and grossly +//negligent acts) or agreed to in writing, shall any Contributor be +//liable to You for damages, including any direct, indirect, special, +//incidental, or consequential damages of any character arising as a +//result of this License or out of the use or inability to use the +//Work (including but not limited to damages for loss of goodwill, +//work stoppage, computer failure or malfunction, or any and all +//other commercial damages or losses), even if such Contributor +//has been advised of the possibility of such damages. +// +//9. Accepting Warranty or Additional Liability. While redistributing +//the Work or Derivative Works thereof, You may choose to offer, +//and charge a fee for, acceptance of support, warranty, indemnity, +//or other liability obligations and/or rights consistent with this +//License. However, in accepting such obligations, You may act only +//on Your own behalf and on Your sole responsibility, not on behalf +//of any other Contributor, and only if You agree to indemnify, +//defend, and hold each Contributor harmless for any liability +//incurred by, or claims asserted against, such Contributor by reason +//of your accepting any such warranty or additional liability. +// +//END OF TERMS AND CONDITIONS +// +//APPENDIX: How to apply the Apache License to your work. +// +//To apply the Apache License to your work, attach the following +//boilerplate notice, with the fields enclosed by brackets "[]" +//replaced with your own identifying information. (Don't include +//the brackets!) The text should be enclosed in the appropriate +//comment syntax for the file format. We also recommend that a +//file or class name and description of purpose be included on the +//same "printed page" as the copyright notice for easier +//identification within third-party archives. +// +//Copyright [yyyy] [name of copyright owner] +// +//Licensed under the Apache License, Version 2.0 (the "License"); +//you may not use this file except in compliance with the License. +//You may obtain a copy of the License at +// +//http://www.apache.org/licenses/LICENSE-2.0 +// +//Unless required by applicable law or agreed to in writing, software +//distributed under the License is distributed on an "AS IS" BASIS, +//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +//See the License for the specific language governing permissions and +//limitations under the License. + +// adapted from : +// - https://github.com/envoyproxy/envoy/blob/main/api/envoy/type/range.proto +// - https://github.com/envoyproxy/envoy/blob/main/api/envoy/type/http.proto + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.2 +// protoc v3.21.7 +// source: types.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CodecClientType int32 + +const ( + CodecClientType_HTTP1 CodecClientType = 0 + CodecClientType_HTTP2 CodecClientType = 1 + CodecClientType_HTTP3 CodecClientType = 2 +) + +// Enum value maps for CodecClientType. +var ( + CodecClientType_name = map[int32]string{ + 0: "HTTP1", + 1: "HTTP2", + 2: "HTTP3", + } + CodecClientType_value = map[string]int32{ + "HTTP1": 0, + "HTTP2": 1, + "HTTP3": 2, + } +) + +func (x CodecClientType) Enum() *CodecClientType { + p := new(CodecClientType) + *p = x + return p +} + +func (x CodecClientType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CodecClientType) Descriptor() protoreflect.EnumDescriptor { + return file_types_proto_enumTypes[0].Descriptor() +} + +func (CodecClientType) Type() protoreflect.EnumType { + return &file_types_proto_enumTypes[0] +} + +func (x CodecClientType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CodecClientType.Descriptor instead. +func (CodecClientType) EnumDescriptor() ([]byte, []int) { + return file_types_proto_rawDescGZIP(), []int{0} +} + +type Int64Range struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // start of the range (inclusive) + Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` + // end of the range (exclusive) + End int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"` +} + +func (x *Int64Range) Reset() { + *x = Int64Range{} + if protoimpl.UnsafeEnabled { + mi := &file_types_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Int64Range) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Int64Range) ProtoMessage() {} + +func (x *Int64Range) ProtoReflect() protoreflect.Message { + mi := &file_types_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Int64Range.ProtoReflect.Descriptor instead. +func (*Int64Range) Descriptor() ([]byte, []int) { + return file_types_proto_rawDescGZIP(), []int{0} +} + +func (x *Int64Range) GetStart() int64 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *Int64Range) GetEnd() int64 { + if x != nil { + return x.End + } + return 0 +} + +var File_types_proto protoreflect.FileDescriptor + +var file_types_proto_rawDesc = []byte{ + 0x0a, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x70, + 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0x22, 0x34, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x2a, 0x32, 0x0a, 0x0f, 0x43, 0x6f, 0x64, 0x65, 0x63, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x48, 0x54, + 0x54, 0x50, 0x31, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x48, 0x54, 0x54, 0x50, 0x32, 0x10, 0x01, + 0x12, 0x09, 0x0a, 0x05, 0x48, 0x54, 0x54, 0x50, 0x33, 0x10, 0x02, 0x42, 0x2d, 0x5a, 0x2b, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, + 0x75, 0x6d, 0x2f, 0x70, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x73, + 0x6f, 0x6c, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_types_proto_rawDescOnce sync.Once + file_types_proto_rawDescData = file_types_proto_rawDesc +) + +func file_types_proto_rawDescGZIP() []byte { + file_types_proto_rawDescOnce.Do(func() { + file_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_types_proto_rawDescData) + }) + return file_types_proto_rawDescData +} + +var file_types_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_types_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_types_proto_goTypes = []any{ + (CodecClientType)(0), // 0: pomerium.dashboard.CodecClientType + (*Int64Range)(nil), // 1: pomerium.dashboard.Int64Range +} +var file_types_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_types_proto_init() } +func file_types_proto_init() { + if File_types_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_types_proto_msgTypes[0].Exporter = func(v any, i int) any { + switch v := v.(*Int64Range); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_types_proto_rawDesc, + NumEnums: 1, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_types_proto_goTypes, + DependencyIndexes: file_types_proto_depIdxs, + EnumInfos: file_types_proto_enumTypes, + MessageInfos: file_types_proto_msgTypes, + }.Build() + File_types_proto = out.File + file_types_proto_rawDesc = nil + file_types_proto_goTypes = nil + file_types_proto_depIdxs = nil +} diff --git a/pb/types.pb.validate.go b/pb/types.pb.validate.go new file mode 100644 index 0000000..81fa740 --- /dev/null +++ b/pb/types.pb.validate.go @@ -0,0 +1,139 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: types.proto + +package pb + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "sort" + "strings" + "time" + "unicode/utf8" + + "google.golang.org/protobuf/types/known/anypb" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = anypb.Any{} + _ = sort.Sort +) + +// Validate checks the field values on Int64Range with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Int64Range) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Int64Range with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in Int64RangeMultiError, or +// nil if none found. +func (m *Int64Range) ValidateAll() error { + return m.validate(true) +} + +func (m *Int64Range) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Start + + // no validation rules for End + + if len(errors) > 0 { + return Int64RangeMultiError(errors) + } + + return nil +} + +// Int64RangeMultiError is an error wrapping multiple validation errors +// returned by Int64Range.ValidateAll() if the designated constraints aren't met. +type Int64RangeMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m Int64RangeMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m Int64RangeMultiError) AllErrors() []error { return m } + +// Int64RangeValidationError is the validation error returned by +// Int64Range.Validate if the designated constraints aren't met. +type Int64RangeValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Int64RangeValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Int64RangeValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Int64RangeValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Int64RangeValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Int64RangeValidationError) ErrorName() string { return "Int64RangeValidationError" } + +// Error satisfies the builtin error interface +func (e Int64RangeValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sInt64Range.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Int64RangeValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Int64RangeValidationError{} diff --git a/scripts/update.bash b/scripts/update.bash index 3555c1d..8176683 100755 --- a/scripts/update.bash +++ b/scripts/update.bash @@ -13,13 +13,28 @@ git clone \ --depth 1 \ --filter=blob:none \ --sparse \ - --branch "$_tag" \ git@github.com:pomerium/pomerium-console \ "$_temp_dir" -(cd "$_temp_dir" && git sparse-checkout set pkg/pb) -cp -f "$_temp_dir/pkg/pb/"*.pb.go "$_script_dir/../pb/" +(cd "$_temp_dir" && git fetch --depth 1 origin "$_tag" && git checkout "$_tag" && git sparse-checkout set pkg/pb) + +_files=( + activity_log + devices + external_data_sources + key_chain + namespaces + policy + route_health_check + route_redirect_action + routes + settings + types + users +) + +for file in "${_files[@]}"; do + cp -f "$_temp_dir/pkg/pb/"${file}*.pb*.go "$_script_dir/../pb/" +done -# update pomerium cd "$_script_dir/.." -go get -u github.com/pomerium/pomerium@"$_tag" go mod tidy