From fd586d7df2b939ab2953823c2c3de83e7ec131c8 Mon Sep 17 00:00:00 2001 From: nleiva Date: Sat, 14 May 2022 14:07:02 -0400 Subject: [PATCH] Restore actions --- README.md | 7 +- client.go | 79 +- client_test.go | 113 ++- proto/ems/ems_grpc.pb.go | 1421 +++++++++++++++++++++++---------- proto/ems/ems_grpc.proto | 83 +- proto/ems/ems_grpc_grpc.pb.go | 186 ++++- 6 files changed, 1343 insertions(+), 546 deletions(-) diff --git a/README.md b/README.md index ae1b312..cee4898 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,11 @@ The end goal is to enable use-cases where multiple interactions with devices are - [JSON (GPBKV): OpenConfig](#json-gpbkv-openconfig) - [GPB (Protobuf)](#gpb-protobuf) + [Config and Validate](#config-and-validate) + + [Actions](#actions) + - [Ping](#ping) + - [Traceroute](#traceroute) + - [Log Generation](#log-generation) + - [Crypto Key Generation](#crypto-key-generation) + [Bypass the config file](#bypass-the-config-file) * [XR gRPC Config](#xr-grpc-config) + [Port range](#port-range) @@ -729,8 +734,6 @@ telemetry model-driven ### Actions ->*NOTE*: Support for actions has been deprecated on XR, most likely in favor of gNOI. - There are multiple actions than can be triggered via gRPC on IOS XR devices running 6.3.1 or later. Below the YANG models supported to the date and some examples using this library. ```console diff --git a/client.go b/client.go index 9055c83..738e7fe 100644 --- a/client.go +++ b/client.go @@ -8,7 +8,6 @@ import ( "io" "net" "os" - "strconv" "time" pb "github.com/nleiva/xrgrpc/proto/ems" @@ -163,10 +162,6 @@ func Connect(xr CiscoGrpcClient) (*grpc.ClientConn, context.Context, error) { // Add TLS credentials to config options array. opts = append(opts, grpc.WithTransportCredentials(creds)) - // grpc.WithTimeout is deprecated - // opts = append(opts, grpc.WithTimeout(time.Millisecond*time.Duration(1500))) - // opts = append(opts, grpc.WithBlock()) - // Add gRPC overall timeout to the config options array. ctx, _ := context.WithTimeout(context.Background(), time.Second*time.Duration(xr.Timeout)) @@ -189,10 +184,6 @@ func ConnectInsecure(xr CiscoGrpcClient) (*grpc.ClientConn, context.Context, err // opts holds the config options to set up the connection. var opts []grpc.DialOption - // grpc.WithTimeout is deprecated - // opts = append(opts, grpc.WithTimeout(time.Millisecond*time.Duration(1500))) - // opts = append(opts, grpc.WithBlock()) - // Add gRPC overall timeout to the config options array. ctx, _ := context.WithTimeout(context.Background(), time.Second*time.Duration(xr.Timeout)) @@ -235,8 +226,7 @@ func ShowCmdTextOutput(ctx context.Context, conn *grpc.ClientConn, cli string, i return s, nil } if len(r.GetErrors()) != 0 { - si := strconv.FormatInt(id, 10) - return s, fmt.Errorf("error triggered by remote host for ReqId: %s; %s", si, r.GetErrors()) + return s, fmt.Errorf("error triggered by remote host for ReqId: %v; %s", id, r.GetErrors()) } if len(r.GetOutput()) > 0 { s += r.GetOutput() @@ -244,6 +234,36 @@ func ShowCmdTextOutput(ctx context.Context, conn *grpc.ClientConn, cli string, i } } +// ActionJSON returns the output of an action commands as a JSON structured output. +func ActionJSON(ctx context.Context, conn *grpc.ClientConn, j string, id int64) (string, error) { + var s string + // 'c' is the gRPC stub. + c := pb.NewGRPCExecClient(conn) + + // 'a' is the object we send to the router via the stub. + a := pb.ActionJSONArgs{ReqId: id, Yangpathjson: j} + + // 'st' is the streamed result that comes back from the target. + st, err := c.ActionJSON(context.Background(), &a) + if err != nil { + return s, fmt.Errorf("gRPC ActionJSON failed: %w", err) + } + + for { + // Loop through the responses in the stream until there is nothing left. + r, err := st.Recv() + if err == io.EOF { + return s, nil + } + if len(r.GetErrors()) != 0 { + return s, fmt.Errorf("error triggered by remote host for ReqId: %v; %s", id, r.GetErrors()) + } + if len(r.GetYangjson()) > 0 { + s += r.GetYangjson() + } + } +} + // ShowCmdJSONOutput returns the output of a CLI show commands // as a JSON structured output. func ShowCmdJSONOutput(ctx context.Context, conn *grpc.ClientConn, cli string, id int64) (string, error) { @@ -267,8 +287,7 @@ func ShowCmdJSONOutput(ctx context.Context, conn *grpc.ClientConn, cli string, i return s, nil } if len(r.GetErrors()) != 0 { - si := strconv.FormatInt(id, 10) - return s, fmt.Errorf("error triggered by remote host for ReqId: %s; %s", si, r.GetErrors()) + return s, fmt.Errorf("error triggered by remote host for ReqId: %v; %s", id, r.GetErrors()) } if len(r.GetJsonoutput()) > 0 { s += r.GetJsonoutput() @@ -299,8 +318,7 @@ func GetConfig(ctx context.Context, conn *grpc.ClientConn, js string, id int64) return s, nil } if len(r.GetErrors()) != 0 { - si := strconv.FormatInt(id, 10) - return s, fmt.Errorf("error triggered by remote host for ReqId: %s; %s", si, r.GetErrors()) + return s, fmt.Errorf("error triggered by remote host for ReqId: %v; %s", id, r.GetErrors()) } if len(r.GetYangjson()) > 0 { s += r.GetYangjson() @@ -322,23 +340,19 @@ func CLIConfig(ctx context.Context, conn *grpc.ClientConn, cli string, id int64) return fmt.Errorf("gRPC CliConfig failed: %w", err) } if len(r.GetErrors()) != 0 { - si := strconv.FormatInt(id, 10) - return fmt.Errorf("error triggered by remote host for ReqId: %s; %s", si, r.GetErrors()) + return fmt.Errorf("error triggered by remote host for ReqId: %v; %s", id, r.GetErrors()) } return err } // CommitConfig commits a config. Need to clarify its use-case. -func CommitConfig(ctx context.Context, conn *grpc.ClientConn, cm [2]string, id int64) (string, error) { +func CommitConfig(ctx context.Context, conn *grpc.ClientConn, cm uint32, id int64) (string, error) { var s string // 'c' is the gRPC stub. c := pb.NewGRPCConfigOperClient(conn) - si := strconv.FormatInt(id, 10) - // Commit metadata - m := pb.CommitMsg{Label: cm[0], Comment: cm[1]} // 'a' is the object we send to the router via the stub. - a := pb.CommitArgs{Msg: &m, ReqId: id} + a := pb.CommitArgs{CommitID: cm, ReqId: id} // 'r' is the result that comes back from the target. r, err := c.CommitConfig(ctx, &a) @@ -346,17 +360,16 @@ func CommitConfig(ctx context.Context, conn *grpc.ClientConn, cm [2]string, id i return s, fmt.Errorf("gRPC CommitConfig failed: %w", err) } if len(r.GetErrors()) != 0 { - return s, fmt.Errorf("error triggered by remote host for ReqId: %s; %s", si, r.GetErrors()) + return s, fmt.Errorf("error triggered by remote host for ReqId: %v; %s", id, r.GetErrors()) } // What about r.ResReqId. Seems to equal to id sent. - return r.Result.String(), err + return r.String(), err } // CommitReplace issues a cli and JSON config to the target. func CommitReplace(ctx context.Context, conn *grpc.ClientConn, cli, js string, id int64) error { // 'c' is the gRPC stub. c := pb.NewGRPCConfigOperClient(conn) - si := strconv.FormatInt(id, 10) // 'a' is the object we send to the router via the stub. a := pb.CommitReplaceArgs{Cli: cli, Yangjson: js, ReqId: id} @@ -367,7 +380,7 @@ func CommitReplace(ctx context.Context, conn *grpc.ClientConn, cli, js string, i return fmt.Errorf("gRPC CommitReplace failed: %w", err) } if len(r.GetErrors()) != 0 { - return fmt.Errorf("error triggered by remote host for ReqId: %s; %s", si, r.GetErrors()) + return fmt.Errorf("error triggered by remote host for ReqId: %v; %s", id, r.GetErrors()) } return err } @@ -386,8 +399,7 @@ func MergeConfig(ctx context.Context, conn *grpc.ClientConn, js string, id int64 return -1, fmt.Errorf("gRPC MergeConfig failed: %w", err) } if len(r.GetErrors()) != 0 { - si := strconv.FormatInt(id, 10) - return -1, fmt.Errorf("error triggered by remote host for ReqId: %s; %s", si, r.GetErrors()) + return -1, fmt.Errorf("error triggered by remote host for ReqId: %v; %s", id, r.GetErrors()) } return r.ResReqId, nil } @@ -407,8 +419,7 @@ func DeleteConfig(ctx context.Context, conn *grpc.ClientConn, js string, id int6 return -1, fmt.Errorf("gRPC DeleteConfig failed: %w", err) } if len(r.GetErrors()) != 0 { - si := strconv.FormatInt(id, 10) - return -1, fmt.Errorf("error triggered by remote host for ReqId: %s; %s", si, r.GetErrors()) + return -1, fmt.Errorf("error triggered by remote host for ReqId: %v; %s", id, r.GetErrors()) } return r.ResReqId, nil } @@ -428,8 +439,7 @@ func ReplaceConfig(ctx context.Context, conn *grpc.ClientConn, js string, id int return -1, fmt.Errorf("gRPC ReplaceConfig failed: %w", err) } if len(r.GetErrors()) != 0 { - si := strconv.FormatInt(id, 10) - return -1, fmt.Errorf("error triggered by remote host for ReqId: %s; %s", si, r.GetErrors()) + return -1, fmt.Errorf("error triggered by remote host for ReqId: %v; %s", id, r.GetErrors()) } return r.ResReqId, nil } @@ -452,7 +462,6 @@ func GetSubscription(ctx context.Context, conn *grpc.ClientConn, p string, id in if err != nil { return b, e, fmt.Errorf("gRPC CreateSubs failed: %w", err) } - si := strconv.FormatInt(id, 10) // TODO: Review the logic. Make sure this goroutine ends and propagate // error messages @@ -460,12 +469,12 @@ func GetSubscription(ctx context.Context, conn *grpc.ClientConn, p string, id in r, err := st.Recv() if err != nil { close(b) - e <- fmt.Errorf("error triggered by remote host: %s, ReqID: %s", err, si) + e <- fmt.Errorf("error triggered by remote host: %s, ReqID: %v", err, id) return } if len(r.GetErrors()) != 0 { close(b) - e <- fmt.Errorf("error triggered by remote host: %s, ReqID: %s", r.GetErrors(), si) + e <- fmt.Errorf("error triggered by remote host: %s, ReqID: %v", r.GetErrors(), id) return } for { diff --git a/client_test.go b/client_test.go index 72d78d1..5615797 100644 --- a/client_test.go +++ b/client_test.go @@ -1,4 +1,3 @@ -// Big TODO: current coverage: 66.2% of statements package xrgrpc_test import ( @@ -19,24 +18,26 @@ import ( ) const ( - defaultAddr = "localhost" - defaultPort = ":57344" - defaultUser = "test" - defaultPass = "test" - defaultCert = "test/cert.pem" - defaultKey = "test/key.pem" - defaultCmd = "show test" - defaultYang = "{\"Cisco-IOS-XR-test:tree\": [null]}" - defaultSubsID = "TEST" - wrongCmd = "show me the money" - wrongConf = "confreg 0x00" - wrongYang = "{\"Cisco-IOS-XR-fake:tree\": [null]}" - wrongCreds = "incorrect username/password" - wrongSubsID = "wrong Subscription ID" - wrongEncode = "wrong encoding" - wrongCmdErr = "wrong command" - wrongYangErr = "wrong YANG path" - defaultTimeout = 5 + defaultAddr = "localhost" + defaultPort = ":57344" + defaultUser = "test" + defaultPass = "test" + defaultCert = "test/cert.pem" + defaultKey = "test/key.pem" + defaultCmd = "show test" + defaultYang = "{\"Cisco-IOS-XR-test:tree\": [null]}" + defaultSubsID = "TEST" + defaultCommitID uint32 = 100000002 + wrongCmd = "show me the money" + wrongConf = "confreg 0x00" + wrongYang = "{\"Cisco-IOS-XR-fake:tree\": [null]}" + wrongCreds = "incorrect username/password" + wrongSubsID = "wrong Subscription ID" + wrongEncode = "wrong encoding" + wrongCmdErr = "wrong command" + wrongYangErr = "wrong YANG path" + wrongCommitID = "wrong Commit ID" + defaultTimeout = 5 ) // execServer implements the GRPCExecServer interface @@ -89,31 +90,31 @@ func (s *execServer) ShowCmdJSONOutput(a *pb.ShowCmdArgs, stream pb.GRPCExec_Sho return nil } -// func (s *execServer) ActionJSON(a *pb.ActionJSONArgs, stream pb.GRPCExec_ActionJSONServer) error { -// if a.GetYangpathjson() != defaultYang { -// err := stream.Send(&pb.ActionJSONReply{ -// ResReqId: a.GetReqId(), -// Errors: wrongCmdErr, -// }) -// if err != nil { -// return err -// } -// return errors.New(wrongCmdErr) -// } -// m := map[string]string{"result": "action test output"} -// j, err := json.Marshal(m) -// if err != nil { -// return errors.New("could not encode the test response") -// } -// err = stream.Send(&pb.ActionJSONReply{ -// ResReqId: a.GetReqId(), -// Yangjson: string(j), -// }) -// if err != nil { -// return err -// } -// return nil -// } +func (s *execServer) ActionJSON(a *pb.ActionJSONArgs, stream pb.GRPCExec_ActionJSONServer) error { + if a.GetYangpathjson() != defaultYang { + err := stream.Send(&pb.ActionJSONReply{ + ResReqId: a.GetReqId(), + Errors: wrongCmdErr, + }) + if err != nil { + return err + } + return errors.New(wrongCmdErr) + } + m := map[string]string{"result": "action test output"} + j, err := json.Marshal(m) + if err != nil { + return errors.New("could not encode the test response") + } + err = stream.Send(&pb.ActionJSONReply{ + ResReqId: a.GetReqId(), + Yangjson: string(j), + }) + if err != nil { + return err + } + return nil +} // operConfigServer implements the GRPCConfigOperServer interface type operConfigServer struct { @@ -213,19 +214,16 @@ func (s *operConfigServer) CommitReplace(ctx context.Context, a *pb.CommitReplac // CommitConfig commits a config. Need to clarify its use-case. func (s *operConfigServer) CommitConfig(ctx context.Context, a *pb.CommitArgs) (r *pb.CommitReply, err error) { - Msg := "test" - if a.GetMsg().Comment != Msg { - err = errors.New(wrongCmdErr) + if a.GetCommitID() != defaultCommitID { + err = errors.New(wrongCommitID) r = &pb.CommitReply{ - Result: pb.CommitResult_FAIL, ResReqId: a.GetReqId(), - Errors: wrongCmdErr, + Errors: wrongCommitID, } return } r = &pb.CommitReply{ ResReqId: a.GetReqId(), - Result: pb.CommitResult_CHANGE, } return } @@ -235,7 +233,7 @@ func (s *operConfigServer) ConfigDiscardChanges(context.Context, *pb.DiscardChan return nil, nil } -func (s *operConfigServer) GetOper(a *pb.ConfigGetArgs, stream pb.GRPCConfigOper_GetOperServer) error { +func (s *operConfigServer) GetOper(a *pb.GetOperArgs, stream pb.GRPCConfigOper_GetOperServer) error { if a.GetYangpathjson() != defaultYang { err := stream.Send(&pb.GetOperReply{ ResReqId: a.GetReqId(), @@ -999,21 +997,20 @@ func TestCommitConfig(t *testing.T) { Domain: "localhost", Timeout: defaultTimeout, } - defaultMsg := [2]string{"test", "test"} tt := []struct { name string - msg [2]string + cid uint32 user string pass string err string }{ // The order of these test do matter, we change credentials // on the last ones. - {name: "local connection", msg: defaultMsg}, - {name: "wrong config", msg: [2]string{"unknown", "anything"}, err: wrongCmdErr}, - {name: "wrong user", msg: defaultMsg, user: "bob", err: wrongCreds}, - {name: "wrong password", msg: defaultMsg, pass: "password", err: wrongCreds}, + {name: "local connection", cid: defaultCommitID}, + {name: "wrong config", cid: defaultCommitID, err: wrongCmdErr}, + {name: "wrong user", cid: defaultCommitID, user: "bob", err: wrongCreds}, + {name: "wrong password", cid: defaultCommitID, pass: "password", err: wrongCreds}, } s := Server(t, "opercon") conn, ctx, err := xr.Connect(x) @@ -1041,7 +1038,7 @@ func TestCommitConfig(t *testing.T) { t.Fatalf("could not setup a client connection to %v", x.Host) } } - _, err := xr.CommitConfig(ctx, conn, tc.msg, id) + _, err := xr.CommitConfig(ctx, conn, tc.cid, id) if err != nil { if strings.Contains(err.Error(), wrongCreds) && tc.err == wrongCreds { return diff --git a/proto/ems/ems_grpc.pb.go b/proto/ems/ems_grpc.pb.go index b9c2278..dab6aca 100644 --- a/proto/ems/ems_grpc.pb.go +++ b/proto/ems/ems_grpc.pb.go @@ -228,7 +228,7 @@ func (x TelemetryStreamDestination_TSP) Number() protoreflect.EnumNumber { // Deprecated: Use TelemetryStreamDestination_TSP.Descriptor instead. func (TelemetryStreamDestination_TSP) EnumDescriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{20, 0} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{24, 0} } type SubscriptionList_ENC_SPEC int32 @@ -274,7 +274,7 @@ func (x SubscriptionList_ENC_SPEC) Number() protoreflect.EnumNumber { // Deprecated: Use SubscriptionList_ENC_SPEC.Descriptor instead. func (SubscriptionList_ENC_SPEC) EnumDescriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{22, 0} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{26, 0} } type GetModelsInput_MODLE_REQUEST_TYPE int32 @@ -320,7 +320,7 @@ func (x GetModelsInput_MODLE_REQUEST_TYPE) Number() protoreflect.EnumNumber { // Deprecated: Use GetModelsInput_MODLE_REQUEST_TYPE.Descriptor instead. func (GetModelsInput_MODLE_REQUEST_TYPE) EnumDescriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{27, 0} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{31, 0} } type ConfigGetArgs struct { @@ -441,6 +441,61 @@ func (x *ConfigGetReply) GetErrors() string { return "" } +type GetOperArgs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReqId int64 `protobuf:"varint,1,opt,name=ReqId,proto3" json:"ReqId,omitempty"` + Yangpathjson string `protobuf:"bytes,2,opt,name=yangpathjson,proto3" json:"yangpathjson,omitempty"` +} + +func (x *GetOperArgs) Reset() { + *x = GetOperArgs{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOperArgs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOperArgs) ProtoMessage() {} + +func (x *GetOperArgs) ProtoReflect() protoreflect.Message { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetOperArgs.ProtoReflect.Descriptor instead. +func (*GetOperArgs) Descriptor() ([]byte, []int) { + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{2} +} + +func (x *GetOperArgs) GetReqId() int64 { + if x != nil { + return x.ReqId + } + return 0 +} + +func (x *GetOperArgs) GetYangpathjson() string { + if x != nil { + return x.Yangpathjson + } + return "" +} + type GetOperReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -454,7 +509,7 @@ type GetOperReply struct { func (x *GetOperReply) Reset() { *x = GetOperReply{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[2] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -467,7 +522,7 @@ func (x *GetOperReply) String() string { func (*GetOperReply) ProtoMessage() {} func (x *GetOperReply) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[2] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -480,7 +535,7 @@ func (x *GetOperReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetOperReply.ProtoReflect.Descriptor instead. func (*GetOperReply) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{2} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{3} } func (x *GetOperReply) GetResReqId() int64 { @@ -509,14 +564,16 @@ type ConfigArgs struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ReqId int64 `protobuf:"varint,1,opt,name=ReqId,proto3" json:"ReqId,omitempty"` - Yangjson string `protobuf:"bytes,2,opt,name=yangjson,proto3" json:"yangjson,omitempty"` + ReqId int64 `protobuf:"varint,1,opt,name=ReqId,proto3" json:"ReqId,omitempty"` + Yangjson string `protobuf:"bytes,2,opt,name=yangjson,proto3" json:"yangjson,omitempty"` + Confirmed bool `protobuf:"varint,3,opt,name=Confirmed,proto3" json:"Confirmed,omitempty"` + ConfirmTimeout uint32 `protobuf:"varint,4,opt,name=ConfirmTimeout,proto3" json:"ConfirmTimeout,omitempty"` } func (x *ConfigArgs) Reset() { *x = ConfigArgs{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[3] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -529,7 +586,7 @@ func (x *ConfigArgs) String() string { func (*ConfigArgs) ProtoMessage() {} func (x *ConfigArgs) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[3] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -542,7 +599,7 @@ func (x *ConfigArgs) ProtoReflect() protoreflect.Message { // Deprecated: Use ConfigArgs.ProtoReflect.Descriptor instead. func (*ConfigArgs) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{3} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{4} } func (x *ConfigArgs) GetReqId() int64 { @@ -559,6 +616,20 @@ func (x *ConfigArgs) GetYangjson() string { return "" } +func (x *ConfigArgs) GetConfirmed() bool { + if x != nil { + return x.Confirmed + } + return false +} + +func (x *ConfigArgs) GetConfirmTimeout() uint32 { + if x != nil { + return x.ConfirmTimeout + } + return 0 +} + type ConfigReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -566,12 +637,13 @@ type ConfigReply struct { ResReqId int64 `protobuf:"varint,1,opt,name=ResReqId,proto3" json:"ResReqId,omitempty"` Errors string `protobuf:"bytes,2,opt,name=errors,proto3" json:"errors,omitempty"` + CommitID uint32 `protobuf:"varint,3,opt,name=CommitID,proto3" json:"CommitID,omitempty"` } func (x *ConfigReply) Reset() { *x = ConfigReply{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[4] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -584,7 +656,7 @@ func (x *ConfigReply) String() string { func (*ConfigReply) ProtoMessage() {} func (x *ConfigReply) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[4] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -597,7 +669,7 @@ func (x *ConfigReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ConfigReply.ProtoReflect.Descriptor instead. func (*ConfigReply) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{4} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{5} } func (x *ConfigReply) GetResReqId() int64 { @@ -614,19 +686,28 @@ func (x *ConfigReply) GetErrors() string { return "" } +func (x *ConfigReply) GetCommitID() uint32 { + if x != nil { + return x.CommitID + } + return 0 +} + type CliConfigArgs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ReqId int64 `protobuf:"varint,1,opt,name=ReqId,proto3" json:"ReqId,omitempty"` - Cli string `protobuf:"bytes,2,opt,name=cli,proto3" json:"cli,omitempty"` + ReqId int64 `protobuf:"varint,1,opt,name=ReqId,proto3" json:"ReqId,omitempty"` + Cli string `protobuf:"bytes,2,opt,name=cli,proto3" json:"cli,omitempty"` + Confirmed bool `protobuf:"varint,3,opt,name=Confirmed,proto3" json:"Confirmed,omitempty"` + ConfirmTimeout uint32 `protobuf:"varint,4,opt,name=ConfirmTimeout,proto3" json:"ConfirmTimeout,omitempty"` } func (x *CliConfigArgs) Reset() { *x = CliConfigArgs{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[5] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -639,7 +720,7 @@ func (x *CliConfigArgs) String() string { func (*CliConfigArgs) ProtoMessage() {} func (x *CliConfigArgs) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[5] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -652,7 +733,7 @@ func (x *CliConfigArgs) ProtoReflect() protoreflect.Message { // Deprecated: Use CliConfigArgs.ProtoReflect.Descriptor instead. func (*CliConfigArgs) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{5} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{6} } func (x *CliConfigArgs) GetReqId() int64 { @@ -669,6 +750,20 @@ func (x *CliConfigArgs) GetCli() string { return "" } +func (x *CliConfigArgs) GetConfirmed() bool { + if x != nil { + return x.Confirmed + } + return false +} + +func (x *CliConfigArgs) GetConfirmTimeout() uint32 { + if x != nil { + return x.ConfirmTimeout + } + return 0 +} + type CliConfigReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -676,12 +771,13 @@ type CliConfigReply struct { ResReqId int64 `protobuf:"varint,1,opt,name=ResReqId,proto3" json:"ResReqId,omitempty"` Errors string `protobuf:"bytes,2,opt,name=errors,proto3" json:"errors,omitempty"` + CommitID uint32 `protobuf:"varint,3,opt,name=CommitID,proto3" json:"CommitID,omitempty"` } func (x *CliConfigReply) Reset() { *x = CliConfigReply{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[6] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -694,7 +790,7 @@ func (x *CliConfigReply) String() string { func (*CliConfigReply) ProtoMessage() {} func (x *CliConfigReply) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[6] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -707,7 +803,7 @@ func (x *CliConfigReply) ProtoReflect() protoreflect.Message { // Deprecated: Use CliConfigReply.ProtoReflect.Descriptor instead. func (*CliConfigReply) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{6} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{7} } func (x *CliConfigReply) GetResReqId() int64 { @@ -724,6 +820,13 @@ func (x *CliConfigReply) GetErrors() string { return "" } +func (x *CliConfigReply) GetCommitID() uint32 { + if x != nil { + return x.CommitID + } + return 0 +} + type CommitReplaceArgs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -737,7 +840,7 @@ type CommitReplaceArgs struct { func (x *CommitReplaceArgs) Reset() { *x = CommitReplaceArgs{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[7] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -750,7 +853,7 @@ func (x *CommitReplaceArgs) String() string { func (*CommitReplaceArgs) ProtoMessage() {} func (x *CommitReplaceArgs) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[7] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -763,7 +866,7 @@ func (x *CommitReplaceArgs) ProtoReflect() protoreflect.Message { // Deprecated: Use CommitReplaceArgs.ProtoReflect.Descriptor instead. func (*CommitReplaceArgs) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{7} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{8} } func (x *CommitReplaceArgs) GetReqId() int64 { @@ -799,7 +902,7 @@ type CommitReplaceReply struct { func (x *CommitReplaceReply) Reset() { *x = CommitReplaceReply{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[8] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -812,7 +915,7 @@ func (x *CommitReplaceReply) String() string { func (*CommitReplaceReply) ProtoMessage() {} func (x *CommitReplaceReply) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[8] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -825,7 +928,7 @@ func (x *CommitReplaceReply) ProtoReflect() protoreflect.Message { // Deprecated: Use CommitReplaceReply.ProtoReflect.Descriptor instead. func (*CommitReplaceReply) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{8} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{9} } func (x *CommitReplaceReply) GetResReqId() int64 { @@ -854,7 +957,7 @@ type CommitMsg struct { func (x *CommitMsg) Reset() { *x = CommitMsg{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[9] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -867,7 +970,7 @@ func (x *CommitMsg) String() string { func (*CommitMsg) ProtoMessage() {} func (x *CommitMsg) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[9] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -880,7 +983,7 @@ func (x *CommitMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use CommitMsg.ProtoReflect.Descriptor instead. func (*CommitMsg) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{9} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{10} } func (x *CommitMsg) GetLabel() string { @@ -902,14 +1005,14 @@ type CommitArgs struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg *CommitMsg `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - ReqId int64 `protobuf:"varint,2,opt,name=ReqId,proto3" json:"ReqId,omitempty"` + ReqId int64 `protobuf:"varint,1,opt,name=ReqId,proto3" json:"ReqId,omitempty"` + CommitID uint32 `protobuf:"varint,2,opt,name=CommitID,proto3" json:"CommitID,omitempty"` } func (x *CommitArgs) Reset() { *x = CommitArgs{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[10] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -922,7 +1025,7 @@ func (x *CommitArgs) String() string { func (*CommitArgs) ProtoMessage() {} func (x *CommitArgs) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[10] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -935,19 +1038,19 @@ func (x *CommitArgs) ProtoReflect() protoreflect.Message { // Deprecated: Use CommitArgs.ProtoReflect.Descriptor instead. func (*CommitArgs) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{10} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{11} } -func (x *CommitArgs) GetMsg() *CommitMsg { +func (x *CommitArgs) GetReqId() int64 { if x != nil { - return x.Msg + return x.ReqId } - return nil + return 0 } -func (x *CommitArgs) GetReqId() int64 { +func (x *CommitArgs) GetCommitID() uint32 { if x != nil { - return x.ReqId + return x.CommitID } return 0 } @@ -957,15 +1060,14 @@ type CommitReply struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Result CommitResult `protobuf:"varint,1,opt,name=result,proto3,enum=IOSXRExtensibleManagabilityService.CommitResult" json:"result,omitempty"` - ResReqId int64 `protobuf:"varint,2,opt,name=ResReqId,proto3" json:"ResReqId,omitempty"` - Errors string `protobuf:"bytes,3,opt,name=errors,proto3" json:"errors,omitempty"` + ResReqId int64 `protobuf:"varint,1,opt,name=ResReqId,proto3" json:"ResReqId,omitempty"` + Errors string `protobuf:"bytes,2,opt,name=errors,proto3" json:"errors,omitempty"` } func (x *CommitReply) Reset() { *x = CommitReply{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[11] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -978,7 +1080,7 @@ func (x *CommitReply) String() string { func (*CommitReply) ProtoMessage() {} func (x *CommitReply) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[11] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -991,14 +1093,7 @@ func (x *CommitReply) ProtoReflect() protoreflect.Message { // Deprecated: Use CommitReply.ProtoReflect.Descriptor instead. func (*CommitReply) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{11} -} - -func (x *CommitReply) GetResult() CommitResult { - if x != nil { - return x.Result - } - return CommitResult_CHANGE + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{12} } func (x *CommitReply) GetResReqId() int64 { @@ -1026,7 +1121,7 @@ type DiscardChangesArgs struct { func (x *DiscardChangesArgs) Reset() { *x = DiscardChangesArgs{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[12] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1039,7 +1134,7 @@ func (x *DiscardChangesArgs) String() string { func (*DiscardChangesArgs) ProtoMessage() {} func (x *DiscardChangesArgs) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[12] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1052,7 +1147,7 @@ func (x *DiscardChangesArgs) ProtoReflect() protoreflect.Message { // Deprecated: Use DiscardChangesArgs.ProtoReflect.Descriptor instead. func (*DiscardChangesArgs) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{12} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{13} } func (x *DiscardChangesArgs) GetReqId() int64 { @@ -1074,7 +1169,7 @@ type DiscardChangesReply struct { func (x *DiscardChangesReply) Reset() { *x = DiscardChangesReply{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[13] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1087,7 +1182,7 @@ func (x *DiscardChangesReply) String() string { func (*DiscardChangesReply) ProtoMessage() {} func (x *DiscardChangesReply) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[13] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1100,7 +1195,7 @@ func (x *DiscardChangesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use DiscardChangesReply.ProtoReflect.Descriptor instead. func (*DiscardChangesReply) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{13} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{14} } func (x *DiscardChangesReply) GetResReqId() int64 { @@ -1129,7 +1224,7 @@ type ShowCmdArgs struct { func (x *ShowCmdArgs) Reset() { *x = ShowCmdArgs{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[14] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1142,7 +1237,7 @@ func (x *ShowCmdArgs) String() string { func (*ShowCmdArgs) ProtoMessage() {} func (x *ShowCmdArgs) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[14] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1155,7 +1250,7 @@ func (x *ShowCmdArgs) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowCmdArgs.ProtoReflect.Descriptor instead. func (*ShowCmdArgs) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{14} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{15} } func (x *ShowCmdArgs) GetReqId() int64 { @@ -1185,7 +1280,7 @@ type ShowCmdTextReply struct { func (x *ShowCmdTextReply) Reset() { *x = ShowCmdTextReply{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[15] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1198,7 +1293,7 @@ func (x *ShowCmdTextReply) String() string { func (*ShowCmdTextReply) ProtoMessage() {} func (x *ShowCmdTextReply) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[15] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1211,7 +1306,7 @@ func (x *ShowCmdTextReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowCmdTextReply.ProtoReflect.Descriptor instead. func (*ShowCmdTextReply) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{15} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{16} } func (x *ShowCmdTextReply) GetResReqId() int64 { @@ -1248,7 +1343,7 @@ type ShowCmdJSONReply struct { func (x *ShowCmdJSONReply) Reset() { *x = ShowCmdJSONReply{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[16] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1261,7 +1356,7 @@ func (x *ShowCmdJSONReply) String() string { func (*ShowCmdJSONReply) ProtoMessage() {} func (x *ShowCmdJSONReply) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[16] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1274,7 +1369,7 @@ func (x *ShowCmdJSONReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowCmdJSONReply.ProtoReflect.Descriptor instead. func (*ShowCmdJSONReply) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{16} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{17} } func (x *ShowCmdJSONReply) GetResReqId() int64 { @@ -1298,20 +1393,70 @@ func (x *ShowCmdJSONReply) GetErrors() string { return "" } +// QOSMarking specifies the DSCP value to be set on transmitted telemetry +type QOSMarking struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Marking uint32 `protobuf:"varint,1,opt,name=marking,proto3" json:"marking,omitempty"` +} + +func (x *QOSMarking) Reset() { + *x = QOSMarking{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QOSMarking) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QOSMarking) ProtoMessage() {} + +func (x *QOSMarking) ProtoReflect() protoreflect.Message { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QOSMarking.ProtoReflect.Descriptor instead. +func (*QOSMarking) Descriptor() ([]byte, []int) { + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{18} +} + +func (x *QOSMarking) GetMarking() uint32 { + if x != nil { + return x.Marking + } + return 0 +} + type CreateSubsArgs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ReqId int64 `protobuf:"varint,1,opt,name=ReqId,proto3" json:"ReqId,omitempty"` - Encode int64 `protobuf:"varint,2,opt,name=encode,proto3" json:"encode,omitempty"` - Subidstr string `protobuf:"bytes,3,opt,name=subidstr,proto3" json:"subidstr,omitempty"` + ReqId int64 `protobuf:"varint,1,opt,name=ReqId,proto3" json:"ReqId,omitempty"` + Encode int64 `protobuf:"varint,2,opt,name=encode,proto3" json:"encode,omitempty"` + Subidstr string `protobuf:"bytes,3,opt,name=subidstr,proto3" json:"subidstr,omitempty"` + Qos *QOSMarking `protobuf:"bytes,4,opt,name=qos,proto3" json:"qos,omitempty"` // DSCP marking to be used. + Subscriptions []string `protobuf:"bytes,5,rep,name=Subscriptions,proto3" json:"Subscriptions,omitempty"` } func (x *CreateSubsArgs) Reset() { *x = CreateSubsArgs{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[17] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1324,7 +1469,7 @@ func (x *CreateSubsArgs) String() string { func (*CreateSubsArgs) ProtoMessage() {} func (x *CreateSubsArgs) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[17] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1337,7 +1482,7 @@ func (x *CreateSubsArgs) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateSubsArgs.ProtoReflect.Descriptor instead. func (*CreateSubsArgs) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{17} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{19} } func (x *CreateSubsArgs) GetReqId() int64 { @@ -1361,33 +1506,46 @@ func (x *CreateSubsArgs) GetSubidstr() string { return "" } -type CreateSubsReply struct { +func (x *CreateSubsArgs) GetQos() *QOSMarking { + if x != nil { + return x.Qos + } + return nil +} + +func (x *CreateSubsArgs) GetSubscriptions() []string { + if x != nil { + return x.Subscriptions + } + return nil +} + +type ActionJSONArgs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ResReqId int64 `protobuf:"varint,1,opt,name=ResReqId,proto3" json:"ResReqId,omitempty"` - Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` - Errors string `protobuf:"bytes,3,opt,name=errors,proto3" json:"errors,omitempty"` + ReqId int64 `protobuf:"varint,1,opt,name=ReqId,proto3" json:"ReqId,omitempty"` + Yangpathjson string `protobuf:"bytes,2,opt,name=yangpathjson,proto3" json:"yangpathjson,omitempty"` } -func (x *CreateSubsReply) Reset() { - *x = CreateSubsReply{} +func (x *ActionJSONArgs) Reset() { + *x = ActionJSONArgs{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[18] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CreateSubsReply) String() string { +func (x *ActionJSONArgs) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateSubsReply) ProtoMessage() {} +func (*ActionJSONArgs) ProtoMessage() {} -func (x *CreateSubsReply) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[18] +func (x *ActionJSONArgs) ProtoReflect() protoreflect.Message { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1398,12 +1556,131 @@ func (x *CreateSubsReply) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateSubsReply.ProtoReflect.Descriptor instead. -func (*CreateSubsReply) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{18} +// Deprecated: Use ActionJSONArgs.ProtoReflect.Descriptor instead. +func (*ActionJSONArgs) Descriptor() ([]byte, []int) { + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{20} } -func (x *CreateSubsReply) GetResReqId() int64 { +func (x *ActionJSONArgs) GetReqId() int64 { + if x != nil { + return x.ReqId + } + return 0 +} + +func (x *ActionJSONArgs) GetYangpathjson() string { + if x != nil { + return x.Yangpathjson + } + return "" +} + +type ActionJSONReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResReqId int64 `protobuf:"varint,1,opt,name=ResReqId,proto3" json:"ResReqId,omitempty"` + Yangjson string `protobuf:"bytes,2,opt,name=yangjson,proto3" json:"yangjson,omitempty"` + Errors string `protobuf:"bytes,3,opt,name=errors,proto3" json:"errors,omitempty"` +} + +func (x *ActionJSONReply) Reset() { + *x = ActionJSONReply{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ActionJSONReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionJSONReply) ProtoMessage() {} + +func (x *ActionJSONReply) ProtoReflect() protoreflect.Message { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ActionJSONReply.ProtoReflect.Descriptor instead. +func (*ActionJSONReply) Descriptor() ([]byte, []int) { + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{21} +} + +func (x *ActionJSONReply) GetResReqId() int64 { + if x != nil { + return x.ResReqId + } + return 0 +} + +func (x *ActionJSONReply) GetYangjson() string { + if x != nil { + return x.Yangjson + } + return "" +} + +func (x *ActionJSONReply) GetErrors() string { + if x != nil { + return x.Errors + } + return "" +} + +type CreateSubsReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResReqId int64 `protobuf:"varint,1,opt,name=ResReqId,proto3" json:"ResReqId,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Errors string `protobuf:"bytes,3,opt,name=errors,proto3" json:"errors,omitempty"` +} + +func (x *CreateSubsReply) Reset() { + *x = CreateSubsReply{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateSubsReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSubsReply) ProtoMessage() {} + +func (x *CreateSubsReply) ProtoReflect() protoreflect.Message { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateSubsReply.ProtoReflect.Descriptor instead. +func (*CreateSubsReply) Descriptor() ([]byte, []int) { + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{22} +} + +func (x *CreateSubsReply) GetResReqId() int64 { if x != nil { return x.ResReqId } @@ -1438,7 +1715,7 @@ type SubscribeRequest struct { func (x *SubscribeRequest) Reset() { *x = SubscribeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[19] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1451,7 +1728,7 @@ func (x *SubscribeRequest) String() string { func (*SubscribeRequest) ProtoMessage() {} func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[19] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1464,7 +1741,7 @@ func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead. func (*SubscribeRequest) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{19} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{23} } func (x *SubscribeRequest) GetReqId() int64 { @@ -1511,7 +1788,7 @@ type TelemetryStreamDestination struct { func (x *TelemetryStreamDestination) Reset() { *x = TelemetryStreamDestination{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[20] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1524,7 +1801,7 @@ func (x *TelemetryStreamDestination) String() string { func (*TelemetryStreamDestination) ProtoMessage() {} func (x *TelemetryStreamDestination) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[20] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1537,7 +1814,7 @@ func (x *TelemetryStreamDestination) ProtoReflect() protoreflect.Message { // Deprecated: Use TelemetryStreamDestination.ProtoReflect.Descriptor instead. func (*TelemetryStreamDestination) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{20} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{24} } func (x *TelemetryStreamDestination) GetDestinationAddress() string { @@ -1572,7 +1849,7 @@ type TelemetryPath struct { func (x *TelemetryPath) Reset() { *x = TelemetryPath{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[21] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1585,7 +1862,7 @@ func (x *TelemetryPath) String() string { func (*TelemetryPath) ProtoMessage() {} func (x *TelemetryPath) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[21] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1598,7 +1875,7 @@ func (x *TelemetryPath) ProtoReflect() protoreflect.Message { // Deprecated: Use TelemetryPath.ProtoReflect.Descriptor instead. func (*TelemetryPath) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{21} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{25} } func (x *TelemetryPath) GetPath() string { @@ -1617,12 +1894,13 @@ type SubscriptionList struct { TelemetryPaths []*TelemetryPath `protobuf:"bytes,2,rep,name=TelemetryPaths,proto3" json:"TelemetryPaths,omitempty"` SampleInterval uint64 `protobuf:"varint,3,opt,name=sample_interval,json=sampleInterval,proto3" json:"sample_interval,omitempty"` Encoding SubscriptionList_ENC_SPEC `protobuf:"varint,4,opt,name=encoding,proto3,enum=IOSXRExtensibleManagabilityService.SubscriptionList_ENC_SPEC" json:"encoding,omitempty"` + Qos *QOSMarking `protobuf:"bytes,5,opt,name=qos,proto3" json:"qos,omitempty"` // DSCP marking to be used. } func (x *SubscriptionList) Reset() { *x = SubscriptionList{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[22] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1635,7 +1913,7 @@ func (x *SubscriptionList) String() string { func (*SubscriptionList) ProtoMessage() {} func (x *SubscriptionList) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[22] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1648,7 +1926,7 @@ func (x *SubscriptionList) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscriptionList.ProtoReflect.Descriptor instead. func (*SubscriptionList) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{22} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{26} } func (x *SubscriptionList) GetTelemetryStreamDestinations() []*TelemetryStreamDestination { @@ -1679,6 +1957,13 @@ func (x *SubscriptionList) GetEncoding() SubscriptionList_ENC_SPEC { return SubscriptionList_ENC_KV_GPB } +func (x *SubscriptionList) GetQos() *QOSMarking { + if x != nil { + return x.Qos + } + return nil +} + type StatusResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1691,7 +1976,7 @@ type StatusResponse struct { func (x *StatusResponse) Reset() { *x = StatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[23] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1704,7 +1989,7 @@ func (x *StatusResponse) String() string { func (*StatusResponse) ProtoMessage() {} func (x *StatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[23] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1717,7 +2002,7 @@ func (x *StatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusResponse.ProtoReflect.Descriptor instead. func (*StatusResponse) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{23} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{27} } func (x *StatusResponse) GetMessageJson() string { @@ -1745,7 +2030,7 @@ type Notification struct { func (x *Notification) Reset() { *x = Notification{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[24] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1758,7 +2043,7 @@ func (x *Notification) String() string { func (*Notification) ProtoMessage() {} func (x *Notification) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[24] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1771,7 +2056,7 @@ func (x *Notification) ProtoReflect() protoreflect.Message { // Deprecated: Use Notification.ProtoReflect.Descriptor instead. func (*Notification) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{24} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{28} } func (x *Notification) GetData() []byte { @@ -1797,7 +2082,7 @@ type SubscribeResponse struct { func (x *SubscribeResponse) Reset() { *x = SubscribeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[25] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1810,7 +2095,7 @@ func (x *SubscribeResponse) String() string { func (*SubscribeResponse) ProtoMessage() {} func (x *SubscribeResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[25] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1823,7 +2108,7 @@ func (x *SubscribeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeResponse.ProtoReflect.Descriptor instead. func (*SubscribeResponse) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{25} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{29} } func (x *SubscribeResponse) GetResReqId() int64 { @@ -1889,7 +2174,7 @@ type CancelSubscribeReq struct { func (x *CancelSubscribeReq) Reset() { *x = CancelSubscribeReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[26] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1902,7 +2187,7 @@ func (x *CancelSubscribeReq) String() string { func (*CancelSubscribeReq) ProtoMessage() {} func (x *CancelSubscribeReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[26] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1915,7 +2200,7 @@ func (x *CancelSubscribeReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelSubscribeReq.ProtoReflect.Descriptor instead. func (*CancelSubscribeReq) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{26} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{30} } func (x *CancelSubscribeReq) GetReqId() int64 { @@ -1947,7 +2232,7 @@ type GetModelsInput struct { func (x *GetModelsInput) Reset() { *x = GetModelsInput{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[27] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1960,7 +2245,7 @@ func (x *GetModelsInput) String() string { func (*GetModelsInput) ProtoMessage() {} func (x *GetModelsInput) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[27] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1973,7 +2258,7 @@ func (x *GetModelsInput) ProtoReflect() protoreflect.Message { // Deprecated: Use GetModelsInput.ProtoReflect.Descriptor instead. func (*GetModelsInput) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{27} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{31} } func (x *GetModelsInput) GetRequestId() uint64 { @@ -2025,7 +2310,7 @@ type GetModelsOutput struct { func (x *GetModelsOutput) Reset() { *x = GetModelsOutput{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[28] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2038,7 +2323,7 @@ func (x *GetModelsOutput) String() string { func (*GetModelsOutput) ProtoMessage() {} func (x *GetModelsOutput) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[28] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2051,7 +2336,7 @@ func (x *GetModelsOutput) ProtoReflect() protoreflect.Message { // Deprecated: Use GetModelsOutput.ProtoReflect.Descriptor instead. func (*GetModelsOutput) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{28} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{32} } func (x *GetModelsOutput) GetRequestId() uint64 { @@ -2082,6 +2367,124 @@ func (x *GetModelsOutput) GetMsg() string { return "" } +type GetProtoFileArgs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReqId int64 `protobuf:"varint,1,opt,name=reqId,proto3" json:"reqId,omitempty"` + YangPath string `protobuf:"bytes,2,opt,name=yangPath,proto3" json:"yangPath,omitempty"` +} + +func (x *GetProtoFileArgs) Reset() { + *x = GetProtoFileArgs{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetProtoFileArgs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetProtoFileArgs) ProtoMessage() {} + +func (x *GetProtoFileArgs) ProtoReflect() protoreflect.Message { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetProtoFileArgs.ProtoReflect.Descriptor instead. +func (*GetProtoFileArgs) Descriptor() ([]byte, []int) { + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{33} +} + +func (x *GetProtoFileArgs) GetReqId() int64 { + if x != nil { + return x.ReqId + } + return 0 +} + +func (x *GetProtoFileArgs) GetYangPath() string { + if x != nil { + return x.YangPath + } + return "" +} + +type GetProtoFileReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReqId int64 `protobuf:"varint,1,opt,name=reqId,proto3" json:"reqId,omitempty"` + ProtoContent string `protobuf:"bytes,2,opt,name=protoContent,proto3" json:"protoContent,omitempty"` + Errors string `protobuf:"bytes,3,opt,name=errors,proto3" json:"errors,omitempty"` +} + +func (x *GetProtoFileReply) Reset() { + *x = GetProtoFileReply{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetProtoFileReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetProtoFileReply) ProtoMessage() {} + +func (x *GetProtoFileReply) ProtoReflect() protoreflect.Message { + mi := &file_proto_ems_ems_grpc_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetProtoFileReply.ProtoReflect.Descriptor instead. +func (*GetProtoFileReply) Descriptor() ([]byte, []int) { + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{34} +} + +func (x *GetProtoFileReply) GetReqId() int64 { + if x != nil { + return x.ReqId + } + return 0 +} + +func (x *GetProtoFileReply) GetProtoContent() string { + if x != nil { + return x.ProtoContent + } + return "" +} + +func (x *GetProtoFileReply) GetErrors() string { + if x != nil { + return x.Errors + } + return "" +} + type GetModelsOutput_ModelInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2097,7 +2500,7 @@ type GetModelsOutput_ModelInfo struct { func (x *GetModelsOutput_ModelInfo) Reset() { *x = GetModelsOutput_ModelInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[29] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2110,7 +2513,7 @@ func (x *GetModelsOutput_ModelInfo) String() string { func (*GetModelsOutput_ModelInfo) ProtoMessage() {} func (x *GetModelsOutput_ModelInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_ems_ems_grpc_proto_msgTypes[29] + mi := &file_proto_ems_ems_grpc_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2123,7 +2526,7 @@ func (x *GetModelsOutput_ModelInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GetModelsOutput_ModelInfo.ProtoReflect.Descriptor instead. func (*GetModelsOutput_ModelInfo) Descriptor() ([]byte, []int) { - return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{28, 0} + return file_proto_ems_ems_grpc_proto_rawDescGZIP(), []int{32, 0} } func (x *GetModelsOutput_ModelInfo) GetName() string { @@ -2178,146 +2581,180 @@ var file_proto_ems_ems_grpc_proto_rawDesc = []byte{ 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x79, 0x61, 0x6e, 0x67, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x79, 0x61, 0x6e, 0x67, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x5e, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x47, 0x0a, 0x0b, 0x47, + 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x41, 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, + 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, + 0x12, 0x22, 0x0a, 0x0c, 0x79, 0x61, 0x6e, 0x67, 0x70, 0x61, 0x74, 0x68, 0x6a, 0x73, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x79, 0x61, 0x6e, 0x67, 0x70, 0x61, 0x74, 0x68, + 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x5e, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x79, 0x61, 0x6e, 0x67, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x79, 0x61, 0x6e, 0x67, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, + 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x79, 0x61, 0x6e, + 0x67, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x79, 0x61, 0x6e, + 0x67, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x5d, 0x0a, 0x0b, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x44, 0x22, 0x7d, 0x0a, 0x0d, 0x43, 0x6c, + 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, + 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6c, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x63, 0x6c, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, + 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x60, 0x0a, 0x0e, 0x43, 0x6c, 0x69, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x79, 0x61, 0x6e, 0x67, 0x6a, - 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x79, 0x61, 0x6e, 0x67, 0x6a, - 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x3e, 0x0a, 0x0a, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x44, 0x22, 0x57, 0x0a, 0x11, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x72, 0x67, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6c, 0x69, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6c, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x79, 0x61, 0x6e, 0x67, + 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x79, 0x61, 0x6e, 0x67, + 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x3b, + 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x0a, 0x0a, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x41, 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x79, 0x61, 0x6e, 0x67, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x79, 0x61, 0x6e, 0x67, 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x0b, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, + 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0b, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x37, - 0x0a, 0x0d, 0x43, 0x6c, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x72, 0x67, 0x73, 0x12, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x2a, + 0x0a, 0x12, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x41, 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x13, 0x44, 0x69, + 0x73, 0x63, 0x61, 0x72, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x35, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, + 0x41, 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6c, + 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6c, 0x69, 0x22, 0x5e, 0x0a, 0x10, + 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x66, 0x0a, 0x10, + 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, 0x4a, 0x53, 0x4f, 0x4e, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x6a, 0x73, 0x6f, 0x6e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x22, 0x26, 0x0a, 0x0a, 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x72, 0x6b, 0x69, + 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0xc2, 0x01, 0x0a, + 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x41, 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6c, 0x69, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x63, 0x6c, 0x69, 0x22, 0x44, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x57, 0x0a, - 0x11, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x72, - 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6c, 0x69, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6c, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x79, 0x61, - 0x6e, 0x67, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x79, 0x61, - 0x6e, 0x67, 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, - 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x22, 0x3b, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x63, 0x0a, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x41, 0x72, 0x67, 0x73, 0x12, 0x3f, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, - 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, - 0x49, 0x64, 0x22, 0x8b, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x12, 0x48, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, + 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x75, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x75, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x12, 0x40, 0x0a, 0x03, 0x71, 0x6f, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x4f, 0x53, 0x4d, + 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x03, 0x71, 0x6f, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0d, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x4a, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x41, + 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x79, 0x61, 0x6e, + 0x67, 0x70, 0x61, 0x74, 0x68, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x79, 0x61, 0x6e, 0x67, 0x70, 0x61, 0x74, 0x68, 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x61, 0x0a, + 0x0f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x79, 0x61, 0x6e, 0x67, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x79, 0x61, 0x6e, 0x67, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x22, 0x2a, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x41, 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x13, - 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x22, 0x59, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x35, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x43, - 0x6d, 0x64, 0x41, 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x63, 0x6c, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6c, 0x69, 0x22, 0x5e, - 0x0a, 0x10, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x66, - 0x0a, 0x10, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, 0x4a, 0x53, 0x4f, 0x4e, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x1e, - 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x5a, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x75, 0x62, 0x73, 0x41, 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x69, 0x64, 0x73, - 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x69, 0x64, 0x73, - 0x74, 0x72, 0x22, 0x59, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x73, 0x52, 0x65, 0x71, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x89, 0x01, - 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x54, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x49, 0x4f, - 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, - 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, - 0x74, 0x48, 0x00, 0x52, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x42, 0x09, - 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9a, 0x02, 0x0a, 0x1a, 0x54, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x7e, 0x0a, 0x19, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x53, 0x50, 0x52, 0x17, 0x74, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x20, 0x0a, 0x03, 0x54, 0x53, 0x50, 0x12, 0x0b, 0x0a, 0x07, 0x54, - 0x53, 0x50, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x53, 0x50, 0x5f, - 0x47, 0x52, 0x50, 0x43, 0x10, 0x01, 0x22, 0x23, 0x0a, 0x0d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x74, 0x72, 0x79, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x22, 0x9d, 0x03, 0x0a, 0x10, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x80, 0x01, 0x0a, 0x1b, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1b, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x59, 0x0a, 0x0e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, - 0x50, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x49, 0x4f, - 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, - 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0e, - 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x27, - 0x0a, 0x0f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x59, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, - 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x49, 0x4f, 0x53, 0x58, + 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x10, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x52, 0x65, 0x71, 0x49, 0x64, 0x12, 0x54, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x2e, - 0x45, 0x4e, 0x43, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, - 0x6e, 0x67, 0x22, 0x27, 0x0a, 0x08, 0x45, 0x4e, 0x43, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x12, 0x0e, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, + 0x00, 0x52, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9a, 0x02, 0x0a, 0x1a, 0x54, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x7e, 0x0a, 0x19, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x74, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x53, 0x50, 0x52, 0x17, 0x74, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x74, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x22, 0x20, 0x0a, 0x03, 0x54, 0x53, 0x50, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x53, 0x50, + 0x5f, 0x54, 0x43, 0x50, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x53, 0x50, 0x5f, 0x47, 0x52, + 0x50, 0x43, 0x10, 0x01, 0x22, 0x23, 0x0a, 0x0d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, + 0x79, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x22, 0xdf, 0x03, 0x0a, 0x10, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x80, + 0x01, 0x0a, 0x1b, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x74, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1b, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x59, 0x0a, 0x0e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x50, 0x61, + 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x49, 0x4f, 0x53, 0x58, + 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0e, 0x54, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x27, 0x0a, 0x0f, + 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x59, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, + 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x45, 0x4e, + 0x43, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, + 0x12, 0x40, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x03, 0x71, + 0x6f, 0x73, 0x22, 0x27, 0x0a, 0x08, 0x45, 0x4e, 0x43, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x4e, 0x43, 0x5f, 0x4b, 0x56, 0x5f, 0x47, 0x50, 0x42, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x43, 0x5f, 0x47, 0x50, 0x42, 0x10, 0x01, 0x22, 0x81, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, @@ -2397,43 +2834,61 @@ var file_proto_ems_ems_grpc_proto_rawDesc = []byte{ 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x61, 0x74, - 0x61, 0x2a, 0x33, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x4e, 0x4f, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x46, 0x41, 0x49, 0x4c, 0x10, 0x02, 0x2a, 0xbb, 0x01, 0x0a, 0x14, 0x4f, 0x43, 0x5f, 0x52, 0x50, - 0x43, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, - 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x4f, 0x4b, 0x10, 0x01, - 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, - 0x50, 0x41, 0x54, 0x48, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, - 0x44, 0x5f, 0x50, 0x41, 0x54, 0x48, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x56, 0x41, - 0x4c, 0x49, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, - 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x18, 0x0a, - 0x14, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x43, - 0x4f, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x56, 0x41, 0x4c, - 0x49, 0x44, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x49, 0x44, 0x10, 0x07, 0x2a, 0x49, 0x0a, 0x0e, 0x47, 0x45, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, - 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x55, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x56, 0x49, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x55, 0x4e, 0x44, 0x4c, 0x45, 0x10, 0x03, 0x32, - 0xc8, 0x09, 0x0a, 0x0e, 0x67, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, - 0x65, 0x72, 0x12, 0x76, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x31, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, + 0x61, 0x22, 0x44, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, + 0x65, 0x41, 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x65, 0x71, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x79, + 0x61, 0x6e, 0x67, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x79, + 0x61, 0x6e, 0x67, 0x50, 0x61, 0x74, 0x68, 0x22, 0x65, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x65, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x65, 0x71, + 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x2a, 0x33, + 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0a, + 0x0a, 0x06, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, + 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41, 0x49, + 0x4c, 0x10, 0x02, 0x2a, 0xbb, 0x01, 0x0a, 0x14, 0x4f, 0x43, 0x5f, 0x52, 0x50, 0x43, 0x5f, 0x52, + 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x06, 0x0a, 0x02, + 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x14, 0x0a, + 0x10, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x54, + 0x48, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x50, + 0x41, 0x54, 0x48, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, + 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, + 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e, + 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x49, + 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, + 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x10, + 0x07, 0x2a, 0x49, 0x0a, 0x0e, 0x47, 0x45, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x00, 0x12, + 0x10, 0x0a, 0x0c, 0x41, 0x55, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x56, 0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x55, 0x4e, 0x44, 0x4c, 0x45, 0x10, 0x03, 0x32, 0xba, 0x0b, 0x0a, + 0x0e, 0x67, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x65, 0x72, 0x12, + 0x76, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31, 0x2e, 0x49, + 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, + 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x47, 0x65, 0x74, 0x41, 0x72, 0x67, 0x73, 0x1a, + 0x32, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x47, 0x65, 0x74, 0x41, 0x72, - 0x67, 0x73, 0x1a, 0x32, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x0b, 0x4d, 0x65, - 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x49, 0x4f, 0x53, 0x58, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x0b, 0x4d, 0x65, 0x72, 0x67, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x2f, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x0c, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x2f, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x0c, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x49, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x2f, 0x2e, 0x49, @@ -2478,65 +2933,81 @@ var file_proto_ems_ems_grpc_proto_rawDesc = []byte{ 0x1a, 0x37, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x07, 0x47, - 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, + 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x07, 0x47, + 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x47, 0x65, 0x74, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x30, 0x2e, 0x49, 0x4f, 0x53, 0x58, - 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, - 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, - 0x79, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x12, 0x32, 0x2e, - 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, - 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x41, 0x72, 0x67, - 0x73, 0x1a, 0x33, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, - 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x32, 0x8a, 0x02, 0x0a, 0x08, 0x67, - 0x52, 0x50, 0x43, 0x45, 0x78, 0x65, 0x63, 0x12, 0x7e, 0x0a, 0x11, 0x53, 0x68, 0x6f, 0x77, 0x43, - 0x6d, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2f, 0x2e, 0x49, + 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4f, + 0x70, 0x65, 0x72, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x30, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, + 0x4f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x79, 0x0a, + 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x12, 0x32, 0x2e, 0x49, 0x4f, + 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x41, 0x72, 0x67, 0x73, 0x1a, + 0x33, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x7f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x34, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x35, + 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x32, 0x85, 0x03, 0x0a, 0x08, 0x67, 0x52, + 0x50, 0x43, 0x45, 0x78, 0x65, 0x63, 0x12, 0x7e, 0x0a, 0x11, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, + 0x64, 0x54, 0x65, 0x78, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2f, 0x2e, 0x49, 0x4f, + 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x34, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x34, 0x2e, - 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, - 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x7e, 0x0a, 0x11, 0x53, 0x68, 0x6f, 0x77, 0x43, - 0x6d, 0x64, 0x4a, 0x53, 0x4f, 0x4e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2f, 0x2e, 0x49, + 0x65, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x7e, 0x0a, 0x11, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, + 0x64, 0x4a, 0x53, 0x4f, 0x4e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2f, 0x2e, 0x49, 0x4f, + 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x34, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x34, 0x2e, - 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, - 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, 0x4a, 0x53, 0x4f, 0x4e, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x32, 0x9a, 0x03, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x6e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x67, 0x52, 0x50, 0x43, 0x12, 0x85, 0x01, 0x0a, 0x12, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x12, 0x34, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x30, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x14, 0x55, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x36, 0x2e, 0x49, 0x4f, + 0x65, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6d, 0x64, 0x4a, 0x53, 0x4f, 0x4e, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x79, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x32, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4a, 0x53, 0x4f, 0x4e, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x33, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x53, 0x4f, 0x4e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, + 0x01, 0x32, 0x9a, 0x03, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x67, 0x52, 0x50, 0x43, 0x12, 0x85, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x34, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x35, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x09, - 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x12, 0x32, 0x2e, 0x49, 0x4f, 0x53, 0x58, - 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, - 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x33, 0x2e, + 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x35, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x87, 0x01, 0x0a, + 0x14, 0x55, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x36, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x35, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x22, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x12, 0x32, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x33, 0x2e, 0x49, 0x4f, 0x53, 0x58, 0x52, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x00, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2552,7 +3023,7 @@ func file_proto_ems_ems_grpc_proto_rawDescGZIP() []byte { } var file_proto_ems_ems_grpc_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_proto_ems_ems_grpc_proto_msgTypes = make([]protoimpl.MessageInfo, 30) +var file_proto_ems_ems_grpc_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_proto_ems_ems_grpc_proto_goTypes = []interface{}{ (CommitResult)(0), // 0: IOSXRExtensibleManagabilityService.CommitResult (OC_RPC_RESPONSE_TYPE)(0), // 1: IOSXRExtensibleManagabilityService.OC_RPC_RESPONSE_TYPE @@ -2562,82 +3033,94 @@ var file_proto_ems_ems_grpc_proto_goTypes = []interface{}{ (GetModelsInput_MODLE_REQUEST_TYPE)(0), // 5: IOSXRExtensibleManagabilityService.GetModelsInput.MODLE_REQUEST_TYPE (*ConfigGetArgs)(nil), // 6: IOSXRExtensibleManagabilityService.ConfigGetArgs (*ConfigGetReply)(nil), // 7: IOSXRExtensibleManagabilityService.ConfigGetReply - (*GetOperReply)(nil), // 8: IOSXRExtensibleManagabilityService.GetOperReply - (*ConfigArgs)(nil), // 9: IOSXRExtensibleManagabilityService.ConfigArgs - (*ConfigReply)(nil), // 10: IOSXRExtensibleManagabilityService.ConfigReply - (*CliConfigArgs)(nil), // 11: IOSXRExtensibleManagabilityService.CliConfigArgs - (*CliConfigReply)(nil), // 12: IOSXRExtensibleManagabilityService.CliConfigReply - (*CommitReplaceArgs)(nil), // 13: IOSXRExtensibleManagabilityService.CommitReplaceArgs - (*CommitReplaceReply)(nil), // 14: IOSXRExtensibleManagabilityService.CommitReplaceReply - (*CommitMsg)(nil), // 15: IOSXRExtensibleManagabilityService.CommitMsg - (*CommitArgs)(nil), // 16: IOSXRExtensibleManagabilityService.CommitArgs - (*CommitReply)(nil), // 17: IOSXRExtensibleManagabilityService.CommitReply - (*DiscardChangesArgs)(nil), // 18: IOSXRExtensibleManagabilityService.DiscardChangesArgs - (*DiscardChangesReply)(nil), // 19: IOSXRExtensibleManagabilityService.DiscardChangesReply - (*ShowCmdArgs)(nil), // 20: IOSXRExtensibleManagabilityService.ShowCmdArgs - (*ShowCmdTextReply)(nil), // 21: IOSXRExtensibleManagabilityService.ShowCmdTextReply - (*ShowCmdJSONReply)(nil), // 22: IOSXRExtensibleManagabilityService.ShowCmdJSONReply - (*CreateSubsArgs)(nil), // 23: IOSXRExtensibleManagabilityService.CreateSubsArgs - (*CreateSubsReply)(nil), // 24: IOSXRExtensibleManagabilityService.CreateSubsReply - (*SubscribeRequest)(nil), // 25: IOSXRExtensibleManagabilityService.SubscribeRequest - (*TelemetryStreamDestination)(nil), // 26: IOSXRExtensibleManagabilityService.TelemetryStreamDestination - (*TelemetryPath)(nil), // 27: IOSXRExtensibleManagabilityService.TelemetryPath - (*SubscriptionList)(nil), // 28: IOSXRExtensibleManagabilityService.SubscriptionList - (*StatusResponse)(nil), // 29: IOSXRExtensibleManagabilityService.StatusResponse - (*Notification)(nil), // 30: IOSXRExtensibleManagabilityService.Notification - (*SubscribeResponse)(nil), // 31: IOSXRExtensibleManagabilityService.SubscribeResponse - (*CancelSubscribeReq)(nil), // 32: IOSXRExtensibleManagabilityService.CancelSubscribeReq - (*GetModelsInput)(nil), // 33: IOSXRExtensibleManagabilityService.GetModelsInput - (*GetModelsOutput)(nil), // 34: IOSXRExtensibleManagabilityService.GetModelsOutput - (*GetModelsOutput_ModelInfo)(nil), // 35: IOSXRExtensibleManagabilityService.GetModelsOutput.ModelInfo + (*GetOperArgs)(nil), // 8: IOSXRExtensibleManagabilityService.GetOperArgs + (*GetOperReply)(nil), // 9: IOSXRExtensibleManagabilityService.GetOperReply + (*ConfigArgs)(nil), // 10: IOSXRExtensibleManagabilityService.ConfigArgs + (*ConfigReply)(nil), // 11: IOSXRExtensibleManagabilityService.ConfigReply + (*CliConfigArgs)(nil), // 12: IOSXRExtensibleManagabilityService.CliConfigArgs + (*CliConfigReply)(nil), // 13: IOSXRExtensibleManagabilityService.CliConfigReply + (*CommitReplaceArgs)(nil), // 14: IOSXRExtensibleManagabilityService.CommitReplaceArgs + (*CommitReplaceReply)(nil), // 15: IOSXRExtensibleManagabilityService.CommitReplaceReply + (*CommitMsg)(nil), // 16: IOSXRExtensibleManagabilityService.CommitMsg + (*CommitArgs)(nil), // 17: IOSXRExtensibleManagabilityService.CommitArgs + (*CommitReply)(nil), // 18: IOSXRExtensibleManagabilityService.CommitReply + (*DiscardChangesArgs)(nil), // 19: IOSXRExtensibleManagabilityService.DiscardChangesArgs + (*DiscardChangesReply)(nil), // 20: IOSXRExtensibleManagabilityService.DiscardChangesReply + (*ShowCmdArgs)(nil), // 21: IOSXRExtensibleManagabilityService.ShowCmdArgs + (*ShowCmdTextReply)(nil), // 22: IOSXRExtensibleManagabilityService.ShowCmdTextReply + (*ShowCmdJSONReply)(nil), // 23: IOSXRExtensibleManagabilityService.ShowCmdJSONReply + (*QOSMarking)(nil), // 24: IOSXRExtensibleManagabilityService.QOSMarking + (*CreateSubsArgs)(nil), // 25: IOSXRExtensibleManagabilityService.CreateSubsArgs + (*ActionJSONArgs)(nil), // 26: IOSXRExtensibleManagabilityService.ActionJSONArgs + (*ActionJSONReply)(nil), // 27: IOSXRExtensibleManagabilityService.ActionJSONReply + (*CreateSubsReply)(nil), // 28: IOSXRExtensibleManagabilityService.CreateSubsReply + (*SubscribeRequest)(nil), // 29: IOSXRExtensibleManagabilityService.SubscribeRequest + (*TelemetryStreamDestination)(nil), // 30: IOSXRExtensibleManagabilityService.TelemetryStreamDestination + (*TelemetryPath)(nil), // 31: IOSXRExtensibleManagabilityService.TelemetryPath + (*SubscriptionList)(nil), // 32: IOSXRExtensibleManagabilityService.SubscriptionList + (*StatusResponse)(nil), // 33: IOSXRExtensibleManagabilityService.StatusResponse + (*Notification)(nil), // 34: IOSXRExtensibleManagabilityService.Notification + (*SubscribeResponse)(nil), // 35: IOSXRExtensibleManagabilityService.SubscribeResponse + (*CancelSubscribeReq)(nil), // 36: IOSXRExtensibleManagabilityService.CancelSubscribeReq + (*GetModelsInput)(nil), // 37: IOSXRExtensibleManagabilityService.GetModelsInput + (*GetModelsOutput)(nil), // 38: IOSXRExtensibleManagabilityService.GetModelsOutput + (*GetProtoFileArgs)(nil), // 39: IOSXRExtensibleManagabilityService.GetProtoFileArgs + (*GetProtoFileReply)(nil), // 40: IOSXRExtensibleManagabilityService.GetProtoFileReply + (*GetModelsOutput_ModelInfo)(nil), // 41: IOSXRExtensibleManagabilityService.GetModelsOutput.ModelInfo } var file_proto_ems_ems_grpc_proto_depIdxs = []int32{ - 15, // 0: IOSXRExtensibleManagabilityService.CommitArgs.msg:type_name -> IOSXRExtensibleManagabilityService.CommitMsg - 0, // 1: IOSXRExtensibleManagabilityService.CommitReply.result:type_name -> IOSXRExtensibleManagabilityService.CommitResult - 28, // 2: IOSXRExtensibleManagabilityService.SubscribeRequest.subscribe:type_name -> IOSXRExtensibleManagabilityService.SubscriptionList - 3, // 3: IOSXRExtensibleManagabilityService.TelemetryStreamDestination.telemetry_stream_protocol:type_name -> IOSXRExtensibleManagabilityService.TelemetryStreamDestination.TSP - 26, // 4: IOSXRExtensibleManagabilityService.SubscriptionList.TelemetryStreamDestinations:type_name -> IOSXRExtensibleManagabilityService.TelemetryStreamDestination - 27, // 5: IOSXRExtensibleManagabilityService.SubscriptionList.TelemetryPaths:type_name -> IOSXRExtensibleManagabilityService.TelemetryPath - 4, // 6: IOSXRExtensibleManagabilityService.SubscriptionList.encoding:type_name -> IOSXRExtensibleManagabilityService.SubscriptionList.ENC_SPEC + 24, // 0: IOSXRExtensibleManagabilityService.CreateSubsArgs.qos:type_name -> IOSXRExtensibleManagabilityService.QOSMarking + 32, // 1: IOSXRExtensibleManagabilityService.SubscribeRequest.subscribe:type_name -> IOSXRExtensibleManagabilityService.SubscriptionList + 3, // 2: IOSXRExtensibleManagabilityService.TelemetryStreamDestination.telemetry_stream_protocol:type_name -> IOSXRExtensibleManagabilityService.TelemetryStreamDestination.TSP + 30, // 3: IOSXRExtensibleManagabilityService.SubscriptionList.TelemetryStreamDestinations:type_name -> IOSXRExtensibleManagabilityService.TelemetryStreamDestination + 31, // 4: IOSXRExtensibleManagabilityService.SubscriptionList.TelemetryPaths:type_name -> IOSXRExtensibleManagabilityService.TelemetryPath + 4, // 5: IOSXRExtensibleManagabilityService.SubscriptionList.encoding:type_name -> IOSXRExtensibleManagabilityService.SubscriptionList.ENC_SPEC + 24, // 6: IOSXRExtensibleManagabilityService.SubscriptionList.qos:type_name -> IOSXRExtensibleManagabilityService.QOSMarking 1, // 7: IOSXRExtensibleManagabilityService.StatusResponse.code:type_name -> IOSXRExtensibleManagabilityService.OC_RPC_RESPONSE_TYPE - 30, // 8: IOSXRExtensibleManagabilityService.SubscribeResponse.update:type_name -> IOSXRExtensibleManagabilityService.Notification - 29, // 9: IOSXRExtensibleManagabilityService.SubscribeResponse.status:type_name -> IOSXRExtensibleManagabilityService.StatusResponse + 34, // 8: IOSXRExtensibleManagabilityService.SubscribeResponse.update:type_name -> IOSXRExtensibleManagabilityService.Notification + 33, // 9: IOSXRExtensibleManagabilityService.SubscribeResponse.status:type_name -> IOSXRExtensibleManagabilityService.StatusResponse 5, // 10: IOSXRExtensibleManagabilityService.GetModelsInput.requestType:type_name -> IOSXRExtensibleManagabilityService.GetModelsInput.MODLE_REQUEST_TYPE - 35, // 11: IOSXRExtensibleManagabilityService.GetModelsOutput.models:type_name -> IOSXRExtensibleManagabilityService.GetModelsOutput.ModelInfo + 41, // 11: IOSXRExtensibleManagabilityService.GetModelsOutput.models:type_name -> IOSXRExtensibleManagabilityService.GetModelsOutput.ModelInfo 1, // 12: IOSXRExtensibleManagabilityService.GetModelsOutput.responseCode:type_name -> IOSXRExtensibleManagabilityService.OC_RPC_RESPONSE_TYPE 2, // 13: IOSXRExtensibleManagabilityService.GetModelsOutput.ModelInfo.modelType:type_name -> IOSXRExtensibleManagabilityService.GET_MODEL_TYPE 6, // 14: IOSXRExtensibleManagabilityService.gRPCConfigOper.GetConfig:input_type -> IOSXRExtensibleManagabilityService.ConfigGetArgs - 9, // 15: IOSXRExtensibleManagabilityService.gRPCConfigOper.MergeConfig:input_type -> IOSXRExtensibleManagabilityService.ConfigArgs - 9, // 16: IOSXRExtensibleManagabilityService.gRPCConfigOper.DeleteConfig:input_type -> IOSXRExtensibleManagabilityService.ConfigArgs - 9, // 17: IOSXRExtensibleManagabilityService.gRPCConfigOper.ReplaceConfig:input_type -> IOSXRExtensibleManagabilityService.ConfigArgs - 11, // 18: IOSXRExtensibleManagabilityService.gRPCConfigOper.CliConfig:input_type -> IOSXRExtensibleManagabilityService.CliConfigArgs - 13, // 19: IOSXRExtensibleManagabilityService.gRPCConfigOper.CommitReplace:input_type -> IOSXRExtensibleManagabilityService.CommitReplaceArgs - 16, // 20: IOSXRExtensibleManagabilityService.gRPCConfigOper.CommitConfig:input_type -> IOSXRExtensibleManagabilityService.CommitArgs - 18, // 21: IOSXRExtensibleManagabilityService.gRPCConfigOper.ConfigDiscardChanges:input_type -> IOSXRExtensibleManagabilityService.DiscardChangesArgs - 6, // 22: IOSXRExtensibleManagabilityService.gRPCConfigOper.GetOper:input_type -> IOSXRExtensibleManagabilityService.ConfigGetArgs - 23, // 23: IOSXRExtensibleManagabilityService.gRPCConfigOper.CreateSubs:input_type -> IOSXRExtensibleManagabilityService.CreateSubsArgs - 20, // 24: IOSXRExtensibleManagabilityService.gRPCExec.ShowCmdTextOutput:input_type -> IOSXRExtensibleManagabilityService.ShowCmdArgs - 20, // 25: IOSXRExtensibleManagabilityService.gRPCExec.ShowCmdJSONOutput:input_type -> IOSXRExtensibleManagabilityService.ShowCmdArgs - 25, // 26: IOSXRExtensibleManagabilityService.OpenConfiggRPC.SubscribeTelemetry:input_type -> IOSXRExtensibleManagabilityService.SubscribeRequest - 32, // 27: IOSXRExtensibleManagabilityService.OpenConfiggRPC.UnSubscribeTelemetry:input_type -> IOSXRExtensibleManagabilityService.CancelSubscribeReq - 33, // 28: IOSXRExtensibleManagabilityService.OpenConfiggRPC.GetModels:input_type -> IOSXRExtensibleManagabilityService.GetModelsInput - 7, // 29: IOSXRExtensibleManagabilityService.gRPCConfigOper.GetConfig:output_type -> IOSXRExtensibleManagabilityService.ConfigGetReply - 10, // 30: IOSXRExtensibleManagabilityService.gRPCConfigOper.MergeConfig:output_type -> IOSXRExtensibleManagabilityService.ConfigReply - 10, // 31: IOSXRExtensibleManagabilityService.gRPCConfigOper.DeleteConfig:output_type -> IOSXRExtensibleManagabilityService.ConfigReply - 10, // 32: IOSXRExtensibleManagabilityService.gRPCConfigOper.ReplaceConfig:output_type -> IOSXRExtensibleManagabilityService.ConfigReply - 12, // 33: IOSXRExtensibleManagabilityService.gRPCConfigOper.CliConfig:output_type -> IOSXRExtensibleManagabilityService.CliConfigReply - 14, // 34: IOSXRExtensibleManagabilityService.gRPCConfigOper.CommitReplace:output_type -> IOSXRExtensibleManagabilityService.CommitReplaceReply - 17, // 35: IOSXRExtensibleManagabilityService.gRPCConfigOper.CommitConfig:output_type -> IOSXRExtensibleManagabilityService.CommitReply - 19, // 36: IOSXRExtensibleManagabilityService.gRPCConfigOper.ConfigDiscardChanges:output_type -> IOSXRExtensibleManagabilityService.DiscardChangesReply - 8, // 37: IOSXRExtensibleManagabilityService.gRPCConfigOper.GetOper:output_type -> IOSXRExtensibleManagabilityService.GetOperReply - 24, // 38: IOSXRExtensibleManagabilityService.gRPCConfigOper.CreateSubs:output_type -> IOSXRExtensibleManagabilityService.CreateSubsReply - 21, // 39: IOSXRExtensibleManagabilityService.gRPCExec.ShowCmdTextOutput:output_type -> IOSXRExtensibleManagabilityService.ShowCmdTextReply - 22, // 40: IOSXRExtensibleManagabilityService.gRPCExec.ShowCmdJSONOutput:output_type -> IOSXRExtensibleManagabilityService.ShowCmdJSONReply - 31, // 41: IOSXRExtensibleManagabilityService.OpenConfiggRPC.SubscribeTelemetry:output_type -> IOSXRExtensibleManagabilityService.SubscribeResponse - 31, // 42: IOSXRExtensibleManagabilityService.OpenConfiggRPC.UnSubscribeTelemetry:output_type -> IOSXRExtensibleManagabilityService.SubscribeResponse - 34, // 43: IOSXRExtensibleManagabilityService.OpenConfiggRPC.GetModels:output_type -> IOSXRExtensibleManagabilityService.GetModelsOutput - 29, // [29:44] is the sub-list for method output_type - 14, // [14:29] is the sub-list for method input_type + 10, // 15: IOSXRExtensibleManagabilityService.gRPCConfigOper.MergeConfig:input_type -> IOSXRExtensibleManagabilityService.ConfigArgs + 10, // 16: IOSXRExtensibleManagabilityService.gRPCConfigOper.DeleteConfig:input_type -> IOSXRExtensibleManagabilityService.ConfigArgs + 10, // 17: IOSXRExtensibleManagabilityService.gRPCConfigOper.RemoveConfig:input_type -> IOSXRExtensibleManagabilityService.ConfigArgs + 10, // 18: IOSXRExtensibleManagabilityService.gRPCConfigOper.ReplaceConfig:input_type -> IOSXRExtensibleManagabilityService.ConfigArgs + 12, // 19: IOSXRExtensibleManagabilityService.gRPCConfigOper.CliConfig:input_type -> IOSXRExtensibleManagabilityService.CliConfigArgs + 14, // 20: IOSXRExtensibleManagabilityService.gRPCConfigOper.CommitReplace:input_type -> IOSXRExtensibleManagabilityService.CommitReplaceArgs + 17, // 21: IOSXRExtensibleManagabilityService.gRPCConfigOper.CommitConfig:input_type -> IOSXRExtensibleManagabilityService.CommitArgs + 19, // 22: IOSXRExtensibleManagabilityService.gRPCConfigOper.ConfigDiscardChanges:input_type -> IOSXRExtensibleManagabilityService.DiscardChangesArgs + 8, // 23: IOSXRExtensibleManagabilityService.gRPCConfigOper.GetOper:input_type -> IOSXRExtensibleManagabilityService.GetOperArgs + 25, // 24: IOSXRExtensibleManagabilityService.gRPCConfigOper.CreateSubs:input_type -> IOSXRExtensibleManagabilityService.CreateSubsArgs + 39, // 25: IOSXRExtensibleManagabilityService.gRPCConfigOper.GetProtoFile:input_type -> IOSXRExtensibleManagabilityService.GetProtoFileArgs + 21, // 26: IOSXRExtensibleManagabilityService.gRPCExec.ShowCmdTextOutput:input_type -> IOSXRExtensibleManagabilityService.ShowCmdArgs + 21, // 27: IOSXRExtensibleManagabilityService.gRPCExec.ShowCmdJSONOutput:input_type -> IOSXRExtensibleManagabilityService.ShowCmdArgs + 26, // 28: IOSXRExtensibleManagabilityService.gRPCExec.ActionJSON:input_type -> IOSXRExtensibleManagabilityService.ActionJSONArgs + 29, // 29: IOSXRExtensibleManagabilityService.OpenConfiggRPC.SubscribeTelemetry:input_type -> IOSXRExtensibleManagabilityService.SubscribeRequest + 36, // 30: IOSXRExtensibleManagabilityService.OpenConfiggRPC.UnSubscribeTelemetry:input_type -> IOSXRExtensibleManagabilityService.CancelSubscribeReq + 37, // 31: IOSXRExtensibleManagabilityService.OpenConfiggRPC.GetModels:input_type -> IOSXRExtensibleManagabilityService.GetModelsInput + 7, // 32: IOSXRExtensibleManagabilityService.gRPCConfigOper.GetConfig:output_type -> IOSXRExtensibleManagabilityService.ConfigGetReply + 11, // 33: IOSXRExtensibleManagabilityService.gRPCConfigOper.MergeConfig:output_type -> IOSXRExtensibleManagabilityService.ConfigReply + 11, // 34: IOSXRExtensibleManagabilityService.gRPCConfigOper.DeleteConfig:output_type -> IOSXRExtensibleManagabilityService.ConfigReply + 11, // 35: IOSXRExtensibleManagabilityService.gRPCConfigOper.RemoveConfig:output_type -> IOSXRExtensibleManagabilityService.ConfigReply + 11, // 36: IOSXRExtensibleManagabilityService.gRPCConfigOper.ReplaceConfig:output_type -> IOSXRExtensibleManagabilityService.ConfigReply + 13, // 37: IOSXRExtensibleManagabilityService.gRPCConfigOper.CliConfig:output_type -> IOSXRExtensibleManagabilityService.CliConfigReply + 15, // 38: IOSXRExtensibleManagabilityService.gRPCConfigOper.CommitReplace:output_type -> IOSXRExtensibleManagabilityService.CommitReplaceReply + 18, // 39: IOSXRExtensibleManagabilityService.gRPCConfigOper.CommitConfig:output_type -> IOSXRExtensibleManagabilityService.CommitReply + 20, // 40: IOSXRExtensibleManagabilityService.gRPCConfigOper.ConfigDiscardChanges:output_type -> IOSXRExtensibleManagabilityService.DiscardChangesReply + 9, // 41: IOSXRExtensibleManagabilityService.gRPCConfigOper.GetOper:output_type -> IOSXRExtensibleManagabilityService.GetOperReply + 28, // 42: IOSXRExtensibleManagabilityService.gRPCConfigOper.CreateSubs:output_type -> IOSXRExtensibleManagabilityService.CreateSubsReply + 40, // 43: IOSXRExtensibleManagabilityService.gRPCConfigOper.GetProtoFile:output_type -> IOSXRExtensibleManagabilityService.GetProtoFileReply + 22, // 44: IOSXRExtensibleManagabilityService.gRPCExec.ShowCmdTextOutput:output_type -> IOSXRExtensibleManagabilityService.ShowCmdTextReply + 23, // 45: IOSXRExtensibleManagabilityService.gRPCExec.ShowCmdJSONOutput:output_type -> IOSXRExtensibleManagabilityService.ShowCmdJSONReply + 27, // 46: IOSXRExtensibleManagabilityService.gRPCExec.ActionJSON:output_type -> IOSXRExtensibleManagabilityService.ActionJSONReply + 35, // 47: IOSXRExtensibleManagabilityService.OpenConfiggRPC.SubscribeTelemetry:output_type -> IOSXRExtensibleManagabilityService.SubscribeResponse + 35, // 48: IOSXRExtensibleManagabilityService.OpenConfiggRPC.UnSubscribeTelemetry:output_type -> IOSXRExtensibleManagabilityService.SubscribeResponse + 38, // 49: IOSXRExtensibleManagabilityService.OpenConfiggRPC.GetModels:output_type -> IOSXRExtensibleManagabilityService.GetModelsOutput + 32, // [32:50] is the sub-list for method output_type + 14, // [14:32] is the sub-list for method input_type 14, // [14:14] is the sub-list for extension type_name 14, // [14:14] is the sub-list for extension extendee 0, // [0:14] is the sub-list for field type_name @@ -2674,7 +3157,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetOperReply); i { + switch v := v.(*GetOperArgs); i { case 0: return &v.state case 1: @@ -2686,7 +3169,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConfigArgs); i { + switch v := v.(*GetOperReply); i { case 0: return &v.state case 1: @@ -2698,7 +3181,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConfigReply); i { + switch v := v.(*ConfigArgs); i { case 0: return &v.state case 1: @@ -2710,7 +3193,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CliConfigArgs); i { + switch v := v.(*ConfigReply); i { case 0: return &v.state case 1: @@ -2722,7 +3205,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CliConfigReply); i { + switch v := v.(*CliConfigArgs); i { case 0: return &v.state case 1: @@ -2734,7 +3217,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommitReplaceArgs); i { + switch v := v.(*CliConfigReply); i { case 0: return &v.state case 1: @@ -2746,7 +3229,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommitReplaceReply); i { + switch v := v.(*CommitReplaceArgs); i { case 0: return &v.state case 1: @@ -2758,7 +3241,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommitMsg); i { + switch v := v.(*CommitReplaceReply); i { case 0: return &v.state case 1: @@ -2770,7 +3253,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommitArgs); i { + switch v := v.(*CommitMsg); i { case 0: return &v.state case 1: @@ -2782,7 +3265,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommitReply); i { + switch v := v.(*CommitArgs); i { case 0: return &v.state case 1: @@ -2794,7 +3277,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiscardChangesArgs); i { + switch v := v.(*CommitReply); i { case 0: return &v.state case 1: @@ -2806,7 +3289,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiscardChangesReply); i { + switch v := v.(*DiscardChangesArgs); i { case 0: return &v.state case 1: @@ -2818,7 +3301,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowCmdArgs); i { + switch v := v.(*DiscardChangesReply); i { case 0: return &v.state case 1: @@ -2830,7 +3313,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowCmdTextReply); i { + switch v := v.(*ShowCmdArgs); i { case 0: return &v.state case 1: @@ -2842,7 +3325,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowCmdJSONReply); i { + switch v := v.(*ShowCmdTextReply); i { case 0: return &v.state case 1: @@ -2854,7 +3337,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateSubsArgs); i { + switch v := v.(*ShowCmdJSONReply); i { case 0: return &v.state case 1: @@ -2866,7 +3349,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateSubsReply); i { + switch v := v.(*QOSMarking); i { case 0: return &v.state case 1: @@ -2878,7 +3361,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeRequest); i { + switch v := v.(*CreateSubsArgs); i { case 0: return &v.state case 1: @@ -2890,7 +3373,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TelemetryStreamDestination); i { + switch v := v.(*ActionJSONArgs); i { case 0: return &v.state case 1: @@ -2902,7 +3385,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TelemetryPath); i { + switch v := v.(*ActionJSONReply); i { case 0: return &v.state case 1: @@ -2914,7 +3397,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscriptionList); i { + switch v := v.(*CreateSubsReply); i { case 0: return &v.state case 1: @@ -2926,7 +3409,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusResponse); i { + switch v := v.(*SubscribeRequest); i { case 0: return &v.state case 1: @@ -2938,7 +3421,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Notification); i { + switch v := v.(*TelemetryStreamDestination); i { case 0: return &v.state case 1: @@ -2950,7 +3433,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeResponse); i { + switch v := v.(*TelemetryPath); i { case 0: return &v.state case 1: @@ -2962,7 +3445,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CancelSubscribeReq); i { + switch v := v.(*SubscriptionList); i { case 0: return &v.state case 1: @@ -2974,7 +3457,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetModelsInput); i { + switch v := v.(*StatusResponse); i { case 0: return &v.state case 1: @@ -2986,7 +3469,7 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetModelsOutput); i { + switch v := v.(*Notification); i { case 0: return &v.state case 1: @@ -2998,6 +3481,78 @@ func file_proto_ems_ems_grpc_proto_init() { } } file_proto_ems_ems_grpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_ems_ems_grpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CancelSubscribeReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_ems_ems_grpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetModelsInput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_ems_ems_grpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetModelsOutput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_ems_ems_grpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetProtoFileArgs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_ems_ems_grpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetProtoFileReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_ems_ems_grpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetModelsOutput_ModelInfo); i { case 0: return &v.state @@ -3010,10 +3565,10 @@ func file_proto_ems_ems_grpc_proto_init() { } } } - file_proto_ems_ems_grpc_proto_msgTypes[19].OneofWrappers = []interface{}{ + file_proto_ems_ems_grpc_proto_msgTypes[23].OneofWrappers = []interface{}{ (*SubscribeRequest_Subscribe)(nil), } - file_proto_ems_ems_grpc_proto_msgTypes[25].OneofWrappers = []interface{}{ + file_proto_ems_ems_grpc_proto_msgTypes[29].OneofWrappers = []interface{}{ (*SubscribeResponse_Update)(nil), (*SubscribeResponse_Status)(nil), } @@ -3023,7 +3578,7 @@ func file_proto_ems_ems_grpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_proto_ems_ems_grpc_proto_rawDesc, NumEnums: 6, - NumMessages: 30, + NumMessages: 36, NumExtensions: 0, NumServices: 3, }, diff --git a/proto/ems/ems_grpc.proto b/proto/ems/ems_grpc.proto index e56d751..ee63c25 100644 --- a/proto/ems/ems_grpc.proto +++ b/proto/ems/ems_grpc.proto @@ -3,39 +3,57 @@ syntax = "proto3"; package IOSXRExtensibleManagabilityService; service gRPCConfigOper { - + + // Configuration related commands + rpc GetConfig(ConfigGetArgs) returns(stream ConfigGetReply) {}; - + rpc MergeConfig(ConfigArgs) returns(ConfigReply) {}; - + rpc DeleteConfig(ConfigArgs) returns(ConfigReply) {}; - + + rpc RemoveConfig(ConfigArgs) returns(ConfigReply) {}; + rpc ReplaceConfig(ConfigArgs) returns(ConfigReply) {}; rpc CliConfig(CliConfigArgs) returns(CliConfigReply) {}; rpc CommitReplace(CommitReplaceArgs) returns (CommitReplaceReply) {}; + // Do we need implicit or explicit commit + // rpc CommitConfig(CommitArgs) returns(CommitReply) {}; rpc ConfigDiscardChanges(DiscardChangesArgs) returns(DiscardChangesReply) {}; - rpc GetOper(ConfigGetArgs) returns(stream GetOperReply) {}; + // Get only returns oper data + // + rpc GetOper(GetOperArgs) returns(stream GetOperReply) {}; // Do we need "Get" also to give combined oper and config? // Get Telemetry Data rpc CreateSubs(CreateSubsArgs) returns(stream CreateSubsReply) {}; + + // Get Proto File + rpc GetProtoFile(GetProtoFileArgs) returns(stream GetProtoFileReply) {}; } +// +// Should we seperate Exec from Config/Oper? +// + service gRPCExec { // Exec commands rpc ShowCmdTextOutput(ShowCmdArgs) returns(stream ShowCmdTextReply) {}; rpc ShowCmdJSONOutput(ShowCmdArgs) returns(stream ShowCmdJSONReply) {}; + rpc ActionJSON(ActionJSONArgs) returns(stream ActionJSONReply) {}; } service OpenConfiggRPC { rpc SubscribeTelemetry(SubscribeRequest) returns (stream SubscribeResponse) {}; rpc UnSubscribeTelemetry(CancelSubscribeReq) returns (SubscribeResponse) {}; + // get-models rpc implementation per + // github.com/openconfig/public/blob/master/release/models/rpc/openconfig-rpc.yang rpc GetModels(GetModelsInput) returns (GetModelsOutput) {}; } @@ -50,6 +68,11 @@ message ConfigGetReply { string errors = 3; } +message GetOperArgs { + int64 ReqId = 1; + string yangpathjson = 2; +} + message GetOperReply { int64 ResReqId = 1; string yangjson = 2; @@ -59,22 +82,27 @@ message GetOperReply { message ConfigArgs { int64 ReqId = 1; string yangjson = 2; - + bool Confirmed = 3; + uint32 ConfirmTimeout = 4; } message ConfigReply { int64 ResReqId = 1; string errors = 2; + uint32 CommitID = 3; } message CliConfigArgs { int64 ReqId = 1; string cli = 2; + bool Confirmed = 3; + uint32 ConfirmTimeout = 4; } message CliConfigReply { int64 ResReqId = 1; string errors = 2; + uint32 CommitID = 3; } @@ -101,14 +129,13 @@ enum CommitResult { } message CommitArgs { - CommitMsg msg = 1; - int64 ReqId = 2; + int64 ReqId = 1; + uint32 CommitID = 2; } message CommitReply { - CommitResult result = 1; - int64 ResReqId = 2; - string errors = 3; + int64 ResReqId = 1; + string errors = 2; } @@ -138,10 +165,28 @@ message ShowCmdJSONReply { string errors = 3; } +// QOSMarking specifies the DSCP value to be set on transmitted telemetry +message QOSMarking { + uint32 marking = 1; +} + message CreateSubsArgs { int64 ReqId = 1; int64 encode = 2; string subidstr = 3; + QOSMarking qos = 4; // DSCP marking to be used. + repeated string Subscriptions = 5; +} + +message ActionJSONArgs { + int64 ReqId = 1; + string yangpathjson = 2; +} + +message ActionJSONReply { + int64 ResReqId = 1; + string yangjson = 2; + string errors = 3; } message CreateSubsReply { @@ -180,6 +225,7 @@ message SubscriptionList { ENC_GPB = 1; } ENC_SPEC encoding = 4; + QOSMarking qos = 5; // DSCP marking to be used. } enum OC_RPC_RESPONSE_TYPE { OK = 0; @@ -231,7 +277,7 @@ message GetModelsInput { SUMMARY = 0; DETAIL = 1; } - MODLE_REQUEST_TYPE requestType = 5; + MODLE_REQUEST_TYPE requestType = 5; } message GetModelsOutput { @@ -246,4 +292,15 @@ message GetModelsOutput { repeated ModelInfo models = 2; OC_RPC_RESPONSE_TYPE responseCode = 3; string msg = 4; -} \ No newline at end of file +} + +message GetProtoFileArgs { + int64 reqId = 1; + string yangPath = 2; +} + +message GetProtoFileReply { + int64 reqId = 1; + string protoContent = 2; + string errors = 3; +} diff --git a/proto/ems/ems_grpc_grpc.pb.go b/proto/ems/ems_grpc_grpc.pb.go index 23028fc..7db0ed8 100644 --- a/proto/ems/ems_grpc_grpc.pb.go +++ b/proto/ems/ems_grpc_grpc.pb.go @@ -25,14 +25,21 @@ type GRPCConfigOperClient interface { GetConfig(ctx context.Context, in *ConfigGetArgs, opts ...grpc.CallOption) (GRPCConfigOper_GetConfigClient, error) MergeConfig(ctx context.Context, in *ConfigArgs, opts ...grpc.CallOption) (*ConfigReply, error) DeleteConfig(ctx context.Context, in *ConfigArgs, opts ...grpc.CallOption) (*ConfigReply, error) + RemoveConfig(ctx context.Context, in *ConfigArgs, opts ...grpc.CallOption) (*ConfigReply, error) ReplaceConfig(ctx context.Context, in *ConfigArgs, opts ...grpc.CallOption) (*ConfigReply, error) CliConfig(ctx context.Context, in *CliConfigArgs, opts ...grpc.CallOption) (*CliConfigReply, error) CommitReplace(ctx context.Context, in *CommitReplaceArgs, opts ...grpc.CallOption) (*CommitReplaceReply, error) + // Do we need implicit or explicit commit + // CommitConfig(ctx context.Context, in *CommitArgs, opts ...grpc.CallOption) (*CommitReply, error) ConfigDiscardChanges(ctx context.Context, in *DiscardChangesArgs, opts ...grpc.CallOption) (*DiscardChangesReply, error) - GetOper(ctx context.Context, in *ConfigGetArgs, opts ...grpc.CallOption) (GRPCConfigOper_GetOperClient, error) + // Get only returns oper data + // + GetOper(ctx context.Context, in *GetOperArgs, opts ...grpc.CallOption) (GRPCConfigOper_GetOperClient, error) // Get Telemetry Data CreateSubs(ctx context.Context, in *CreateSubsArgs, opts ...grpc.CallOption) (GRPCConfigOper_CreateSubsClient, error) + // Get Proto File + GetProtoFile(ctx context.Context, in *GetProtoFileArgs, opts ...grpc.CallOption) (GRPCConfigOper_GetProtoFileClient, error) } type gRPCConfigOperClient struct { @@ -93,6 +100,15 @@ func (c *gRPCConfigOperClient) DeleteConfig(ctx context.Context, in *ConfigArgs, return out, nil } +func (c *gRPCConfigOperClient) RemoveConfig(ctx context.Context, in *ConfigArgs, opts ...grpc.CallOption) (*ConfigReply, error) { + out := new(ConfigReply) + err := c.cc.Invoke(ctx, "/IOSXRExtensibleManagabilityService.gRPCConfigOper/RemoveConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *gRPCConfigOperClient) ReplaceConfig(ctx context.Context, in *ConfigArgs, opts ...grpc.CallOption) (*ConfigReply, error) { out := new(ConfigReply) err := c.cc.Invoke(ctx, "/IOSXRExtensibleManagabilityService.gRPCConfigOper/ReplaceConfig", in, out, opts...) @@ -138,7 +154,7 @@ func (c *gRPCConfigOperClient) ConfigDiscardChanges(ctx context.Context, in *Dis return out, nil } -func (c *gRPCConfigOperClient) GetOper(ctx context.Context, in *ConfigGetArgs, opts ...grpc.CallOption) (GRPCConfigOper_GetOperClient, error) { +func (c *gRPCConfigOperClient) GetOper(ctx context.Context, in *GetOperArgs, opts ...grpc.CallOption) (GRPCConfigOper_GetOperClient, error) { stream, err := c.cc.NewStream(ctx, &GRPCConfigOper_ServiceDesc.Streams[1], "/IOSXRExtensibleManagabilityService.gRPCConfigOper/GetOper", opts...) if err != nil { return nil, err @@ -202,6 +218,38 @@ func (x *gRPCConfigOperCreateSubsClient) Recv() (*CreateSubsReply, error) { return m, nil } +func (c *gRPCConfigOperClient) GetProtoFile(ctx context.Context, in *GetProtoFileArgs, opts ...grpc.CallOption) (GRPCConfigOper_GetProtoFileClient, error) { + stream, err := c.cc.NewStream(ctx, &GRPCConfigOper_ServiceDesc.Streams[3], "/IOSXRExtensibleManagabilityService.gRPCConfigOper/GetProtoFile", opts...) + if err != nil { + return nil, err + } + x := &gRPCConfigOperGetProtoFileClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type GRPCConfigOper_GetProtoFileClient interface { + Recv() (*GetProtoFileReply, error) + grpc.ClientStream +} + +type gRPCConfigOperGetProtoFileClient struct { + grpc.ClientStream +} + +func (x *gRPCConfigOperGetProtoFileClient) Recv() (*GetProtoFileReply, error) { + m := new(GetProtoFileReply) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + // GRPCConfigOperServer is the server API for GRPCConfigOper service. // All implementations must embed UnimplementedGRPCConfigOperServer // for forward compatibility @@ -209,14 +257,21 @@ type GRPCConfigOperServer interface { GetConfig(*ConfigGetArgs, GRPCConfigOper_GetConfigServer) error MergeConfig(context.Context, *ConfigArgs) (*ConfigReply, error) DeleteConfig(context.Context, *ConfigArgs) (*ConfigReply, error) + RemoveConfig(context.Context, *ConfigArgs) (*ConfigReply, error) ReplaceConfig(context.Context, *ConfigArgs) (*ConfigReply, error) CliConfig(context.Context, *CliConfigArgs) (*CliConfigReply, error) CommitReplace(context.Context, *CommitReplaceArgs) (*CommitReplaceReply, error) + // Do we need implicit or explicit commit + // CommitConfig(context.Context, *CommitArgs) (*CommitReply, error) ConfigDiscardChanges(context.Context, *DiscardChangesArgs) (*DiscardChangesReply, error) - GetOper(*ConfigGetArgs, GRPCConfigOper_GetOperServer) error + // Get only returns oper data + // + GetOper(*GetOperArgs, GRPCConfigOper_GetOperServer) error // Get Telemetry Data CreateSubs(*CreateSubsArgs, GRPCConfigOper_CreateSubsServer) error + // Get Proto File + GetProtoFile(*GetProtoFileArgs, GRPCConfigOper_GetProtoFileServer) error mustEmbedUnimplementedGRPCConfigOperServer() } @@ -233,6 +288,9 @@ func (UnimplementedGRPCConfigOperServer) MergeConfig(context.Context, *ConfigArg func (UnimplementedGRPCConfigOperServer) DeleteConfig(context.Context, *ConfigArgs) (*ConfigReply, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteConfig not implemented") } +func (UnimplementedGRPCConfigOperServer) RemoveConfig(context.Context, *ConfigArgs) (*ConfigReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveConfig not implemented") +} func (UnimplementedGRPCConfigOperServer) ReplaceConfig(context.Context, *ConfigArgs) (*ConfigReply, error) { return nil, status.Errorf(codes.Unimplemented, "method ReplaceConfig not implemented") } @@ -248,12 +306,15 @@ func (UnimplementedGRPCConfigOperServer) CommitConfig(context.Context, *CommitAr func (UnimplementedGRPCConfigOperServer) ConfigDiscardChanges(context.Context, *DiscardChangesArgs) (*DiscardChangesReply, error) { return nil, status.Errorf(codes.Unimplemented, "method ConfigDiscardChanges not implemented") } -func (UnimplementedGRPCConfigOperServer) GetOper(*ConfigGetArgs, GRPCConfigOper_GetOperServer) error { +func (UnimplementedGRPCConfigOperServer) GetOper(*GetOperArgs, GRPCConfigOper_GetOperServer) error { return status.Errorf(codes.Unimplemented, "method GetOper not implemented") } func (UnimplementedGRPCConfigOperServer) CreateSubs(*CreateSubsArgs, GRPCConfigOper_CreateSubsServer) error { return status.Errorf(codes.Unimplemented, "method CreateSubs not implemented") } +func (UnimplementedGRPCConfigOperServer) GetProtoFile(*GetProtoFileArgs, GRPCConfigOper_GetProtoFileServer) error { + return status.Errorf(codes.Unimplemented, "method GetProtoFile not implemented") +} func (UnimplementedGRPCConfigOperServer) mustEmbedUnimplementedGRPCConfigOperServer() {} // UnsafeGRPCConfigOperServer may be embedded to opt out of forward compatibility for this service. @@ -324,6 +385,24 @@ func _GRPCConfigOper_DeleteConfig_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _GRPCConfigOper_RemoveConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ConfigArgs) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GRPCConfigOperServer).RemoveConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/IOSXRExtensibleManagabilityService.gRPCConfigOper/RemoveConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GRPCConfigOperServer).RemoveConfig(ctx, req.(*ConfigArgs)) + } + return interceptor(ctx, in, info, handler) +} + func _GRPCConfigOper_ReplaceConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ConfigArgs) if err := dec(in); err != nil { @@ -415,7 +494,7 @@ func _GRPCConfigOper_ConfigDiscardChanges_Handler(srv interface{}, ctx context.C } func _GRPCConfigOper_GetOper_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(ConfigGetArgs) + m := new(GetOperArgs) if err := stream.RecvMsg(m); err != nil { return err } @@ -456,6 +535,27 @@ func (x *gRPCConfigOperCreateSubsServer) Send(m *CreateSubsReply) error { return x.ServerStream.SendMsg(m) } +func _GRPCConfigOper_GetProtoFile_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(GetProtoFileArgs) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(GRPCConfigOperServer).GetProtoFile(m, &gRPCConfigOperGetProtoFileServer{stream}) +} + +type GRPCConfigOper_GetProtoFileServer interface { + Send(*GetProtoFileReply) error + grpc.ServerStream +} + +type gRPCConfigOperGetProtoFileServer struct { + grpc.ServerStream +} + +func (x *gRPCConfigOperGetProtoFileServer) Send(m *GetProtoFileReply) error { + return x.ServerStream.SendMsg(m) +} + // GRPCConfigOper_ServiceDesc is the grpc.ServiceDesc for GRPCConfigOper service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -471,6 +571,10 @@ var GRPCConfigOper_ServiceDesc = grpc.ServiceDesc{ MethodName: "DeleteConfig", Handler: _GRPCConfigOper_DeleteConfig_Handler, }, + { + MethodName: "RemoveConfig", + Handler: _GRPCConfigOper_RemoveConfig_Handler, + }, { MethodName: "ReplaceConfig", Handler: _GRPCConfigOper_ReplaceConfig_Handler, @@ -508,6 +612,11 @@ var GRPCConfigOper_ServiceDesc = grpc.ServiceDesc{ Handler: _GRPCConfigOper_CreateSubs_Handler, ServerStreams: true, }, + { + StreamName: "GetProtoFile", + Handler: _GRPCConfigOper_GetProtoFile_Handler, + ServerStreams: true, + }, }, Metadata: "proto/ems/ems_grpc.proto", } @@ -519,6 +628,7 @@ type GRPCExecClient interface { // Exec commands ShowCmdTextOutput(ctx context.Context, in *ShowCmdArgs, opts ...grpc.CallOption) (GRPCExec_ShowCmdTextOutputClient, error) ShowCmdJSONOutput(ctx context.Context, in *ShowCmdArgs, opts ...grpc.CallOption) (GRPCExec_ShowCmdJSONOutputClient, error) + ActionJSON(ctx context.Context, in *ActionJSONArgs, opts ...grpc.CallOption) (GRPCExec_ActionJSONClient, error) } type gRPCExecClient struct { @@ -593,6 +703,38 @@ func (x *gRPCExecShowCmdJSONOutputClient) Recv() (*ShowCmdJSONReply, error) { return m, nil } +func (c *gRPCExecClient) ActionJSON(ctx context.Context, in *ActionJSONArgs, opts ...grpc.CallOption) (GRPCExec_ActionJSONClient, error) { + stream, err := c.cc.NewStream(ctx, &GRPCExec_ServiceDesc.Streams[2], "/IOSXRExtensibleManagabilityService.gRPCExec/ActionJSON", opts...) + if err != nil { + return nil, err + } + x := &gRPCExecActionJSONClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type GRPCExec_ActionJSONClient interface { + Recv() (*ActionJSONReply, error) + grpc.ClientStream +} + +type gRPCExecActionJSONClient struct { + grpc.ClientStream +} + +func (x *gRPCExecActionJSONClient) Recv() (*ActionJSONReply, error) { + m := new(ActionJSONReply) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + // GRPCExecServer is the server API for GRPCExec service. // All implementations must embed UnimplementedGRPCExecServer // for forward compatibility @@ -600,6 +742,7 @@ type GRPCExecServer interface { // Exec commands ShowCmdTextOutput(*ShowCmdArgs, GRPCExec_ShowCmdTextOutputServer) error ShowCmdJSONOutput(*ShowCmdArgs, GRPCExec_ShowCmdJSONOutputServer) error + ActionJSON(*ActionJSONArgs, GRPCExec_ActionJSONServer) error mustEmbedUnimplementedGRPCExecServer() } @@ -613,6 +756,9 @@ func (UnimplementedGRPCExecServer) ShowCmdTextOutput(*ShowCmdArgs, GRPCExec_Show func (UnimplementedGRPCExecServer) ShowCmdJSONOutput(*ShowCmdArgs, GRPCExec_ShowCmdJSONOutputServer) error { return status.Errorf(codes.Unimplemented, "method ShowCmdJSONOutput not implemented") } +func (UnimplementedGRPCExecServer) ActionJSON(*ActionJSONArgs, GRPCExec_ActionJSONServer) error { + return status.Errorf(codes.Unimplemented, "method ActionJSON not implemented") +} func (UnimplementedGRPCExecServer) mustEmbedUnimplementedGRPCExecServer() {} // UnsafeGRPCExecServer may be embedded to opt out of forward compatibility for this service. @@ -668,6 +814,27 @@ func (x *gRPCExecShowCmdJSONOutputServer) Send(m *ShowCmdJSONReply) error { return x.ServerStream.SendMsg(m) } +func _GRPCExec_ActionJSON_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ActionJSONArgs) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(GRPCExecServer).ActionJSON(m, &gRPCExecActionJSONServer{stream}) +} + +type GRPCExec_ActionJSONServer interface { + Send(*ActionJSONReply) error + grpc.ServerStream +} + +type gRPCExecActionJSONServer struct { + grpc.ServerStream +} + +func (x *gRPCExecActionJSONServer) Send(m *ActionJSONReply) error { + return x.ServerStream.SendMsg(m) +} + // GRPCExec_ServiceDesc is the grpc.ServiceDesc for GRPCExec service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -686,6 +853,11 @@ var GRPCExec_ServiceDesc = grpc.ServiceDesc{ Handler: _GRPCExec_ShowCmdJSONOutput_Handler, ServerStreams: true, }, + { + StreamName: "ActionJSON", + Handler: _GRPCExec_ActionJSON_Handler, + ServerStreams: true, + }, }, Metadata: "proto/ems/ems_grpc.proto", } @@ -696,6 +868,8 @@ var GRPCExec_ServiceDesc = grpc.ServiceDesc{ type OpenConfiggRPCClient interface { SubscribeTelemetry(ctx context.Context, in *SubscribeRequest, opts ...grpc.CallOption) (OpenConfiggRPC_SubscribeTelemetryClient, error) UnSubscribeTelemetry(ctx context.Context, in *CancelSubscribeReq, opts ...grpc.CallOption) (*SubscribeResponse, error) + // get-models rpc implementation per + // github.com/openconfig/public/blob/master/release/models/rpc/openconfig-rpc.yang GetModels(ctx context.Context, in *GetModelsInput, opts ...grpc.CallOption) (*GetModelsOutput, error) } @@ -763,6 +937,8 @@ func (c *openConfiggRPCClient) GetModels(ctx context.Context, in *GetModelsInput type OpenConfiggRPCServer interface { SubscribeTelemetry(*SubscribeRequest, OpenConfiggRPC_SubscribeTelemetryServer) error UnSubscribeTelemetry(context.Context, *CancelSubscribeReq) (*SubscribeResponse, error) + // get-models rpc implementation per + // github.com/openconfig/public/blob/master/release/models/rpc/openconfig-rpc.yang GetModels(context.Context, *GetModelsInput) (*GetModelsOutput, error) mustEmbedUnimplementedOpenConfiggRPCServer() }