From 17c0645dc62c5ee1d572a5ac636130e5ddb01861 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Thu, 4 Dec 2025 12:58:56 -0800 Subject: [PATCH] fix typos, re-run protoc (#686) * fix typos in docs * use keys in named literal For easier grepping, and better stability. * libplugin: regenerate with v1.36.10 592ca79999907674b64af47287aee805c64e7055 upgraded the dependency, but didn't actually regenerate. --- CONTRIBUTING.md | 19 +- README.md | 10 +- cmd/sshpiperd/internal/plugin/grpc.go | 2 +- cmd/sshpiperd/snap/README.md | 4 +- libplugin/plugin.pb.go | 1809 +++++++------------------ libplugin/plugin_grpc.pb.go | 240 ++-- plugin/failtoban/README.md | 2 +- plugin/kubernetes/README.md | 4 +- plugin/yaml/README.md | 2 +- 9 files changed, 645 insertions(+), 1447 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9e3aae88..64e9fa75 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing -Thank you for your interest in contributing to sshpiper. +Thank you for your interest in contributing to sshpiper. Make sure you have read [README.md](README.md) before starting. ## Getting Started @@ -13,7 +13,7 @@ Make sure you have read [README.md](README.md) before starting. ### Get the code -rememeber to clone the submodules +remember to clone the submodules ``` git clone https://github.com/tg123/sshpiper @@ -42,7 +42,7 @@ more settings: after you have done, attach to testrunner container: ``` -docker exec -ti e2e_testrunner_1 bash +docker exec -ti e2e-testrunner-1 bash ``` then run test in `/src/e2e` @@ -57,9 +57,9 @@ go test ## Understanding how sshpiper works -### sshpiper seasoned cryto ssh lib +### sshpiper seasoned crypto ssh lib -The `crypto` folder contains the source code of the [sshpiper seasoned cryto ssh lib](./crypto/). +The `crypto` folder contains the source code of the [sshpiper seasoned crypto ssh lib](./crypto/). It based on [crypto/ssh](https://golang.org/pkg/crypto/ssh/) and with a drop-in [sshpiper.go](./crypto/ssh/sshpiper.go) to expose all low level sshpiper required APIs. ### sshpiperd @@ -70,10 +70,10 @@ The plugins are responsible to figure out how to authenticate `downstream` and m ### plugin -The plugin is typically a grpc server that accepts requrests from `sshpiperd`. +The plugin is typically a grpc server that accepts requests from `sshpiperd`. The proto defines in [sshpiper.proto](./proto/sshpiper.proto). -In most of the cases, the plugin connects with `sshpiperd` via `stdin/stdout`. The [ioconnn](./libplugin/ioconn/) wraps stdin/stdout to net.Conn for grpc use. +In most of the cases, the plugin connects with `sshpiperd` via `stdin/stdout`. The [ioconn](./libplugin/ioconn/) wraps stdin/stdout to net.Conn for grpc use. `sshpiperd` also supports to create remote grpc connections to a plugin deploy in a different machine. ## Your first plugin @@ -96,8 +96,8 @@ Take `fixed` as an example: } ``` -Here means the `downstream` is sending password to `sshpiperd`. Then `sshpiperd` will call plugin's `PasswordCallback` to get the `upstream` to connect to. -The `upstream` object contains host port and auth info about how to connect to the `upstream`. you can aslo return an error to deny the connection. +Here means the `downstream` is sending password to `sshpiperd`. Then `sshpiperd` will call plugin's `PasswordCallback` to get the `upstream` to connect to. +The `upstream` object contains host port and auth info about how to connect to the `upstream`. you can also return an error to deny the connection. ### build and run the plugin @@ -112,4 +112,3 @@ you will get the executable in the current directory. say `myplugin`. start it w ``` sshpiperd /path/to/myplugin ``` - diff --git a/README.md b/README.md index 6dfa6c9a..1b8f03a2 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ ssh 127.0.0.1 -l user -p 2222 ### ➕ math before login? -Here illustrates the example of `addional challenge` before the `fixed` plugin. +Here illustrates the example of `additional challenge` before the `fixed` plugin. ``` ./out/sshpiperd -i /tmp/sshpiperkey --server-key-generate-mode notexist --log-level=trace ./out/simplemath -- ./out/fixed --target 127.0.0.1:5522 @@ -80,12 +80,12 @@ Here illustrates the example of `addional challenge` before the `fixed` plugin. ### icons * 🔀: routing plugin - * 🔒: addtional challenge plugin + * 🔒: additional challenge plugin * 📈: metrics plugin Plugin list - * [workingdir](plugin/workingdir/) 🔀: `/home`-like directory to managed upstreams routing by sshpiped. + * [workingdir](plugin/workingdir/) 🔀: `/home`-like directory to managed upstreams routing by sshpiperd. * [yaml](plugin/yaml/) 🔀: config routing with a single yaml file. * [docker](plugin/docker/) 🔀: pipe into docker containers. * [kubernetes](plugin/kubernetes/) 🔀: manage pipes via Kubernetes CRD. @@ -99,7 +99,7 @@ Plugin list * [openpubkey](https://github.com/tg123/sshpiper-openpubkey)🔀🔒: integrate with [openpubkey](https://github.com/openpubkey/openpubkey) * [metrics](plugin/metrics/) 📈: serve prometheus metrics on open connections and auth errors -## Screening recording +## Screen recording ### asciicast @@ -183,7 +183,7 @@ How this work * low level sshpiper api is fully redesigned to support more routing protocols. * plugins system totally redesigned to be more flexible and extensible. - * plugins are now sperated from main process and no longer a single big binary, this allow user to write their own plugins without touching `sshpiperd` code. + * plugins are now separated from main process and no longer a single big binary, this allow user to write their own plugins without touching `sshpiperd` code. * `grpc` is first class now, the plugins are built on top of it For plugins already in `v1`, you need change params to new params. However, not all plugins are migrated to `v1` yet, they are being migrated gradually. you can still use the old plugins in [`v0` branch](https://github.com/tg123/sshpiper/tree/v0) diff --git a/cmd/sshpiperd/internal/plugin/grpc.go b/cmd/sshpiperd/internal/plugin/grpc.go index 614492ad..6c3750d2 100644 --- a/cmd/sshpiperd/internal/plugin/grpc.go +++ b/cmd/sshpiperd/internal/plugin/grpc.go @@ -606,7 +606,7 @@ func DialCmd(cmd *exec.Cmd) (*CmdPlugin, error) { return nil, err } - return &CmdPlugin{*g, ch}, nil + return &CmdPlugin{GrpcPlugin: *g, Quit: ch}, nil } func GetUniqueID(ctx ssh.ChallengeContext) string { diff --git a/cmd/sshpiperd/snap/README.md b/cmd/sshpiperd/snap/README.md index f5861777..ce2eb872 100644 --- a/cmd/sshpiperd/snap/README.md +++ b/cmd/sshpiperd/snap/README.md @@ -22,8 +22,8 @@ sudo snap restart sshpiperd * `sshpiperd.port` listening port * `sshpiperd.server-key` server key files, support wildcard * `sshpiperd.server-key-data` server key in base64 format, server-key, server-key-generate-mode will be ignored if set - * `sshpiperd.server-key-generate-mode` server key generate mode, one of: disable, notexist, always. generated key will be written to `server-key` if * no`texist or always - * `sshpiperd.login-grace-time` sshpiperd forcely close the connection after this time if the pipe has not successfully established + * `sshpiperd.server-key-generate-mode` server key generate mode, one of: disable, notexist, always. generated key will be written to `server-key` if * notexist or always + * `sshpiperd.login-grace-time` sshpiperd forcibly close the connection after this time if the pipe has not successfully established * `sshpiperd.log-level` log level, one of: trace, debug, info, warn, error, fatal, panic * `sshpiperd.typescript-log-dir` create typescript format screen recording and save into the directory see https://linux.die.net/man/1/script * `sshpiperd.banner-text` display a banner before authentication, would be ignored if banner file was set diff --git a/libplugin/plugin.pb.go b/libplugin/plugin.pb.go index b69210a6..8e51ddfd 100644 --- a/libplugin/plugin.pb.go +++ b/libplugin/plugin.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v4.25.1 +// protoc-gen-go v1.36.10 +// protoc v6.32.1 // source: plugin.proto package libplugin @@ -11,6 +11,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -73,23 +74,20 @@ func (AuthMethod) EnumDescriptor() ([]byte, []int) { } type ConnMeta struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + FromAddr string `protobuf:"bytes,2,opt,name=from_addr,json=fromAddr,proto3" json:"from_addr,omitempty"` + UniqId string `protobuf:"bytes,3,opt,name=uniq_id,json=uniqId,proto3" json:"uniq_id,omitempty"` + Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - FromAddr string `protobuf:"bytes,2,opt,name=from_addr,json=fromAddr,proto3" json:"from_addr,omitempty"` - UniqId string `protobuf:"bytes,3,opt,name=uniq_id,json=uniqId,proto3" json:"uniq_id,omitempty"` - Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ConnMeta) Reset() { *x = ConnMeta{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ConnMeta) String() string { @@ -100,7 +98,7 @@ func (*ConnMeta) ProtoMessage() {} func (x *ConnMeta) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -144,22 +142,19 @@ func (x *ConnMeta) GetMetadata() map[string]string { } type Upstream struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Deprecated fields use uri instead. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in plugin.proto. Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` // Deprecated fields use uri instead. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in plugin.proto. Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` UserName string `protobuf:"bytes,3,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` IgnoreHostKey bool `protobuf:"varint,4,opt,name=ignore_host_key,json=ignoreHostKey,proto3" json:"ignore_host_key,omitempty"` Uri string `protobuf:"bytes,5,opt,name=uri,proto3" json:"uri,omitempty"` - // Types that are assignable to Auth: + // Types that are valid to be assigned to Auth: // // *Upstream_None // *Upstream_Password @@ -167,16 +162,16 @@ type Upstream struct { // *Upstream_RemoteSigner // *Upstream_NextPlugin // *Upstream_RetryCurrentPlugin - Auth isUpstream_Auth `protobuf_oneof:"auth"` + Auth isUpstream_Auth `protobuf_oneof:"auth"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Upstream) Reset() { *x = Upstream{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Upstream) String() string { @@ -187,7 +182,7 @@ func (*Upstream) ProtoMessage() {} func (x *Upstream) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -202,7 +197,7 @@ func (*Upstream) Descriptor() ([]byte, []int) { return file_plugin_proto_rawDescGZIP(), []int{1} } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in plugin.proto. func (x *Upstream) GetHost() string { if x != nil { return x.Host @@ -210,7 +205,7 @@ func (x *Upstream) GetHost() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in plugin.proto. func (x *Upstream) GetPort() int32 { if x != nil { return x.Port @@ -239,51 +234,63 @@ func (x *Upstream) GetUri() string { return "" } -func (m *Upstream) GetAuth() isUpstream_Auth { - if m != nil { - return m.Auth +func (x *Upstream) GetAuth() isUpstream_Auth { + if x != nil { + return x.Auth } return nil } func (x *Upstream) GetNone() *UpstreamNoneAuth { - if x, ok := x.GetAuth().(*Upstream_None); ok { - return x.None + if x != nil { + if x, ok := x.Auth.(*Upstream_None); ok { + return x.None + } } return nil } func (x *Upstream) GetPassword() *UpstreamPasswordAuth { - if x, ok := x.GetAuth().(*Upstream_Password); ok { - return x.Password + if x != nil { + if x, ok := x.Auth.(*Upstream_Password); ok { + return x.Password + } } return nil } func (x *Upstream) GetPrivateKey() *UpstreamPrivateKeyAuth { - if x, ok := x.GetAuth().(*Upstream_PrivateKey); ok { - return x.PrivateKey + if x != nil { + if x, ok := x.Auth.(*Upstream_PrivateKey); ok { + return x.PrivateKey + } } return nil } func (x *Upstream) GetRemoteSigner() *UpstreamRemoteSignerAuth { - if x, ok := x.GetAuth().(*Upstream_RemoteSigner); ok { - return x.RemoteSigner + if x != nil { + if x, ok := x.Auth.(*Upstream_RemoteSigner); ok { + return x.RemoteSigner + } } return nil } func (x *Upstream) GetNextPlugin() *UpstreamNextPluginAuth { - if x, ok := x.GetAuth().(*Upstream_NextPlugin); ok { - return x.NextPlugin + if x != nil { + if x, ok := x.Auth.(*Upstream_NextPlugin); ok { + return x.NextPlugin + } } return nil } func (x *Upstream) GetRetryCurrentPlugin() *UpstreamRetryCurrentPluginAuth { - if x, ok := x.GetAuth().(*Upstream_RetryCurrentPlugin); ok { - return x.RetryCurrentPlugin + if x != nil { + if x, ok := x.Auth.(*Upstream_RetryCurrentPlugin); ok { + return x.RetryCurrentPlugin + } } return nil } @@ -329,18 +336,16 @@ func (*Upstream_NextPlugin) isUpstream_Auth() {} func (*Upstream_RetryCurrentPlugin) isUpstream_Auth() {} type UpstreamNoneAuth struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpstreamNoneAuth) Reset() { *x = UpstreamNoneAuth{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpstreamNoneAuth) String() string { @@ -351,7 +356,7 @@ func (*UpstreamNoneAuth) ProtoMessage() {} func (x *UpstreamNoneAuth) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -367,20 +372,17 @@ func (*UpstreamNoneAuth) Descriptor() ([]byte, []int) { } type UpstreamPasswordAuth struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"` unknownFields protoimpl.UnknownFields - - Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpstreamPasswordAuth) Reset() { *x = UpstreamPasswordAuth{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpstreamPasswordAuth) String() string { @@ -391,7 +393,7 @@ func (*UpstreamPasswordAuth) ProtoMessage() {} func (x *UpstreamPasswordAuth) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -414,21 +416,18 @@ func (x *UpstreamPasswordAuth) GetPassword() string { } type UpstreamPrivateKeyAuth struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + PrivateKey []byte `protobuf:"bytes,1,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` + CaPublicKey []byte `protobuf:"bytes,2,opt,name=ca_public_key,json=caPublicKey,proto3" json:"ca_public_key,omitempty"` unknownFields protoimpl.UnknownFields - - PrivateKey []byte `protobuf:"bytes,1,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` - CaPublicKey []byte `protobuf:"bytes,2,opt,name=ca_public_key,json=caPublicKey,proto3" json:"ca_public_key,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpstreamPrivateKeyAuth) Reset() { *x = UpstreamPrivateKeyAuth{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpstreamPrivateKeyAuth) String() string { @@ -439,7 +438,7 @@ func (*UpstreamPrivateKeyAuth) ProtoMessage() {} func (x *UpstreamPrivateKeyAuth) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -469,20 +468,17 @@ func (x *UpstreamPrivateKeyAuth) GetCaPublicKey() []byte { } type UpstreamRemoteSignerAuth struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta string `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` unknownFields protoimpl.UnknownFields - - Meta string `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpstreamRemoteSignerAuth) Reset() { *x = UpstreamRemoteSignerAuth{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpstreamRemoteSignerAuth) String() string { @@ -493,7 +489,7 @@ func (*UpstreamRemoteSignerAuth) ProtoMessage() {} func (x *UpstreamRemoteSignerAuth) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -516,20 +512,17 @@ func (x *UpstreamRemoteSignerAuth) GetMeta() string { } type UpstreamNextPluginAuth struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta map[string]string `protobuf:"bytes,1,rep,name=meta,proto3" json:"meta,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Meta map[string]string `protobuf:"bytes,1,rep,name=meta,proto3" json:"meta,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *UpstreamNextPluginAuth) Reset() { *x = UpstreamNextPluginAuth{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpstreamNextPluginAuth) String() string { @@ -540,7 +533,7 @@ func (*UpstreamNextPluginAuth) ProtoMessage() {} func (x *UpstreamNextPluginAuth) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -563,20 +556,17 @@ func (x *UpstreamNextPluginAuth) GetMeta() map[string]string { } type UpstreamRetryCurrentPluginAuth struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta map[string]string `protobuf:"bytes,1,rep,name=meta,proto3" json:"meta,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Meta map[string]string `protobuf:"bytes,1,rep,name=meta,proto3" json:"meta,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *UpstreamRetryCurrentPluginAuth) Reset() { *x = UpstreamRetryCurrentPluginAuth{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpstreamRetryCurrentPluginAuth) String() string { @@ -587,7 +577,7 @@ func (*UpstreamRetryCurrentPluginAuth) ProtoMessage() {} func (x *UpstreamRetryCurrentPluginAuth) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -610,22 +600,19 @@ func (x *UpstreamRetryCurrentPluginAuth) GetMeta() map[string]string { } type StartLogRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UniqId string `protobuf:"bytes,1,opt,name=uniq_id,json=uniqId,proto3" json:"uniq_id,omitempty"` + Level string `protobuf:"bytes,2,opt,name=level,proto3" json:"level,omitempty"` + Tty bool `protobuf:"varint,3,opt,name=tty,proto3" json:"tty,omitempty"` unknownFields protoimpl.UnknownFields - - UniqId string `protobuf:"bytes,1,opt,name=uniq_id,json=uniqId,proto3" json:"uniq_id,omitempty"` - Level string `protobuf:"bytes,2,opt,name=level,proto3" json:"level,omitempty"` - Tty bool `protobuf:"varint,3,opt,name=tty,proto3" json:"tty,omitempty"` + sizeCache protoimpl.SizeCache } func (x *StartLogRequest) Reset() { *x = StartLogRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartLogRequest) String() string { @@ -636,7 +623,7 @@ func (*StartLogRequest) ProtoMessage() {} func (x *StartLogRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -673,20 +660,17 @@ func (x *StartLogRequest) GetTty() bool { } type Log struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Log) Reset() { *x = Log{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Log) String() string { @@ -697,7 +681,7 @@ func (*Log) ProtoMessage() {} func (x *Log) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -720,18 +704,16 @@ func (x *Log) GetMessage() string { } type ListCallbackRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListCallbackRequest) Reset() { *x = ListCallbackRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListCallbackRequest) String() string { @@ -742,7 +724,7 @@ func (*ListCallbackRequest) ProtoMessage() {} func (x *ListCallbackRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -758,20 +740,17 @@ func (*ListCallbackRequest) Descriptor() ([]byte, []int) { } type ListCallbackResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Callbacks []string `protobuf:"bytes,1,rep,name=callbacks,proto3" json:"callbacks,omitempty"` unknownFields protoimpl.UnknownFields - - Callbacks []string `protobuf:"bytes,1,rep,name=callbacks,proto3" json:"callbacks,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListCallbackResponse) Reset() { *x = ListCallbackResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListCallbackResponse) String() string { @@ -782,7 +761,7 @@ func (*ListCallbackResponse) ProtoMessage() {} func (x *ListCallbackResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -805,20 +784,17 @@ func (x *ListCallbackResponse) GetCallbacks() []string { } type NewConnectionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` unknownFields protoimpl.UnknownFields - - Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NewConnectionRequest) Reset() { *x = NewConnectionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NewConnectionRequest) String() string { @@ -829,7 +805,7 @@ func (*NewConnectionRequest) ProtoMessage() {} func (x *NewConnectionRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -852,18 +828,16 @@ func (x *NewConnectionRequest) GetMeta() *ConnMeta { } type NewConnectionResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *NewConnectionResponse) Reset() { *x = NewConnectionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NewConnectionResponse) String() string { @@ -874,7 +848,7 @@ func (*NewConnectionResponse) ProtoMessage() {} func (x *NewConnectionResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -890,20 +864,17 @@ func (*NewConnectionResponse) Descriptor() ([]byte, []int) { } type NextAuthMethodsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` unknownFields protoimpl.UnknownFields - - Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NextAuthMethodsRequest) Reset() { *x = NextAuthMethodsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NextAuthMethodsRequest) String() string { @@ -914,7 +885,7 @@ func (*NextAuthMethodsRequest) ProtoMessage() {} func (x *NextAuthMethodsRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -937,20 +908,17 @@ func (x *NextAuthMethodsRequest) GetMeta() *ConnMeta { } type NextAuthMethodsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Methods []AuthMethod `protobuf:"varint,1,rep,packed,name=methods,proto3,enum=libplugin.AuthMethod" json:"methods,omitempty"` unknownFields protoimpl.UnknownFields - - Methods []AuthMethod `protobuf:"varint,1,rep,packed,name=methods,proto3,enum=libplugin.AuthMethod" json:"methods,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NextAuthMethodsResponse) Reset() { *x = NextAuthMethodsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NextAuthMethodsResponse) String() string { @@ -961,7 +929,7 @@ func (*NextAuthMethodsResponse) ProtoMessage() {} func (x *NextAuthMethodsResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -984,20 +952,17 @@ func (x *NextAuthMethodsResponse) GetMethods() []AuthMethod { } type NoneAuthRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` unknownFields protoimpl.UnknownFields - - Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NoneAuthRequest) Reset() { *x = NoneAuthRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NoneAuthRequest) String() string { @@ -1008,7 +973,7 @@ func (*NoneAuthRequest) ProtoMessage() {} func (x *NoneAuthRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1031,20 +996,17 @@ func (x *NoneAuthRequest) GetMeta() *ConnMeta { } type NoneAuthResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Upstream *Upstream `protobuf:"bytes,1,opt,name=upstream,proto3" json:"upstream,omitempty"` unknownFields protoimpl.UnknownFields - - Upstream *Upstream `protobuf:"bytes,1,opt,name=upstream,proto3" json:"upstream,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NoneAuthResponse) Reset() { *x = NoneAuthResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NoneAuthResponse) String() string { @@ -1055,7 +1017,7 @@ func (*NoneAuthResponse) ProtoMessage() {} func (x *NoneAuthResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1078,21 +1040,18 @@ func (x *NoneAuthResponse) GetUpstream() *Upstream { } type PasswordAuthRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + Password []byte `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` unknownFields protoimpl.UnknownFields - - Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` - Password []byte `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PasswordAuthRequest) Reset() { *x = PasswordAuthRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PasswordAuthRequest) String() string { @@ -1103,7 +1062,7 @@ func (*PasswordAuthRequest) ProtoMessage() {} func (x *PasswordAuthRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1133,20 +1092,17 @@ func (x *PasswordAuthRequest) GetPassword() []byte { } type PasswordAuthResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Upstream *Upstream `protobuf:"bytes,1,opt,name=upstream,proto3" json:"upstream,omitempty"` unknownFields protoimpl.UnknownFields - - Upstream *Upstream `protobuf:"bytes,1,opt,name=upstream,proto3" json:"upstream,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PasswordAuthResponse) Reset() { *x = PasswordAuthResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PasswordAuthResponse) String() string { @@ -1157,7 +1113,7 @@ func (*PasswordAuthResponse) ProtoMessage() {} func (x *PasswordAuthResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1180,21 +1136,18 @@ func (x *PasswordAuthResponse) GetUpstream() *Upstream { } type PublicKeyAuthRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + PublicKey []byte `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` unknownFields protoimpl.UnknownFields - - Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` - PublicKey []byte `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PublicKeyAuthRequest) Reset() { *x = PublicKeyAuthRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PublicKeyAuthRequest) String() string { @@ -1205,7 +1158,7 @@ func (*PublicKeyAuthRequest) ProtoMessage() {} func (x *PublicKeyAuthRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1235,20 +1188,17 @@ func (x *PublicKeyAuthRequest) GetPublicKey() []byte { } type PublicKeyAuthResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Upstream *Upstream `protobuf:"bytes,1,opt,name=upstream,proto3" json:"upstream,omitempty"` unknownFields protoimpl.UnknownFields - - Upstream *Upstream `protobuf:"bytes,1,opt,name=upstream,proto3" json:"upstream,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PublicKeyAuthResponse) Reset() { *x = PublicKeyAuthResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PublicKeyAuthResponse) String() string { @@ -1259,7 +1209,7 @@ func (*PublicKeyAuthResponse) ProtoMessage() {} func (x *PublicKeyAuthResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1282,20 +1232,17 @@ func (x *PublicKeyAuthResponse) GetUpstream() *Upstream { } type KeyboardInteractiveUserResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Answers []string `protobuf:"bytes,1,rep,name=answers,proto3" json:"answers,omitempty"` unknownFields protoimpl.UnknownFields - - Answers []string `protobuf:"bytes,1,rep,name=answers,proto3" json:"answers,omitempty"` + sizeCache protoimpl.SizeCache } func (x *KeyboardInteractiveUserResponse) Reset() { *x = KeyboardInteractiveUserResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *KeyboardInteractiveUserResponse) String() string { @@ -1306,7 +1253,7 @@ func (*KeyboardInteractiveUserResponse) ProtoMessage() {} func (x *KeyboardInteractiveUserResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1329,22 +1276,19 @@ func (x *KeyboardInteractiveUserResponse) GetAnswers() []string { } type KeyboardInteractivePromptRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Instruction string `protobuf:"bytes,2,opt,name=instruction,proto3" json:"instruction,omitempty"` + Questions []*KeyboardInteractivePromptRequest_Question `protobuf:"bytes,3,rep,name=questions,proto3" json:"questions,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Instruction string `protobuf:"bytes,2,opt,name=instruction,proto3" json:"instruction,omitempty"` - Questions []*KeyboardInteractivePromptRequest_Question `protobuf:"bytes,3,rep,name=questions,proto3" json:"questions,omitempty"` + sizeCache protoimpl.SizeCache } func (x *KeyboardInteractivePromptRequest) Reset() { *x = KeyboardInteractivePromptRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *KeyboardInteractivePromptRequest) String() string { @@ -1355,7 +1299,7 @@ func (*KeyboardInteractivePromptRequest) ProtoMessage() {} func (x *KeyboardInteractivePromptRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1392,18 +1336,16 @@ func (x *KeyboardInteractivePromptRequest) GetQuestions() []*KeyboardInteractive } type KeyboardInteractiveMetaRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *KeyboardInteractiveMetaRequest) Reset() { *x = KeyboardInteractiveMetaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *KeyboardInteractiveMetaRequest) String() string { @@ -1414,7 +1356,7 @@ func (*KeyboardInteractiveMetaRequest) ProtoMessage() {} func (x *KeyboardInteractiveMetaRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1430,20 +1372,17 @@ func (*KeyboardInteractiveMetaRequest) Descriptor() ([]byte, []int) { } type KeyboardInteractiveMetaResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` unknownFields protoimpl.UnknownFields - - Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + sizeCache protoimpl.SizeCache } func (x *KeyboardInteractiveMetaResponse) Reset() { *x = KeyboardInteractiveMetaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *KeyboardInteractiveMetaResponse) String() string { @@ -1454,7 +1393,7 @@ func (*KeyboardInteractiveMetaResponse) ProtoMessage() {} func (x *KeyboardInteractiveMetaResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1477,20 +1416,17 @@ func (x *KeyboardInteractiveMetaResponse) GetMeta() *ConnMeta { } type KeyboardInteractiveFinishRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Upstream *Upstream `protobuf:"bytes,1,opt,name=upstream,proto3" json:"upstream,omitempty"` unknownFields protoimpl.UnknownFields - - Upstream *Upstream `protobuf:"bytes,1,opt,name=upstream,proto3" json:"upstream,omitempty"` + sizeCache protoimpl.SizeCache } func (x *KeyboardInteractiveFinishRequest) Reset() { *x = KeyboardInteractiveFinishRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *KeyboardInteractiveFinishRequest) String() string { @@ -1501,7 +1437,7 @@ func (*KeyboardInteractiveFinishRequest) ProtoMessage() {} func (x *KeyboardInteractiveFinishRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1524,27 +1460,24 @@ func (x *KeyboardInteractiveFinishRequest) GetUpstream() *Upstream { } type KeyboardInteractiveAuthMessage struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Message: + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Message: // // *KeyboardInteractiveAuthMessage_PromptRequest // *KeyboardInteractiveAuthMessage_UserResponse // *KeyboardInteractiveAuthMessage_MetaRequest // *KeyboardInteractiveAuthMessage_MetaResponse // *KeyboardInteractiveAuthMessage_FinishRequest - Message isKeyboardInteractiveAuthMessage_Message `protobuf_oneof:"message"` + Message isKeyboardInteractiveAuthMessage_Message `protobuf_oneof:"message"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *KeyboardInteractiveAuthMessage) Reset() { *x = KeyboardInteractiveAuthMessage{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *KeyboardInteractiveAuthMessage) String() string { @@ -1555,7 +1488,7 @@ func (*KeyboardInteractiveAuthMessage) ProtoMessage() {} func (x *KeyboardInteractiveAuthMessage) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1570,44 +1503,54 @@ func (*KeyboardInteractiveAuthMessage) Descriptor() ([]byte, []int) { return file_plugin_proto_rawDescGZIP(), []int{27} } -func (m *KeyboardInteractiveAuthMessage) GetMessage() isKeyboardInteractiveAuthMessage_Message { - if m != nil { - return m.Message +func (x *KeyboardInteractiveAuthMessage) GetMessage() isKeyboardInteractiveAuthMessage_Message { + if x != nil { + return x.Message } return nil } func (x *KeyboardInteractiveAuthMessage) GetPromptRequest() *KeyboardInteractivePromptRequest { - if x, ok := x.GetMessage().(*KeyboardInteractiveAuthMessage_PromptRequest); ok { - return x.PromptRequest + if x != nil { + if x, ok := x.Message.(*KeyboardInteractiveAuthMessage_PromptRequest); ok { + return x.PromptRequest + } } return nil } func (x *KeyboardInteractiveAuthMessage) GetUserResponse() *KeyboardInteractiveUserResponse { - if x, ok := x.GetMessage().(*KeyboardInteractiveAuthMessage_UserResponse); ok { - return x.UserResponse + if x != nil { + if x, ok := x.Message.(*KeyboardInteractiveAuthMessage_UserResponse); ok { + return x.UserResponse + } } return nil } func (x *KeyboardInteractiveAuthMessage) GetMetaRequest() *KeyboardInteractiveMetaRequest { - if x, ok := x.GetMessage().(*KeyboardInteractiveAuthMessage_MetaRequest); ok { - return x.MetaRequest + if x != nil { + if x, ok := x.Message.(*KeyboardInteractiveAuthMessage_MetaRequest); ok { + return x.MetaRequest + } } return nil } func (x *KeyboardInteractiveAuthMessage) GetMetaResponse() *KeyboardInteractiveMetaResponse { - if x, ok := x.GetMessage().(*KeyboardInteractiveAuthMessage_MetaResponse); ok { - return x.MetaResponse + if x != nil { + if x, ok := x.Message.(*KeyboardInteractiveAuthMessage_MetaResponse); ok { + return x.MetaResponse + } } return nil } func (x *KeyboardInteractiveAuthMessage) GetFinishRequest() *KeyboardInteractiveFinishRequest { - if x, ok := x.GetMessage().(*KeyboardInteractiveAuthMessage_FinishRequest); ok { - return x.FinishRequest + if x != nil { + if x, ok := x.Message.(*KeyboardInteractiveAuthMessage_FinishRequest); ok { + return x.FinishRequest + } } return nil } @@ -1647,23 +1590,20 @@ func (*KeyboardInteractiveAuthMessage_MetaResponse) isKeyboardInteractiveAuthMes func (*KeyboardInteractiveAuthMessage_FinishRequest) isKeyboardInteractiveAuthMessage_Message() {} type UpstreamAuthFailureNoticeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` - Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` - Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` - AllowedMethods []AuthMethod `protobuf:"varint,4,rep,packed,name=allowed_methods,json=allowedMethods,proto3,enum=libplugin.AuthMethod" json:"allowed_methods,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` + Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` + AllowedMethods []AuthMethod `protobuf:"varint,4,rep,packed,name=allowed_methods,json=allowedMethods,proto3,enum=libplugin.AuthMethod" json:"allowed_methods,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpstreamAuthFailureNoticeRequest) Reset() { *x = UpstreamAuthFailureNoticeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpstreamAuthFailureNoticeRequest) String() string { @@ -1674,7 +1614,7 @@ func (*UpstreamAuthFailureNoticeRequest) ProtoMessage() {} func (x *UpstreamAuthFailureNoticeRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1718,18 +1658,16 @@ func (x *UpstreamAuthFailureNoticeRequest) GetAllowedMethods() []AuthMethod { } type UpstreamAuthFailureNoticeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpstreamAuthFailureNoticeResponse) Reset() { *x = UpstreamAuthFailureNoticeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpstreamAuthFailureNoticeResponse) String() string { @@ -1740,7 +1678,7 @@ func (*UpstreamAuthFailureNoticeResponse) ProtoMessage() {} func (x *UpstreamAuthFailureNoticeResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1756,20 +1694,17 @@ func (*UpstreamAuthFailureNoticeResponse) Descriptor() ([]byte, []int) { } type BannerRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` unknownFields protoimpl.UnknownFields - - Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + sizeCache protoimpl.SizeCache } func (x *BannerRequest) Reset() { *x = BannerRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BannerRequest) String() string { @@ -1780,7 +1715,7 @@ func (*BannerRequest) ProtoMessage() {} func (x *BannerRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1803,20 +1738,17 @@ func (x *BannerRequest) GetMeta() *ConnMeta { } type BannerResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + sizeCache protoimpl.SizeCache } func (x *BannerResponse) Reset() { *x = BannerResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BannerResponse) String() string { @@ -1827,7 +1759,7 @@ func (*BannerResponse) ProtoMessage() {} func (x *BannerResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1850,23 +1782,20 @@ func (x *BannerResponse) GetMessage() string { } type VerifyHostKeyRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + Hostname string `protobuf:"bytes,3,opt,name=hostname,proto3" json:"hostname,omitempty"` + Netaddress string `protobuf:"bytes,4,opt,name=netaddress,proto3" json:"netaddress,omitempty"` unknownFields protoimpl.UnknownFields - - Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` - Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` - Hostname string `protobuf:"bytes,3,opt,name=hostname,proto3" json:"hostname,omitempty"` - Netaddress string `protobuf:"bytes,4,opt,name=netaddress,proto3" json:"netaddress,omitempty"` + sizeCache protoimpl.SizeCache } func (x *VerifyHostKeyRequest) Reset() { *x = VerifyHostKeyRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VerifyHostKeyRequest) String() string { @@ -1877,7 +1806,7 @@ func (*VerifyHostKeyRequest) ProtoMessage() {} func (x *VerifyHostKeyRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1921,20 +1850,17 @@ func (x *VerifyHostKeyRequest) GetNetaddress() string { } type VerifyHostKeyResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Verified bool `protobuf:"varint,1,opt,name=verified,proto3" json:"verified,omitempty"` unknownFields protoimpl.UnknownFields - - Verified bool `protobuf:"varint,1,opt,name=verified,proto3" json:"verified,omitempty"` + sizeCache protoimpl.SizeCache } func (x *VerifyHostKeyResponse) Reset() { *x = VerifyHostKeyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VerifyHostKeyResponse) String() string { @@ -1945,7 +1871,7 @@ func (*VerifyHostKeyResponse) ProtoMessage() {} func (x *VerifyHostKeyResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1968,20 +1894,17 @@ func (x *VerifyHostKeyResponse) GetVerified() bool { } type PipeStartNoticeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` unknownFields protoimpl.UnknownFields - - Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PipeStartNoticeRequest) Reset() { *x = PipeStartNoticeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PipeStartNoticeRequest) String() string { @@ -1992,7 +1915,7 @@ func (*PipeStartNoticeRequest) ProtoMessage() {} func (x *PipeStartNoticeRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2015,18 +1938,16 @@ func (x *PipeStartNoticeRequest) GetMeta() *ConnMeta { } type PipeStartNoticeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PipeStartNoticeResponse) Reset() { *x = PipeStartNoticeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PipeStartNoticeResponse) String() string { @@ -2037,7 +1958,7 @@ func (*PipeStartNoticeResponse) ProtoMessage() {} func (x *PipeStartNoticeResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2053,21 +1974,18 @@ func (*PipeStartNoticeResponse) Descriptor() ([]byte, []int) { } type PipeErrorNoticeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` unknownFields protoimpl.UnknownFields - - Meta *ConnMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` - Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PipeErrorNoticeRequest) Reset() { *x = PipeErrorNoticeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PipeErrorNoticeRequest) String() string { @@ -2078,7 +1996,7 @@ func (*PipeErrorNoticeRequest) ProtoMessage() {} func (x *PipeErrorNoticeRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2108,18 +2026,16 @@ func (x *PipeErrorNoticeRequest) GetError() string { } type PipeErrorNoticeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PipeErrorNoticeResponse) Reset() { *x = PipeErrorNoticeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PipeErrorNoticeResponse) String() string { @@ -2130,7 +2046,7 @@ func (*PipeErrorNoticeResponse) ProtoMessage() {} func (x *PipeErrorNoticeResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2146,21 +2062,18 @@ func (*PipeErrorNoticeResponse) Descriptor() ([]byte, []int) { } type PipeCreateErrorNoticeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FromAddr string `protobuf:"bytes,1,opt,name=from_addr,json=fromAddr,proto3" json:"from_addr,omitempty"` + Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` unknownFields protoimpl.UnknownFields - - FromAddr string `protobuf:"bytes,1,opt,name=from_addr,json=fromAddr,proto3" json:"from_addr,omitempty"` - Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PipeCreateErrorNoticeRequest) Reset() { *x = PipeCreateErrorNoticeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PipeCreateErrorNoticeRequest) String() string { @@ -2171,7 +2084,7 @@ func (*PipeCreateErrorNoticeRequest) ProtoMessage() {} func (x *PipeCreateErrorNoticeRequest) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2201,18 +2114,16 @@ func (x *PipeCreateErrorNoticeRequest) GetError() string { } type PipeCreateErrorNoticeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PipeCreateErrorNoticeResponse) Reset() { *x = PipeCreateErrorNoticeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PipeCreateErrorNoticeResponse) String() string { @@ -2223,7 +2134,7 @@ func (*PipeCreateErrorNoticeResponse) ProtoMessage() {} func (x *PipeCreateErrorNoticeResponse) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2239,21 +2150,18 @@ func (*PipeCreateErrorNoticeResponse) Descriptor() ([]byte, []int) { } type KeyboardInteractivePromptRequest_Question struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` + Echo bool `protobuf:"varint,2,opt,name=echo,proto3" json:"echo,omitempty"` unknownFields protoimpl.UnknownFields - - Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` - Echo bool `protobuf:"varint,2,opt,name=echo,proto3" json:"echo,omitempty"` + sizeCache protoimpl.SizeCache } func (x *KeyboardInteractivePromptRequest_Question) Reset() { *x = KeyboardInteractivePromptRequest_Question{} - if protoimpl.UnsafeEnabled { - mi := &file_plugin_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_plugin_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *KeyboardInteractivePromptRequest_Question) String() string { @@ -2264,7 +2172,7 @@ func (*KeyboardInteractivePromptRequest_Question) ProtoMessage() {} func (x *KeyboardInteractivePromptRequest_Question) ProtoReflect() protoreflect.Message { mi := &file_plugin_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2295,364 +2203,170 @@ func (x *KeyboardInteractivePromptRequest_Question) GetEcho() bool { var File_plugin_proto protoreflect.FileDescriptor -var file_plugin_proto_rawDesc = []byte{ - 0x0a, 0x0c, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, - 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x22, 0xd9, 0x01, 0x0a, 0x08, 0x43, 0x6f, - 0x6e, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, - 0x12, 0x17, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 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, 0xc4, 0x04, 0x0a, 0x08, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x70, 0x6f, - 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x26, 0x0a, 0x0f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, - 0x48, 0x6f, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x31, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, - 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4e, 0x6f, 0x6e, 0x65, - 0x41, 0x75, 0x74, 0x68, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x12, 0x3d, 0x0a, 0x08, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x75, 0x74, 0x68, 0x48, - 0x00, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x44, 0x0a, 0x0b, 0x70, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x41, - 0x75, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x12, 0x4a, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, - 0x65, 0x72, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x48, 0x00, 0x52, - 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x12, 0x45, 0x0a, - 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x18, 0xc8, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, - 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x12, 0x5e, 0x0a, 0x14, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x18, 0xc9, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, - 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x48, 0x00, - 0x52, 0x12, 0x72, 0x65, 0x74, 0x72, 0x79, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x22, 0x12, 0x0a, 0x10, - 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4e, 0x6f, 0x6e, 0x65, 0x41, 0x75, 0x74, 0x68, - 0x22, 0x32, 0x0a, 0x14, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x22, 0x5d, 0x0a, 0x16, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1f, - 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, - 0x22, 0x0a, 0x0d, 0x63, 0x61, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x61, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x4b, 0x65, 0x79, 0x22, 0x2e, 0x0a, 0x18, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x12, - 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, - 0x65, 0x74, 0x61, 0x22, 0x92, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x4e, 0x65, 0x78, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x12, 0x3f, - 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x2e, - 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x1a, - 0x37, 0x0a, 0x09, 0x4d, 0x65, 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, 0xa2, 0x01, 0x0a, 0x1e, 0x55, 0x70, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x12, 0x47, 0x0a, 0x04, 0x6d, - 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, - 0x74, 0x72, 0x79, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x41, 0x75, 0x74, 0x68, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, - 0x6d, 0x65, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x4d, 0x65, 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, 0x52, 0x0a, - 0x0f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x17, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x10, 0x0a, 0x03, 0x74, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x74, - 0x79, 0x22, 0x1f, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x14, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x22, - 0x3f, 0x0a, 0x14, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, - 0x22, 0x17, 0x0a, 0x15, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x0a, 0x16, 0x4e, 0x65, 0x78, - 0x74, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, - 0x6e, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x22, 0x4a, 0x0a, 0x17, - 0x4e, 0x65, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, - 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x22, 0x3a, 0x0a, 0x0f, 0x4e, 0x6f, 0x6e, 0x65, - 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x6d, - 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, - 0x6d, 0x65, 0x74, 0x61, 0x22, 0x43, 0x0a, 0x10, 0x4e, 0x6f, 0x6e, 0x65, 0x41, 0x75, 0x74, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x75, 0x70, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, - 0x08, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x5a, 0x0a, 0x13, 0x50, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x27, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x4d, - 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x47, 0x0a, 0x14, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, - 0x08, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x52, 0x08, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x5e, - 0x0a, 0x14, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, - 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x48, - 0x0a, 0x15, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x75, 0x70, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x08, - 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x3b, 0x0a, 0x1f, 0x4b, 0x65, 0x79, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6e, - 0x73, 0x77, 0x65, 0x72, 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x20, 0x4b, 0x65, 0x79, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 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, 0x20, - 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x52, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, - 0x4b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x32, 0x0a, 0x08, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x22, 0x20, 0x0a, 0x1e, 0x4b, 0x65, 0x79, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, - 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4a, 0x0a, 0x1f, 0x4b, 0x65, - 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, - 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x4d, 0x65, 0x74, 0x61, - 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x22, 0x53, 0x0a, 0x20, 0x4b, 0x65, 0x79, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x08, 0x75, 0x70, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x52, 0x08, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0xcd, 0x03, 0x0a, 0x1e, - 0x4b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x54, - 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x5f, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x5f, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x65, - 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x65, - 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0e, 0x66, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4b, - 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, - 0x00, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb9, 0x01, 0x0a, 0x20, - 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x75, 0x74, 0x68, 0x46, 0x61, 0x69, 0x6c, - 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x27, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x4d, - 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3e, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x41, 0x75, 0x74, - 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x22, 0x23, 0x0a, 0x21, 0x55, 0x70, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x41, 0x75, 0x74, 0x68, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x4e, 0x6f, - 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x0a, 0x0d, - 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, - 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x4d, 0x65, 0x74, 0x61, - 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x14, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x6f, 0x73, - 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x6d, - 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, - 0x6d, 0x65, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x74, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x22, 0x33, 0x0a, 0x15, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x6f, 0x73, 0x74, - 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, - 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, - 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x22, 0x41, 0x0a, 0x16, 0x50, 0x69, 0x70, 0x65, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x27, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, - 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x22, 0x19, 0x0a, 0x17, 0x50, 0x69, - 0x70, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x0a, 0x16, 0x50, 0x69, 0x70, 0x65, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x27, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x4d, 0x65, - 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x19, - 0x0a, 0x17, 0x50, 0x69, 0x70, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x1c, 0x50, 0x69, 0x70, - 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x69, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x72, 0x6f, - 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, - 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x1f, 0x0a, 0x1d, - 0x50, 0x69, 0x70, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4e, - 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x4d, 0x0a, - 0x0a, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x08, 0x0a, 0x04, 0x4e, - 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, - 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x4b, 0x45, 0x59, - 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x45, 0x59, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x5f, 0x49, - 0x4e, 0x54, 0x45, 0x52, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x03, 0x32, 0xec, 0x09, 0x0a, - 0x0e, 0x53, 0x73, 0x68, 0x50, 0x69, 0x70, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, - 0x36, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, - 0x4c, 0x6f, 0x67, 0x22, 0x00, 0x30, 0x01, 0x12, 0x52, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, - 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x1e, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0d, 0x4e, - 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x5a, 0x0a, 0x0f, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x73, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, - 0x08, 0x4e, 0x6f, 0x6e, 0x65, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4e, 0x6f, 0x6e, 0x65, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x2e, 0x4e, 0x6f, 0x6e, 0x65, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x41, 0x75, 0x74, 0x68, 0x12, 0x1e, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1f, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x41, 0x75, - 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x41, - 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, - 0x17, 0x4b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x12, 0x29, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x1a, 0x29, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, - 0x4b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, - 0x28, 0x01, 0x30, 0x01, 0x12, 0x78, 0x0a, 0x19, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x41, 0x75, 0x74, 0x68, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x63, - 0x65, 0x12, 0x2b, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x55, 0x70, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x75, 0x74, 0x68, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, - 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x41, 0x75, 0x74, 0x68, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x4e, 0x6f, - 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, - 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x42, - 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x54, 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x4b, 0x65, 0x79, - 0x12, 0x1f, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x20, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x15, 0x50, 0x69, 0x70, 0x65, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x27, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0f, 0x50, 0x69, 0x70, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, - 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x5a, 0x0a, 0x0f, 0x50, 0x69, 0x70, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x69, - 0x63, 0x65, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x50, - 0x69, 0x70, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x25, 0x5a, 0x23, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x67, 0x31, 0x32, 0x33, 0x2f, - 0x73, 0x73, 0x68, 0x70, 0x69, 0x70, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_plugin_proto_rawDesc = "" + + "\n" + + "\fplugin.proto\x12\tlibplugin\"\xd9\x01\n" + + "\bConnMeta\x12\x1b\n" + + "\tuser_name\x18\x01 \x01(\tR\buserName\x12\x1b\n" + + "\tfrom_addr\x18\x02 \x01(\tR\bfromAddr\x12\x17\n" + + "\auniq_id\x18\x03 \x01(\tR\x06uniqId\x12=\n" + + "\bmetadata\x18\x04 \x03(\v2!.libplugin.ConnMeta.MetadataEntryR\bmetadata\x1a;\n" + + "\rMetadataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xc4\x04\n" + + "\bUpstream\x12\x16\n" + + "\x04host\x18\x01 \x01(\tB\x02\x18\x01R\x04host\x12\x16\n" + + "\x04port\x18\x02 \x01(\x05B\x02\x18\x01R\x04port\x12\x1b\n" + + "\tuser_name\x18\x03 \x01(\tR\buserName\x12&\n" + + "\x0fignore_host_key\x18\x04 \x01(\bR\rignoreHostKey\x12\x10\n" + + "\x03uri\x18\x05 \x01(\tR\x03uri\x121\n" + + "\x04none\x18d \x01(\v2\x1b.libplugin.UpstreamNoneAuthH\x00R\x04none\x12=\n" + + "\bpassword\x18e \x01(\v2\x1f.libplugin.UpstreamPasswordAuthH\x00R\bpassword\x12D\n" + + "\vprivate_key\x18f \x01(\v2!.libplugin.UpstreamPrivateKeyAuthH\x00R\n" + + "privateKey\x12J\n" + + "\rremote_signer\x18g \x01(\v2#.libplugin.UpstreamRemoteSignerAuthH\x00R\fremoteSigner\x12E\n" + + "\vnext_plugin\x18\xc8\x01 \x01(\v2!.libplugin.UpstreamNextPluginAuthH\x00R\n" + + "nextPlugin\x12^\n" + + "\x14retry_current_plugin\x18\xc9\x01 \x01(\v2).libplugin.UpstreamRetryCurrentPluginAuthH\x00R\x12retryCurrentPluginB\x06\n" + + "\x04auth\"\x12\n" + + "\x10UpstreamNoneAuth\"2\n" + + "\x14UpstreamPasswordAuth\x12\x1a\n" + + "\bpassword\x18\x01 \x01(\tR\bpassword\"]\n" + + "\x16UpstreamPrivateKeyAuth\x12\x1f\n" + + "\vprivate_key\x18\x01 \x01(\fR\n" + + "privateKey\x12\"\n" + + "\rca_public_key\x18\x02 \x01(\fR\vcaPublicKey\".\n" + + "\x18UpstreamRemoteSignerAuth\x12\x12\n" + + "\x04meta\x18\x01 \x01(\tR\x04meta\"\x92\x01\n" + + "\x16UpstreamNextPluginAuth\x12?\n" + + "\x04meta\x18\x01 \x03(\v2+.libplugin.UpstreamNextPluginAuth.MetaEntryR\x04meta\x1a7\n" + + "\tMetaEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xa2\x01\n" + + "\x1eUpstreamRetryCurrentPluginAuth\x12G\n" + + "\x04meta\x18\x01 \x03(\v23.libplugin.UpstreamRetryCurrentPluginAuth.MetaEntryR\x04meta\x1a7\n" + + "\tMetaEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"R\n" + + "\x0fStartLogRequest\x12\x17\n" + + "\auniq_id\x18\x01 \x01(\tR\x06uniqId\x12\x14\n" + + "\x05level\x18\x02 \x01(\tR\x05level\x12\x10\n" + + "\x03tty\x18\x03 \x01(\bR\x03tty\"\x1f\n" + + "\x03Log\x12\x18\n" + + "\amessage\x18\x01 \x01(\tR\amessage\"\x15\n" + + "\x13ListCallbackRequest\"4\n" + + "\x14ListCallbackResponse\x12\x1c\n" + + "\tcallbacks\x18\x01 \x03(\tR\tcallbacks\"?\n" + + "\x14NewConnectionRequest\x12'\n" + + "\x04meta\x18\x01 \x01(\v2\x13.libplugin.ConnMetaR\x04meta\"\x17\n" + + "\x15NewConnectionResponse\"A\n" + + "\x16NextAuthMethodsRequest\x12'\n" + + "\x04meta\x18\x01 \x01(\v2\x13.libplugin.ConnMetaR\x04meta\"J\n" + + "\x17NextAuthMethodsResponse\x12/\n" + + "\amethods\x18\x01 \x03(\x0e2\x15.libplugin.AuthMethodR\amethods\":\n" + + "\x0fNoneAuthRequest\x12'\n" + + "\x04meta\x18\x01 \x01(\v2\x13.libplugin.ConnMetaR\x04meta\"C\n" + + "\x10NoneAuthResponse\x12/\n" + + "\bupstream\x18\x01 \x01(\v2\x13.libplugin.UpstreamR\bupstream\"Z\n" + + "\x13PasswordAuthRequest\x12'\n" + + "\x04meta\x18\x01 \x01(\v2\x13.libplugin.ConnMetaR\x04meta\x12\x1a\n" + + "\bpassword\x18\x02 \x01(\fR\bpassword\"G\n" + + "\x14PasswordAuthResponse\x12/\n" + + "\bupstream\x18\x01 \x01(\v2\x13.libplugin.UpstreamR\bupstream\"^\n" + + "\x14PublicKeyAuthRequest\x12'\n" + + "\x04meta\x18\x01 \x01(\v2\x13.libplugin.ConnMetaR\x04meta\x12\x1d\n" + + "\n" + + "public_key\x18\x02 \x01(\fR\tpublicKey\"H\n" + + "\x15PublicKeyAuthResponse\x12/\n" + + "\bupstream\x18\x01 \x01(\v2\x13.libplugin.UpstreamR\bupstream\";\n" + + "\x1fKeyboardInteractiveUserResponse\x12\x18\n" + + "\aanswers\x18\x01 \x03(\tR\aanswers\"\xe0\x01\n" + + " KeyboardInteractivePromptRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12 \n" + + "\vinstruction\x18\x02 \x01(\tR\vinstruction\x12R\n" + + "\tquestions\x18\x03 \x03(\v24.libplugin.KeyboardInteractivePromptRequest.QuestionR\tquestions\x1a2\n" + + "\bQuestion\x12\x12\n" + + "\x04text\x18\x01 \x01(\tR\x04text\x12\x12\n" + + "\x04echo\x18\x02 \x01(\bR\x04echo\" \n" + + "\x1eKeyboardInteractiveMetaRequest\"J\n" + + "\x1fKeyboardInteractiveMetaResponse\x12'\n" + + "\x04meta\x18\x01 \x01(\v2\x13.libplugin.ConnMetaR\x04meta\"S\n" + + " KeyboardInteractiveFinishRequest\x12/\n" + + "\bupstream\x18\x01 \x01(\v2\x13.libplugin.UpstreamR\bupstream\"\xcd\x03\n" + + "\x1eKeyboardInteractiveAuthMessage\x12T\n" + + "\x0eprompt_request\x18\x01 \x01(\v2+.libplugin.KeyboardInteractivePromptRequestH\x00R\rpromptRequest\x12Q\n" + + "\ruser_response\x18\x02 \x01(\v2*.libplugin.KeyboardInteractiveUserResponseH\x00R\fuserResponse\x12N\n" + + "\fmeta_request\x18\x03 \x01(\v2).libplugin.KeyboardInteractiveMetaRequestH\x00R\vmetaRequest\x12Q\n" + + "\rmeta_response\x18\x04 \x01(\v2*.libplugin.KeyboardInteractiveMetaResponseH\x00R\fmetaResponse\x12T\n" + + "\x0efinish_request\x18\x05 \x01(\v2+.libplugin.KeyboardInteractiveFinishRequestH\x00R\rfinishRequestB\t\n" + + "\amessage\"\xb9\x01\n" + + " UpstreamAuthFailureNoticeRequest\x12'\n" + + "\x04meta\x18\x01 \x01(\v2\x13.libplugin.ConnMetaR\x04meta\x12\x16\n" + + "\x06method\x18\x02 \x01(\tR\x06method\x12\x14\n" + + "\x05error\x18\x03 \x01(\tR\x05error\x12>\n" + + "\x0fallowed_methods\x18\x04 \x03(\x0e2\x15.libplugin.AuthMethodR\x0eallowedMethods\"#\n" + + "!UpstreamAuthFailureNoticeResponse\"8\n" + + "\rBannerRequest\x12'\n" + + "\x04meta\x18\x01 \x01(\v2\x13.libplugin.ConnMetaR\x04meta\"*\n" + + "\x0eBannerResponse\x12\x18\n" + + "\amessage\x18\x01 \x01(\tR\amessage\"\x8d\x01\n" + + "\x14VerifyHostKeyRequest\x12'\n" + + "\x04meta\x18\x01 \x01(\v2\x13.libplugin.ConnMetaR\x04meta\x12\x10\n" + + "\x03key\x18\x02 \x01(\fR\x03key\x12\x1a\n" + + "\bhostname\x18\x03 \x01(\tR\bhostname\x12\x1e\n" + + "\n" + + "netaddress\x18\x04 \x01(\tR\n" + + "netaddress\"3\n" + + "\x15VerifyHostKeyResponse\x12\x1a\n" + + "\bverified\x18\x01 \x01(\bR\bverified\"A\n" + + "\x16PipeStartNoticeRequest\x12'\n" + + "\x04meta\x18\x01 \x01(\v2\x13.libplugin.ConnMetaR\x04meta\"\x19\n" + + "\x17PipeStartNoticeResponse\"W\n" + + "\x16PipeErrorNoticeRequest\x12'\n" + + "\x04meta\x18\x01 \x01(\v2\x13.libplugin.ConnMetaR\x04meta\x12\x14\n" + + "\x05error\x18\x02 \x01(\tR\x05error\"\x19\n" + + "\x17PipeErrorNoticeResponse\"Q\n" + + "\x1cPipeCreateErrorNoticeRequest\x12\x1b\n" + + "\tfrom_addr\x18\x01 \x01(\tR\bfromAddr\x12\x14\n" + + "\x05error\x18\x02 \x01(\tR\x05error\"\x1f\n" + + "\x1dPipeCreateErrorNoticeResponse*M\n" + + "\n" + + "AuthMethod\x12\b\n" + + "\x04NONE\x10\x00\x12\f\n" + + "\bPASSWORD\x10\x01\x12\r\n" + + "\tPUBLICKEY\x10\x02\x12\x18\n" + + "\x14KEYBOARD_INTERACTIVE\x10\x032\xec\t\n" + + "\x0eSshPiperPlugin\x126\n" + + "\x04Logs\x12\x1a.libplugin.StartLogRequest\x1a\x0e.libplugin.Log\"\x000\x01\x12R\n" + + "\rListCallbacks\x12\x1e.libplugin.ListCallbackRequest\x1a\x1f.libplugin.ListCallbackResponse\"\x00\x12T\n" + + "\rNewConnection\x12\x1f.libplugin.NewConnectionRequest\x1a .libplugin.NewConnectionResponse\"\x00\x12Z\n" + + "\x0fNextAuthMethods\x12!.libplugin.NextAuthMethodsRequest\x1a\".libplugin.NextAuthMethodsResponse\"\x00\x12E\n" + + "\bNoneAuth\x12\x1a.libplugin.NoneAuthRequest\x1a\x1b.libplugin.NoneAuthResponse\"\x00\x12Q\n" + + "\fPasswordAuth\x12\x1e.libplugin.PasswordAuthRequest\x1a\x1f.libplugin.PasswordAuthResponse\"\x00\x12T\n" + + "\rPublicKeyAuth\x12\x1f.libplugin.PublicKeyAuthRequest\x1a .libplugin.PublicKeyAuthResponse\"\x00\x12u\n" + + "\x17KeyboardInteractiveAuth\x12).libplugin.KeyboardInteractiveAuthMessage\x1a).libplugin.KeyboardInteractiveAuthMessage\"\x00(\x010\x01\x12x\n" + + "\x19UpstreamAuthFailureNotice\x12+.libplugin.UpstreamAuthFailureNoticeRequest\x1a,.libplugin.UpstreamAuthFailureNoticeResponse\"\x00\x12?\n" + + "\x06Banner\x12\x18.libplugin.BannerRequest\x1a\x19.libplugin.BannerResponse\"\x00\x12T\n" + + "\rVerifyHostKey\x12\x1f.libplugin.VerifyHostKeyRequest\x1a .libplugin.VerifyHostKeyResponse\"\x00\x12l\n" + + "\x15PipeCreateErrorNotice\x12'.libplugin.PipeCreateErrorNoticeRequest\x1a(.libplugin.PipeCreateErrorNoticeResponse\"\x00\x12Z\n" + + "\x0fPipeStartNotice\x12!.libplugin.PipeStartNoticeRequest\x1a\".libplugin.PipeStartNoticeResponse\"\x00\x12Z\n" + + "\x0fPipeErrorNotice\x12!.libplugin.PipeErrorNoticeRequest\x1a\".libplugin.PipeErrorNoticeResponse\"\x00B%Z#github.com/tg123/sshpiper/libpluginb\x06proto3" var ( file_plugin_proto_rawDescOnce sync.Once - file_plugin_proto_rawDescData = file_plugin_proto_rawDesc + file_plugin_proto_rawDescData []byte ) func file_plugin_proto_rawDescGZIP() []byte { file_plugin_proto_rawDescOnce.Do(func() { - file_plugin_proto_rawDescData = protoimpl.X.CompressGZIP(file_plugin_proto_rawDescData) + file_plugin_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_plugin_proto_rawDesc), len(file_plugin_proto_rawDesc))) }) return file_plugin_proto_rawDescData } var file_plugin_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_plugin_proto_msgTypes = make([]protoimpl.MessageInfo, 44) -var file_plugin_proto_goTypes = []interface{}{ +var file_plugin_proto_goTypes = []any{ (AuthMethod)(0), // 0: libplugin.AuthMethod (*ConnMeta)(nil), // 1: libplugin.ConnMeta (*Upstream)(nil), // 2: libplugin.Upstream @@ -2772,501 +2486,7 @@ func file_plugin_proto_init() { if File_plugin_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_plugin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConnMeta); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Upstream); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpstreamNoneAuth); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpstreamPasswordAuth); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpstreamPrivateKeyAuth); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpstreamRemoteSignerAuth); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpstreamNextPluginAuth); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpstreamRetryCurrentPluginAuth); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StartLogRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Log); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListCallbackRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListCallbackResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NewConnectionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NewConnectionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NextAuthMethodsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NextAuthMethodsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NoneAuthRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NoneAuthResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasswordAuthRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasswordAuthResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PublicKeyAuthRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PublicKeyAuthResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeyboardInteractiveUserResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeyboardInteractivePromptRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeyboardInteractiveMetaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeyboardInteractiveMetaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeyboardInteractiveFinishRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeyboardInteractiveAuthMessage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpstreamAuthFailureNoticeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpstreamAuthFailureNoticeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BannerRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BannerResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyHostKeyRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyHostKeyResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PipeStartNoticeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PipeStartNoticeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PipeErrorNoticeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PipeErrorNoticeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PipeCreateErrorNoticeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PipeCreateErrorNoticeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_plugin_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeyboardInteractivePromptRequest_Question); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_plugin_proto_msgTypes[1].OneofWrappers = []interface{}{ + file_plugin_proto_msgTypes[1].OneofWrappers = []any{ (*Upstream_None)(nil), (*Upstream_Password)(nil), (*Upstream_PrivateKey)(nil), @@ -3274,7 +2494,7 @@ func file_plugin_proto_init() { (*Upstream_NextPlugin)(nil), (*Upstream_RetryCurrentPlugin)(nil), } - file_plugin_proto_msgTypes[27].OneofWrappers = []interface{}{ + file_plugin_proto_msgTypes[27].OneofWrappers = []any{ (*KeyboardInteractiveAuthMessage_PromptRequest)(nil), (*KeyboardInteractiveAuthMessage_UserResponse)(nil), (*KeyboardInteractiveAuthMessage_MetaRequest)(nil), @@ -3285,7 +2505,7 @@ func file_plugin_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_plugin_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_plugin_proto_rawDesc), len(file_plugin_proto_rawDesc)), NumEnums: 1, NumMessages: 44, NumExtensions: 0, @@ -3297,7 +2517,6 @@ func file_plugin_proto_init() { MessageInfos: file_plugin_proto_msgTypes, }.Build() File_plugin_proto = out.File - file_plugin_proto_rawDesc = nil file_plugin_proto_goTypes = nil file_plugin_proto_depIdxs = nil } diff --git a/libplugin/plugin_grpc.pb.go b/libplugin/plugin_grpc.pb.go index e19623a6..84f43e35 100644 --- a/libplugin/plugin_grpc.pb.go +++ b/libplugin/plugin_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v4.25.1 +// - protoc-gen-go-grpc v1.6.0 +// - protoc v6.32.1 // source: plugin.proto package libplugin @@ -15,21 +15,38 @@ import ( // 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.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + SshPiperPlugin_Logs_FullMethodName = "/libplugin.SshPiperPlugin/Logs" + SshPiperPlugin_ListCallbacks_FullMethodName = "/libplugin.SshPiperPlugin/ListCallbacks" + SshPiperPlugin_NewConnection_FullMethodName = "/libplugin.SshPiperPlugin/NewConnection" + SshPiperPlugin_NextAuthMethods_FullMethodName = "/libplugin.SshPiperPlugin/NextAuthMethods" + SshPiperPlugin_NoneAuth_FullMethodName = "/libplugin.SshPiperPlugin/NoneAuth" + SshPiperPlugin_PasswordAuth_FullMethodName = "/libplugin.SshPiperPlugin/PasswordAuth" + SshPiperPlugin_PublicKeyAuth_FullMethodName = "/libplugin.SshPiperPlugin/PublicKeyAuth" + SshPiperPlugin_KeyboardInteractiveAuth_FullMethodName = "/libplugin.SshPiperPlugin/KeyboardInteractiveAuth" + SshPiperPlugin_UpstreamAuthFailureNotice_FullMethodName = "/libplugin.SshPiperPlugin/UpstreamAuthFailureNotice" + SshPiperPlugin_Banner_FullMethodName = "/libplugin.SshPiperPlugin/Banner" + SshPiperPlugin_VerifyHostKey_FullMethodName = "/libplugin.SshPiperPlugin/VerifyHostKey" + SshPiperPlugin_PipeCreateErrorNotice_FullMethodName = "/libplugin.SshPiperPlugin/PipeCreateErrorNotice" + SshPiperPlugin_PipeStartNotice_FullMethodName = "/libplugin.SshPiperPlugin/PipeStartNotice" + SshPiperPlugin_PipeErrorNotice_FullMethodName = "/libplugin.SshPiperPlugin/PipeErrorNotice" +) // SshPiperPluginClient is the client API for SshPiperPlugin 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 SshPiperPluginClient interface { - Logs(ctx context.Context, in *StartLogRequest, opts ...grpc.CallOption) (SshPiperPlugin_LogsClient, error) + Logs(ctx context.Context, in *StartLogRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Log], error) ListCallbacks(ctx context.Context, in *ListCallbackRequest, opts ...grpc.CallOption) (*ListCallbackResponse, error) NewConnection(ctx context.Context, in *NewConnectionRequest, opts ...grpc.CallOption) (*NewConnectionResponse, error) NextAuthMethods(ctx context.Context, in *NextAuthMethodsRequest, opts ...grpc.CallOption) (*NextAuthMethodsResponse, error) NoneAuth(ctx context.Context, in *NoneAuthRequest, opts ...grpc.CallOption) (*NoneAuthResponse, error) PasswordAuth(ctx context.Context, in *PasswordAuthRequest, opts ...grpc.CallOption) (*PasswordAuthResponse, error) PublicKeyAuth(ctx context.Context, in *PublicKeyAuthRequest, opts ...grpc.CallOption) (*PublicKeyAuthResponse, error) - KeyboardInteractiveAuth(ctx context.Context, opts ...grpc.CallOption) (SshPiperPlugin_KeyboardInteractiveAuthClient, error) + KeyboardInteractiveAuth(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[KeyboardInteractiveAuthMessage, KeyboardInteractiveAuthMessage], error) UpstreamAuthFailureNotice(ctx context.Context, in *UpstreamAuthFailureNoticeRequest, opts ...grpc.CallOption) (*UpstreamAuthFailureNoticeResponse, error) Banner(ctx context.Context, in *BannerRequest, opts ...grpc.CallOption) (*BannerResponse, error) VerifyHostKey(ctx context.Context, in *VerifyHostKeyRequest, opts ...grpc.CallOption) (*VerifyHostKeyResponse, error) @@ -46,12 +63,13 @@ func NewSshPiperPluginClient(cc grpc.ClientConnInterface) SshPiperPluginClient { return &sshPiperPluginClient{cc} } -func (c *sshPiperPluginClient) Logs(ctx context.Context, in *StartLogRequest, opts ...grpc.CallOption) (SshPiperPlugin_LogsClient, error) { - stream, err := c.cc.NewStream(ctx, &SshPiperPlugin_ServiceDesc.Streams[0], "/libplugin.SshPiperPlugin/Logs", opts...) +func (c *sshPiperPluginClient) Logs(ctx context.Context, in *StartLogRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Log], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &SshPiperPlugin_ServiceDesc.Streams[0], SshPiperPlugin_Logs_FullMethodName, cOpts...) if err != nil { return nil, err } - x := &sshPiperPluginLogsClient{stream} + x := &grpc.GenericClientStream[StartLogRequest, Log]{ClientStream: stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -61,26 +79,13 @@ func (c *sshPiperPluginClient) Logs(ctx context.Context, in *StartLogRequest, op return x, nil } -type SshPiperPlugin_LogsClient interface { - Recv() (*Log, error) - grpc.ClientStream -} - -type sshPiperPluginLogsClient struct { - grpc.ClientStream -} - -func (x *sshPiperPluginLogsClient) Recv() (*Log, error) { - m := new(Log) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type SshPiperPlugin_LogsClient = grpc.ServerStreamingClient[Log] func (c *sshPiperPluginClient) ListCallbacks(ctx context.Context, in *ListCallbackRequest, opts ...grpc.CallOption) (*ListCallbackResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListCallbackResponse) - err := c.cc.Invoke(ctx, "/libplugin.SshPiperPlugin/ListCallbacks", in, out, opts...) + err := c.cc.Invoke(ctx, SshPiperPlugin_ListCallbacks_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -88,8 +93,9 @@ func (c *sshPiperPluginClient) ListCallbacks(ctx context.Context, in *ListCallba } func (c *sshPiperPluginClient) NewConnection(ctx context.Context, in *NewConnectionRequest, opts ...grpc.CallOption) (*NewConnectionResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(NewConnectionResponse) - err := c.cc.Invoke(ctx, "/libplugin.SshPiperPlugin/NewConnection", in, out, opts...) + err := c.cc.Invoke(ctx, SshPiperPlugin_NewConnection_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -97,8 +103,9 @@ func (c *sshPiperPluginClient) NewConnection(ctx context.Context, in *NewConnect } func (c *sshPiperPluginClient) NextAuthMethods(ctx context.Context, in *NextAuthMethodsRequest, opts ...grpc.CallOption) (*NextAuthMethodsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(NextAuthMethodsResponse) - err := c.cc.Invoke(ctx, "/libplugin.SshPiperPlugin/NextAuthMethods", in, out, opts...) + err := c.cc.Invoke(ctx, SshPiperPlugin_NextAuthMethods_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -106,8 +113,9 @@ func (c *sshPiperPluginClient) NextAuthMethods(ctx context.Context, in *NextAuth } func (c *sshPiperPluginClient) NoneAuth(ctx context.Context, in *NoneAuthRequest, opts ...grpc.CallOption) (*NoneAuthResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(NoneAuthResponse) - err := c.cc.Invoke(ctx, "/libplugin.SshPiperPlugin/NoneAuth", in, out, opts...) + err := c.cc.Invoke(ctx, SshPiperPlugin_NoneAuth_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -115,8 +123,9 @@ func (c *sshPiperPluginClient) NoneAuth(ctx context.Context, in *NoneAuthRequest } func (c *sshPiperPluginClient) PasswordAuth(ctx context.Context, in *PasswordAuthRequest, opts ...grpc.CallOption) (*PasswordAuthResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(PasswordAuthResponse) - err := c.cc.Invoke(ctx, "/libplugin.SshPiperPlugin/PasswordAuth", in, out, opts...) + err := c.cc.Invoke(ctx, SshPiperPlugin_PasswordAuth_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -124,48 +133,32 @@ func (c *sshPiperPluginClient) PasswordAuth(ctx context.Context, in *PasswordAut } func (c *sshPiperPluginClient) PublicKeyAuth(ctx context.Context, in *PublicKeyAuthRequest, opts ...grpc.CallOption) (*PublicKeyAuthResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(PublicKeyAuthResponse) - err := c.cc.Invoke(ctx, "/libplugin.SshPiperPlugin/PublicKeyAuth", in, out, opts...) + err := c.cc.Invoke(ctx, SshPiperPlugin_PublicKeyAuth_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } return out, nil } -func (c *sshPiperPluginClient) KeyboardInteractiveAuth(ctx context.Context, opts ...grpc.CallOption) (SshPiperPlugin_KeyboardInteractiveAuthClient, error) { - stream, err := c.cc.NewStream(ctx, &SshPiperPlugin_ServiceDesc.Streams[1], "/libplugin.SshPiperPlugin/KeyboardInteractiveAuth", opts...) +func (c *sshPiperPluginClient) KeyboardInteractiveAuth(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[KeyboardInteractiveAuthMessage, KeyboardInteractiveAuthMessage], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &SshPiperPlugin_ServiceDesc.Streams[1], SshPiperPlugin_KeyboardInteractiveAuth_FullMethodName, cOpts...) if err != nil { return nil, err } - x := &sshPiperPluginKeyboardInteractiveAuthClient{stream} + x := &grpc.GenericClientStream[KeyboardInteractiveAuthMessage, KeyboardInteractiveAuthMessage]{ClientStream: stream} return x, nil } -type SshPiperPlugin_KeyboardInteractiveAuthClient interface { - Send(*KeyboardInteractiveAuthMessage) error - Recv() (*KeyboardInteractiveAuthMessage, error) - grpc.ClientStream -} - -type sshPiperPluginKeyboardInteractiveAuthClient struct { - grpc.ClientStream -} - -func (x *sshPiperPluginKeyboardInteractiveAuthClient) Send(m *KeyboardInteractiveAuthMessage) error { - return x.ClientStream.SendMsg(m) -} - -func (x *sshPiperPluginKeyboardInteractiveAuthClient) Recv() (*KeyboardInteractiveAuthMessage, error) { - m := new(KeyboardInteractiveAuthMessage) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type SshPiperPlugin_KeyboardInteractiveAuthClient = grpc.BidiStreamingClient[KeyboardInteractiveAuthMessage, KeyboardInteractiveAuthMessage] func (c *sshPiperPluginClient) UpstreamAuthFailureNotice(ctx context.Context, in *UpstreamAuthFailureNoticeRequest, opts ...grpc.CallOption) (*UpstreamAuthFailureNoticeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(UpstreamAuthFailureNoticeResponse) - err := c.cc.Invoke(ctx, "/libplugin.SshPiperPlugin/UpstreamAuthFailureNotice", in, out, opts...) + err := c.cc.Invoke(ctx, SshPiperPlugin_UpstreamAuthFailureNotice_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -173,8 +166,9 @@ func (c *sshPiperPluginClient) UpstreamAuthFailureNotice(ctx context.Context, in } func (c *sshPiperPluginClient) Banner(ctx context.Context, in *BannerRequest, opts ...grpc.CallOption) (*BannerResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(BannerResponse) - err := c.cc.Invoke(ctx, "/libplugin.SshPiperPlugin/Banner", in, out, opts...) + err := c.cc.Invoke(ctx, SshPiperPlugin_Banner_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -182,8 +176,9 @@ func (c *sshPiperPluginClient) Banner(ctx context.Context, in *BannerRequest, op } func (c *sshPiperPluginClient) VerifyHostKey(ctx context.Context, in *VerifyHostKeyRequest, opts ...grpc.CallOption) (*VerifyHostKeyResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(VerifyHostKeyResponse) - err := c.cc.Invoke(ctx, "/libplugin.SshPiperPlugin/VerifyHostKey", in, out, opts...) + err := c.cc.Invoke(ctx, SshPiperPlugin_VerifyHostKey_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -191,8 +186,9 @@ func (c *sshPiperPluginClient) VerifyHostKey(ctx context.Context, in *VerifyHost } func (c *sshPiperPluginClient) PipeCreateErrorNotice(ctx context.Context, in *PipeCreateErrorNoticeRequest, opts ...grpc.CallOption) (*PipeCreateErrorNoticeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(PipeCreateErrorNoticeResponse) - err := c.cc.Invoke(ctx, "/libplugin.SshPiperPlugin/PipeCreateErrorNotice", in, out, opts...) + err := c.cc.Invoke(ctx, SshPiperPlugin_PipeCreateErrorNotice_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -200,8 +196,9 @@ func (c *sshPiperPluginClient) PipeCreateErrorNotice(ctx context.Context, in *Pi } func (c *sshPiperPluginClient) PipeStartNotice(ctx context.Context, in *PipeStartNoticeRequest, opts ...grpc.CallOption) (*PipeStartNoticeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(PipeStartNoticeResponse) - err := c.cc.Invoke(ctx, "/libplugin.SshPiperPlugin/PipeStartNotice", in, out, opts...) + err := c.cc.Invoke(ctx, SshPiperPlugin_PipeStartNotice_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -209,8 +206,9 @@ func (c *sshPiperPluginClient) PipeStartNotice(ctx context.Context, in *PipeStar } func (c *sshPiperPluginClient) PipeErrorNotice(ctx context.Context, in *PipeErrorNoticeRequest, opts ...grpc.CallOption) (*PipeErrorNoticeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(PipeErrorNoticeResponse) - err := c.cc.Invoke(ctx, "/libplugin.SshPiperPlugin/PipeErrorNotice", in, out, opts...) + err := c.cc.Invoke(ctx, SshPiperPlugin_PipeErrorNotice_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -219,16 +217,16 @@ func (c *sshPiperPluginClient) PipeErrorNotice(ctx context.Context, in *PipeErro // SshPiperPluginServer is the server API for SshPiperPlugin service. // All implementations must embed UnimplementedSshPiperPluginServer -// for forward compatibility +// for forward compatibility. type SshPiperPluginServer interface { - Logs(*StartLogRequest, SshPiperPlugin_LogsServer) error + Logs(*StartLogRequest, grpc.ServerStreamingServer[Log]) error ListCallbacks(context.Context, *ListCallbackRequest) (*ListCallbackResponse, error) NewConnection(context.Context, *NewConnectionRequest) (*NewConnectionResponse, error) NextAuthMethods(context.Context, *NextAuthMethodsRequest) (*NextAuthMethodsResponse, error) NoneAuth(context.Context, *NoneAuthRequest) (*NoneAuthResponse, error) PasswordAuth(context.Context, *PasswordAuthRequest) (*PasswordAuthResponse, error) PublicKeyAuth(context.Context, *PublicKeyAuthRequest) (*PublicKeyAuthResponse, error) - KeyboardInteractiveAuth(SshPiperPlugin_KeyboardInteractiveAuthServer) error + KeyboardInteractiveAuth(grpc.BidiStreamingServer[KeyboardInteractiveAuthMessage, KeyboardInteractiveAuthMessage]) error UpstreamAuthFailureNotice(context.Context, *UpstreamAuthFailureNoticeRequest) (*UpstreamAuthFailureNoticeResponse, error) Banner(context.Context, *BannerRequest) (*BannerResponse, error) VerifyHostKey(context.Context, *VerifyHostKeyRequest) (*VerifyHostKeyResponse, error) @@ -238,53 +236,57 @@ type SshPiperPluginServer interface { mustEmbedUnimplementedSshPiperPluginServer() } -// UnimplementedSshPiperPluginServer must be embedded to have forward compatible implementations. -type UnimplementedSshPiperPluginServer struct { -} +// UnimplementedSshPiperPluginServer must 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 UnimplementedSshPiperPluginServer struct{} -func (UnimplementedSshPiperPluginServer) Logs(*StartLogRequest, SshPiperPlugin_LogsServer) error { - return status.Errorf(codes.Unimplemented, "method Logs not implemented") +func (UnimplementedSshPiperPluginServer) Logs(*StartLogRequest, grpc.ServerStreamingServer[Log]) error { + return status.Error(codes.Unimplemented, "method Logs not implemented") } func (UnimplementedSshPiperPluginServer) ListCallbacks(context.Context, *ListCallbackRequest) (*ListCallbackResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListCallbacks not implemented") + return nil, status.Error(codes.Unimplemented, "method ListCallbacks not implemented") } func (UnimplementedSshPiperPluginServer) NewConnection(context.Context, *NewConnectionRequest) (*NewConnectionResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method NewConnection not implemented") + return nil, status.Error(codes.Unimplemented, "method NewConnection not implemented") } func (UnimplementedSshPiperPluginServer) NextAuthMethods(context.Context, *NextAuthMethodsRequest) (*NextAuthMethodsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method NextAuthMethods not implemented") + return nil, status.Error(codes.Unimplemented, "method NextAuthMethods not implemented") } func (UnimplementedSshPiperPluginServer) NoneAuth(context.Context, *NoneAuthRequest) (*NoneAuthResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method NoneAuth not implemented") + return nil, status.Error(codes.Unimplemented, "method NoneAuth not implemented") } func (UnimplementedSshPiperPluginServer) PasswordAuth(context.Context, *PasswordAuthRequest) (*PasswordAuthResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method PasswordAuth not implemented") + return nil, status.Error(codes.Unimplemented, "method PasswordAuth not implemented") } func (UnimplementedSshPiperPluginServer) PublicKeyAuth(context.Context, *PublicKeyAuthRequest) (*PublicKeyAuthResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method PublicKeyAuth not implemented") + return nil, status.Error(codes.Unimplemented, "method PublicKeyAuth not implemented") } -func (UnimplementedSshPiperPluginServer) KeyboardInteractiveAuth(SshPiperPlugin_KeyboardInteractiveAuthServer) error { - return status.Errorf(codes.Unimplemented, "method KeyboardInteractiveAuth not implemented") +func (UnimplementedSshPiperPluginServer) KeyboardInteractiveAuth(grpc.BidiStreamingServer[KeyboardInteractiveAuthMessage, KeyboardInteractiveAuthMessage]) error { + return status.Error(codes.Unimplemented, "method KeyboardInteractiveAuth not implemented") } func (UnimplementedSshPiperPluginServer) UpstreamAuthFailureNotice(context.Context, *UpstreamAuthFailureNoticeRequest) (*UpstreamAuthFailureNoticeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpstreamAuthFailureNotice not implemented") + return nil, status.Error(codes.Unimplemented, "method UpstreamAuthFailureNotice not implemented") } func (UnimplementedSshPiperPluginServer) Banner(context.Context, *BannerRequest) (*BannerResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Banner not implemented") + return nil, status.Error(codes.Unimplemented, "method Banner not implemented") } func (UnimplementedSshPiperPluginServer) VerifyHostKey(context.Context, *VerifyHostKeyRequest) (*VerifyHostKeyResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method VerifyHostKey not implemented") + return nil, status.Error(codes.Unimplemented, "method VerifyHostKey not implemented") } func (UnimplementedSshPiperPluginServer) PipeCreateErrorNotice(context.Context, *PipeCreateErrorNoticeRequest) (*PipeCreateErrorNoticeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method PipeCreateErrorNotice not implemented") + return nil, status.Error(codes.Unimplemented, "method PipeCreateErrorNotice not implemented") } func (UnimplementedSshPiperPluginServer) PipeStartNotice(context.Context, *PipeStartNoticeRequest) (*PipeStartNoticeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method PipeStartNotice not implemented") + return nil, status.Error(codes.Unimplemented, "method PipeStartNotice not implemented") } func (UnimplementedSshPiperPluginServer) PipeErrorNotice(context.Context, *PipeErrorNoticeRequest) (*PipeErrorNoticeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method PipeErrorNotice not implemented") + return nil, status.Error(codes.Unimplemented, "method PipeErrorNotice not implemented") } func (UnimplementedSshPiperPluginServer) mustEmbedUnimplementedSshPiperPluginServer() {} +func (UnimplementedSshPiperPluginServer) testEmbeddedByValue() {} // UnsafeSshPiperPluginServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to SshPiperPluginServer will @@ -294,6 +296,13 @@ type UnsafeSshPiperPluginServer interface { } func RegisterSshPiperPluginServer(s grpc.ServiceRegistrar, srv SshPiperPluginServer) { + // If the following call panics, it indicates UnimplementedSshPiperPluginServer 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(&SshPiperPlugin_ServiceDesc, srv) } @@ -302,21 +311,11 @@ func _SshPiperPlugin_Logs_Handler(srv interface{}, stream grpc.ServerStream) err if err := stream.RecvMsg(m); err != nil { return err } - return srv.(SshPiperPluginServer).Logs(m, &sshPiperPluginLogsServer{stream}) + return srv.(SshPiperPluginServer).Logs(m, &grpc.GenericServerStream[StartLogRequest, Log]{ServerStream: stream}) } -type SshPiperPlugin_LogsServer interface { - Send(*Log) error - grpc.ServerStream -} - -type sshPiperPluginLogsServer struct { - grpc.ServerStream -} - -func (x *sshPiperPluginLogsServer) Send(m *Log) error { - return x.ServerStream.SendMsg(m) -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type SshPiperPlugin_LogsServer = grpc.ServerStreamingServer[Log] func _SshPiperPlugin_ListCallbacks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListCallbackRequest) @@ -328,7 +327,7 @@ func _SshPiperPlugin_ListCallbacks_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/libplugin.SshPiperPlugin/ListCallbacks", + FullMethod: SshPiperPlugin_ListCallbacks_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SshPiperPluginServer).ListCallbacks(ctx, req.(*ListCallbackRequest)) @@ -346,7 +345,7 @@ func _SshPiperPlugin_NewConnection_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/libplugin.SshPiperPlugin/NewConnection", + FullMethod: SshPiperPlugin_NewConnection_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SshPiperPluginServer).NewConnection(ctx, req.(*NewConnectionRequest)) @@ -364,7 +363,7 @@ func _SshPiperPlugin_NextAuthMethods_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/libplugin.SshPiperPlugin/NextAuthMethods", + FullMethod: SshPiperPlugin_NextAuthMethods_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SshPiperPluginServer).NextAuthMethods(ctx, req.(*NextAuthMethodsRequest)) @@ -382,7 +381,7 @@ func _SshPiperPlugin_NoneAuth_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/libplugin.SshPiperPlugin/NoneAuth", + FullMethod: SshPiperPlugin_NoneAuth_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SshPiperPluginServer).NoneAuth(ctx, req.(*NoneAuthRequest)) @@ -400,7 +399,7 @@ func _SshPiperPlugin_PasswordAuth_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/libplugin.SshPiperPlugin/PasswordAuth", + FullMethod: SshPiperPlugin_PasswordAuth_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SshPiperPluginServer).PasswordAuth(ctx, req.(*PasswordAuthRequest)) @@ -418,7 +417,7 @@ func _SshPiperPlugin_PublicKeyAuth_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/libplugin.SshPiperPlugin/PublicKeyAuth", + FullMethod: SshPiperPlugin_PublicKeyAuth_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SshPiperPluginServer).PublicKeyAuth(ctx, req.(*PublicKeyAuthRequest)) @@ -427,30 +426,11 @@ func _SshPiperPlugin_PublicKeyAuth_Handler(srv interface{}, ctx context.Context, } func _SshPiperPlugin_KeyboardInteractiveAuth_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(SshPiperPluginServer).KeyboardInteractiveAuth(&sshPiperPluginKeyboardInteractiveAuthServer{stream}) + return srv.(SshPiperPluginServer).KeyboardInteractiveAuth(&grpc.GenericServerStream[KeyboardInteractiveAuthMessage, KeyboardInteractiveAuthMessage]{ServerStream: stream}) } -type SshPiperPlugin_KeyboardInteractiveAuthServer interface { - Send(*KeyboardInteractiveAuthMessage) error - Recv() (*KeyboardInteractiveAuthMessage, error) - grpc.ServerStream -} - -type sshPiperPluginKeyboardInteractiveAuthServer struct { - grpc.ServerStream -} - -func (x *sshPiperPluginKeyboardInteractiveAuthServer) Send(m *KeyboardInteractiveAuthMessage) error { - return x.ServerStream.SendMsg(m) -} - -func (x *sshPiperPluginKeyboardInteractiveAuthServer) Recv() (*KeyboardInteractiveAuthMessage, error) { - m := new(KeyboardInteractiveAuthMessage) - if err := x.ServerStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type SshPiperPlugin_KeyboardInteractiveAuthServer = grpc.BidiStreamingServer[KeyboardInteractiveAuthMessage, KeyboardInteractiveAuthMessage] func _SshPiperPlugin_UpstreamAuthFailureNotice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpstreamAuthFailureNoticeRequest) @@ -462,7 +442,7 @@ func _SshPiperPlugin_UpstreamAuthFailureNotice_Handler(srv interface{}, ctx cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/libplugin.SshPiperPlugin/UpstreamAuthFailureNotice", + FullMethod: SshPiperPlugin_UpstreamAuthFailureNotice_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SshPiperPluginServer).UpstreamAuthFailureNotice(ctx, req.(*UpstreamAuthFailureNoticeRequest)) @@ -480,7 +460,7 @@ func _SshPiperPlugin_Banner_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/libplugin.SshPiperPlugin/Banner", + FullMethod: SshPiperPlugin_Banner_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SshPiperPluginServer).Banner(ctx, req.(*BannerRequest)) @@ -498,7 +478,7 @@ func _SshPiperPlugin_VerifyHostKey_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/libplugin.SshPiperPlugin/VerifyHostKey", + FullMethod: SshPiperPlugin_VerifyHostKey_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SshPiperPluginServer).VerifyHostKey(ctx, req.(*VerifyHostKeyRequest)) @@ -516,7 +496,7 @@ func _SshPiperPlugin_PipeCreateErrorNotice_Handler(srv interface{}, ctx context. } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/libplugin.SshPiperPlugin/PipeCreateErrorNotice", + FullMethod: SshPiperPlugin_PipeCreateErrorNotice_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SshPiperPluginServer).PipeCreateErrorNotice(ctx, req.(*PipeCreateErrorNoticeRequest)) @@ -534,7 +514,7 @@ func _SshPiperPlugin_PipeStartNotice_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/libplugin.SshPiperPlugin/PipeStartNotice", + FullMethod: SshPiperPlugin_PipeStartNotice_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SshPiperPluginServer).PipeStartNotice(ctx, req.(*PipeStartNoticeRequest)) @@ -552,7 +532,7 @@ func _SshPiperPlugin_PipeErrorNotice_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/libplugin.SshPiperPlugin/PipeErrorNotice", + FullMethod: SshPiperPlugin_PipeErrorNotice_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(SshPiperPluginServer).PipeErrorNotice(ctx, req.(*PipeErrorNoticeRequest)) diff --git a/plugin/failtoban/README.md b/plugin/failtoban/README.md index 8dbda5fb..edc3585d 100644 --- a/plugin/failtoban/README.md +++ b/plugin/failtoban/README.md @@ -7,7 +7,7 @@ put ip to jail for a while after failed to login for several times. put this plugin after other plugins, like: ``` -sshpiperd
-- failtoban +sshpiperd
-- failtoban ``` diff --git a/plugin/kubernetes/README.md b/plugin/kubernetes/README.md index 3a3d9589..27f1fc00 100644 --- a/plugin/kubernetes/README.md +++ b/plugin/kubernetes/README.md @@ -1,8 +1,8 @@ # kubernetes plugin for sshpiperd -The kubernetes plugin for sshpiperd provides native kubernetes CRD integretion and allow you manage sshpiper by `kubectl get pipes` and `kubectl apply -f pipe.yaml` +The kubernetes plugin for sshpiperd provides native kubernetes CRD integration and allow you manage sshpiper by `kubectl get pipes` and `kubectl apply -f pipe.yaml` -this plugin is inpsired by the [first version kubernetes plugin](https://github.com/pockost/sshpipe-k8s-lib/) for v0 sshpier by [pockost](https://github.com/pockost) +this plugin is inspired by the [first version kubernetes plugin](https://github.com/pockost/sshpipe-k8s-lib/) for v0 sshpiper by [pockost](https://github.com/pockost) ## Usage diff --git a/plugin/yaml/README.md b/plugin/yaml/README.md index 081e0132..4e3f8105 100644 --- a/plugin/yaml/README.md +++ b/plugin/yaml/README.md @@ -8,7 +8,7 @@ some basic idea of yaml config file: * any `from` in `pipe` fits `downstream` authentication will be considered as the `pipe` matched. * `username_regex_match` can be used to match with regex - * to.Username can be template of regex match groups, example: `from.username: "^password_(.*?)_regex$"` and `to.username: $1"`, will match `password_user_regex` to `user`, more sytax see + * to.Username can be template of regex match groups, example: `from.username: "^password_(.*?)_regex$"` and `to.username: $1"`, will match `password_user_regex` to `user`, more syntax see * `authorized_keys`, `known_hosts` are array `path/to/target/file` or single string, but there are also `authorized_keys_data`, `known_hosts_data` accepting base64 inline data, file and data will be merged if both are set * `private_key` is `path/to/target/file`, but there are also `private_key_data` accepting base64 inline data, file wins if both are set