From 6d5ccc11233114606a5b9dd5dcd2ff74a5409098 Mon Sep 17 00:00:00 2001 From: badhri85 Date: Wed, 4 Aug 2021 16:01:44 -0500 Subject: [PATCH] stream api change --- proto/client/gClient.go | 58 +++- proto/config.proto | 4 +- proto/sdcoreConfig/config.pb.go | 380 ++++++++++++++------------- proto/sdcoreConfig/config_grpc.pb.go | 68 ++++- 4 files changed, 319 insertions(+), 191 deletions(-) diff --git a/proto/client/gClient.go b/proto/client/gClient.go index f0374a1..b9c01d6 100644 --- a/proto/client/gClient.go +++ b/proto/client/gClient.go @@ -51,7 +51,7 @@ func ConfigWatcher() chan *protos.NetworkSliceResponse { return nil } commChan := make(chan *protos.NetworkSliceResponse) - go readConfigInLoop(confClient, commChan) + go subscribeToConfigPod(confClient, commChan) return commChan } @@ -102,6 +102,62 @@ func GetConnection(host string) (conn *grpc.ClientConn, err error) { return conn, err } +func subscribeToConfigPod(confClient *ConfigClient, commChan chan *protos.NetworkSliceResponse) { + logger.GrpcLog.Infoln("subscribeToConfigPod ") + myid := os.Getenv("HOSTNAME") + var stream protos.ConfigService_NetworkSliceSubscribeClient + for { + if stream == nil { + status := confClient.Conn.GetState() + var err error + if status == connectivity.Ready { + logger.GrpcLog.Infoln("connectivity ready ") + rreq := &protos.NetworkSliceRequest{RestartCounter: selfRestartCounter, ClientId: myid} + if stream, err = confClient.Client.NetworkSliceSubscribe(context.Background(), rreq); err != nil { + logger.GrpcLog.Errorf("Failed to subscribe: %v", err) + time.Sleep(time.Second * 5) + // Retry on failure + continue + } + } else { + //logger.GrpcLog.Errorf("Connectivity status not ready") + continue + } + } + rsp, err := stream.Recv() + if err != nil { + logger.GrpcLog.Errorf("Failed to receive message: %v", err) + // Clearing the stream will force the client to resubscribe on next iteration + stream = nil + time.Sleep(time.Second * 5) + // Retry on failure + continue + } + + logger.GrpcLog.Infoln("stream msg recieved ") + logger.GrpcLog.Debugf("#Network Slices %v, RC of configpod %v ", len(rsp.NetworkSlice), rsp.RestartCounter) + if configPodRestartCounter == 0 || (configPodRestartCounter == rsp.RestartCounter) { + // first time connection or config update + configPodRestartCounter = rsp.RestartCounter + if len(rsp.NetworkSlice) > 0 { + // always carries full config copy + logger.GrpcLog.Infoln("First time config Received ", rsp) + commChan <- rsp + } else if rsp.ConfigUpdated == 1 { + // config delete , all slices deleted + logger.GrpcLog.Infoln("Complete config deleted ") + commChan <- rsp + } + } else if len(rsp.NetworkSlice) > 0 { + logger.GrpcLog.Errorf("Config received after config Pod restart") + //config received after config pod restart + configPodRestartCounter = rsp.RestartCounter + commChan <- rsp + } else { + logger.GrpcLog.Errorf("Config Pod is restarted and no config received") + } + } +} func readConfigInLoop(confClient *ConfigClient, commChan chan *protos.NetworkSliceResponse) { myid := os.Getenv("HOSTNAME") configReadTimeout := time.NewTicker(5000 * time.Millisecond) diff --git a/proto/config.proto b/proto/config.proto index 832ff51..c3b9137 100644 --- a/proto/config.proto +++ b/proto/config.proto @@ -8,8 +8,8 @@ package sdcoreConfig; option go_package = "./sdcoreConfig"; service ConfigService { - rpc GetNetworkSlice(NetworkSliceRequest) returns (NetworkSliceResponse) { - } + rpc GetNetworkSlice(NetworkSliceRequest) returns (NetworkSliceResponse) {} + rpc NetworkSliceSubscribe(NetworkSliceRequest) returns (stream NetworkSliceResponse) {} } enum Status { diff --git a/proto/sdcoreConfig/config.pb.go b/proto/sdcoreConfig/config.pb.go index ee1d15f..d57fc1e 100644 --- a/proto/sdcoreConfig/config.pb.go +++ b/proto/sdcoreConfig/config.pb.go @@ -6,8 +6,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.1 -// protoc v3.17.3 -// source: proto/config.proto +// protoc v3.14.0 +// source: config.proto package sdcoreConfig @@ -55,11 +55,11 @@ func (x Status) String() string { } func (Status) Descriptor() protoreflect.EnumDescriptor { - return file_proto_config_proto_enumTypes[0].Descriptor() + return file_config_proto_enumTypes[0].Descriptor() } func (Status) Type() protoreflect.EnumType { - return &file_proto_config_proto_enumTypes[0] + return &file_config_proto_enumTypes[0] } func (x Status) Number() protoreflect.EnumNumber { @@ -68,7 +68,7 @@ func (x Status) Number() protoreflect.EnumNumber { // Deprecated: Use Status.Descriptor instead. func (Status) EnumDescriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{0} + return file_config_proto_rawDescGZIP(), []int{0} } type PlmnId struct { @@ -83,7 +83,7 @@ type PlmnId struct { func (x *PlmnId) Reset() { *x = PlmnId{} if protoimpl.UnsafeEnabled { - mi := &file_proto_config_proto_msgTypes[0] + mi := &file_config_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -96,7 +96,7 @@ func (x *PlmnId) String() string { func (*PlmnId) ProtoMessage() {} func (x *PlmnId) ProtoReflect() protoreflect.Message { - mi := &file_proto_config_proto_msgTypes[0] + mi := &file_config_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109,7 +109,7 @@ func (x *PlmnId) ProtoReflect() protoreflect.Message { // Deprecated: Use PlmnId.ProtoReflect.Descriptor instead. func (*PlmnId) Descriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{0} + return file_config_proto_rawDescGZIP(), []int{0} } func (x *PlmnId) GetMcc() string { @@ -138,7 +138,7 @@ type NSSAI struct { func (x *NSSAI) Reset() { *x = NSSAI{} if protoimpl.UnsafeEnabled { - mi := &file_proto_config_proto_msgTypes[1] + mi := &file_config_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -151,7 +151,7 @@ func (x *NSSAI) String() string { func (*NSSAI) ProtoMessage() {} func (x *NSSAI) ProtoReflect() protoreflect.Message { - mi := &file_proto_config_proto_msgTypes[1] + mi := &file_config_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -164,7 +164,7 @@ func (x *NSSAI) ProtoReflect() protoreflect.Message { // Deprecated: Use NSSAI.ProtoReflect.Descriptor instead. func (*NSSAI) Descriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{1} + return file_config_proto_rawDescGZIP(), []int{1} } func (x *NSSAI) GetSst() string { @@ -194,7 +194,7 @@ type QoS struct { func (x *QoS) Reset() { *x = QoS{} if protoimpl.UnsafeEnabled { - mi := &file_proto_config_proto_msgTypes[2] + mi := &file_config_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -207,7 +207,7 @@ func (x *QoS) String() string { func (*QoS) ProtoMessage() {} func (x *QoS) ProtoReflect() protoreflect.Message { - mi := &file_proto_config_proto_msgTypes[2] + mi := &file_config_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -220,7 +220,7 @@ func (x *QoS) ProtoReflect() protoreflect.Message { // Deprecated: Use QoS.ProtoReflect.Descriptor instead. func (*QoS) Descriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{2} + return file_config_proto_rawDescGZIP(), []int{2} } func (x *QoS) GetUplink() int32 { @@ -256,7 +256,7 @@ type GNodeB struct { func (x *GNodeB) Reset() { *x = GNodeB{} if protoimpl.UnsafeEnabled { - mi := &file_proto_config_proto_msgTypes[3] + mi := &file_config_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -269,7 +269,7 @@ func (x *GNodeB) String() string { func (*GNodeB) ProtoMessage() {} func (x *GNodeB) ProtoReflect() protoreflect.Message { - mi := &file_proto_config_proto_msgTypes[3] + mi := &file_config_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -282,7 +282,7 @@ func (x *GNodeB) ProtoReflect() protoreflect.Message { // Deprecated: Use GNodeB.ProtoReflect.Descriptor instead. func (*GNodeB) Descriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{3} + return file_config_proto_rawDescGZIP(), []int{3} } func (x *GNodeB) GetName() string { @@ -311,7 +311,7 @@ type UpfInfo struct { func (x *UpfInfo) Reset() { *x = UpfInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_config_proto_msgTypes[4] + mi := &file_config_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -324,7 +324,7 @@ func (x *UpfInfo) String() string { func (*UpfInfo) ProtoMessage() {} func (x *UpfInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_config_proto_msgTypes[4] + mi := &file_config_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -337,7 +337,7 @@ func (x *UpfInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use UpfInfo.ProtoReflect.Descriptor instead. func (*UpfInfo) Descriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{4} + return file_config_proto_rawDescGZIP(), []int{4} } func (x *UpfInfo) GetUpfName() string { @@ -368,7 +368,7 @@ type SiteInfo struct { func (x *SiteInfo) Reset() { *x = SiteInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_config_proto_msgTypes[5] + mi := &file_config_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -381,7 +381,7 @@ func (x *SiteInfo) String() string { func (*SiteInfo) ProtoMessage() {} func (x *SiteInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_config_proto_msgTypes[5] + mi := &file_config_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -394,7 +394,7 @@ func (x *SiteInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SiteInfo.ProtoReflect.Descriptor instead. func (*SiteInfo) Descriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{5} + return file_config_proto_rawDescGZIP(), []int{5} } func (x *SiteInfo) GetSiteName() string { @@ -440,7 +440,7 @@ type AppInfo struct { func (x *AppInfo) Reset() { *x = AppInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_config_proto_msgTypes[6] + mi := &file_config_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -453,7 +453,7 @@ func (x *AppInfo) String() string { func (*AppInfo) ProtoMessage() {} func (x *AppInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_config_proto_msgTypes[6] + mi := &file_config_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -466,7 +466,7 @@ func (x *AppInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use AppInfo.ProtoReflect.Descriptor instead. func (*AppInfo) Descriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{6} + return file_config_proto_rawDescGZIP(), []int{6} } func (x *AppInfo) GetAppName() string { @@ -522,7 +522,7 @@ type NetworkSlice struct { func (x *NetworkSlice) Reset() { *x = NetworkSlice{} if protoimpl.UnsafeEnabled { - mi := &file_proto_config_proto_msgTypes[7] + mi := &file_config_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -535,7 +535,7 @@ func (x *NetworkSlice) String() string { func (*NetworkSlice) ProtoMessage() {} func (x *NetworkSlice) ProtoReflect() protoreflect.Message { - mi := &file_proto_config_proto_msgTypes[7] + mi := &file_config_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -548,7 +548,7 @@ func (x *NetworkSlice) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkSlice.ProtoReflect.Descriptor instead. func (*NetworkSlice) Descriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{7} + return file_config_proto_rawDescGZIP(), []int{7} } func (x *NetworkSlice) GetName() string { @@ -620,7 +620,7 @@ type DeviceGroup struct { func (x *DeviceGroup) Reset() { *x = DeviceGroup{} if protoimpl.UnsafeEnabled { - mi := &file_proto_config_proto_msgTypes[8] + mi := &file_config_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -633,7 +633,7 @@ func (x *DeviceGroup) String() string { func (*DeviceGroup) ProtoMessage() {} func (x *DeviceGroup) ProtoReflect() protoreflect.Message { - mi := &file_proto_config_proto_msgTypes[8] + mi := &file_config_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -646,7 +646,7 @@ func (x *DeviceGroup) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceGroup.ProtoReflect.Descriptor instead. func (*DeviceGroup) Descriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{8} + return file_config_proto_rawDescGZIP(), []int{8} } func (x *DeviceGroup) GetName() string { @@ -685,7 +685,7 @@ type IpDomain struct { func (x *IpDomain) Reset() { *x = IpDomain{} if protoimpl.UnsafeEnabled { - mi := &file_proto_config_proto_msgTypes[9] + mi := &file_config_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -698,7 +698,7 @@ func (x *IpDomain) String() string { func (*IpDomain) ProtoMessage() {} func (x *IpDomain) ProtoReflect() protoreflect.Message { - mi := &file_proto_config_proto_msgTypes[9] + mi := &file_config_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -711,7 +711,7 @@ func (x *IpDomain) ProtoReflect() protoreflect.Message { // Deprecated: Use IpDomain.ProtoReflect.Descriptor instead. func (*IpDomain) Descriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{9} + return file_config_proto_rawDescGZIP(), []int{9} } func (x *IpDomain) GetName() string { @@ -762,7 +762,7 @@ type NetworkSliceRequest struct { func (x *NetworkSliceRequest) Reset() { *x = NetworkSliceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_proto_config_proto_msgTypes[10] + mi := &file_config_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -775,7 +775,7 @@ func (x *NetworkSliceRequest) String() string { func (*NetworkSliceRequest) ProtoMessage() {} func (x *NetworkSliceRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_config_proto_msgTypes[10] + mi := &file_config_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -788,7 +788,7 @@ func (x *NetworkSliceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkSliceRequest.ProtoReflect.Descriptor instead. func (*NetworkSliceRequest) Descriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{10} + return file_config_proto_rawDescGZIP(), []int{10} } func (x *NetworkSliceRequest) GetRestartCounter() uint32 { @@ -825,7 +825,7 @@ type NetworkSliceResponse struct { func (x *NetworkSliceResponse) Reset() { *x = NetworkSliceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_proto_config_proto_msgTypes[11] + mi := &file_config_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -838,7 +838,7 @@ func (x *NetworkSliceResponse) String() string { func (*NetworkSliceResponse) ProtoMessage() {} func (x *NetworkSliceResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_config_proto_msgTypes[11] + mi := &file_config_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -851,7 +851,7 @@ func (x *NetworkSliceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkSliceResponse.ProtoReflect.Descriptor instead. func (*NetworkSliceResponse) Descriptor() ([]byte, []int) { - return file_proto_config_proto_rawDescGZIP(), []int{11} + return file_config_proto_rawDescGZIP(), []int{11} } func (x *NetworkSliceResponse) GetRestartCounter() uint32 { @@ -875,132 +875,138 @@ func (x *NetworkSliceResponse) GetConfigUpdated() uint32 { return 0 } -var File_proto_config_proto protoreflect.FileDescriptor - -var file_proto_config_proto_rawDesc = []byte{ - 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x22, 0x2c, 0x0a, 0x06, 0x50, 0x6c, 0x6d, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x63, 0x63, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x6e, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x6e, 0x63, - 0x22, 0x29, 0x0a, 0x05, 0x4e, 0x53, 0x53, 0x41, 0x49, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x53, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x53, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x53, 0x64, 0x22, 0x5d, 0x0a, 0x03, 0x51, - 0x6f, 0x53, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, - 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x6f, - 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, - 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x2e, 0x0a, 0x06, 0x47, 0x4e, - 0x6f, 0x64, 0x65, 0x42, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x63, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x54, 0x61, 0x63, 0x22, 0x3d, 0x0a, 0x07, 0x55, 0x70, - 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x70, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x55, 0x70, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x55, 0x70, 0x66, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x55, 0x70, 0x66, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x08, 0x53, 0x69, - 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x74, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x69, 0x74, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x47, 0x6e, 0x62, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, - 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x52, 0x03, 0x47, 0x6e, 0x62, 0x12, 0x28, 0x0a, 0x04, 0x50, 0x6c, - 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6c, 0x6d, 0x6e, 0x49, 0x64, 0x52, 0x04, - 0x50, 0x6c, 0x6d, 0x6e, 0x12, 0x27, 0x0a, 0x03, 0x55, 0x70, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x55, 0x70, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x55, 0x70, 0x66, 0x22, 0x93, 0x01, - 0x0a, 0x07, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x70, 0x70, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x70, 0x6f, 0x72, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x45, 0x6e, 0x64, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x22, 0xc8, 0x02, 0x0a, 0x0c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, - 0x6c, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x4e, 0x73, 0x73, 0x61, - 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x53, 0x53, 0x41, 0x49, 0x52, 0x05, 0x4e, 0x73, - 0x73, 0x61, 0x69, 0x12, 0x23, 0x0a, 0x03, 0x51, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, - 0x51, 0x6f, 0x53, 0x52, 0x03, 0x51, 0x6f, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, 0x0a, 0x04, 0x53, 0x69, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x53, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x53, 0x69, 0x74, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x6e, 0x79, 0x41, 0x70, 0x70, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x6e, 0x79, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x41, 0x70, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0a, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x41, 0x70, 0x70, 0x73, 0x12, 0x2f, 0x0a, - 0x07, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x70, - 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x77, - 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x49, 0x70, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x64, 0x63, - 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, 0x70, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x52, 0x0f, 0x49, 0x70, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x6d, 0x73, 0x69, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x04, 0x49, 0x6d, 0x73, 0x69, 0x22, 0x82, 0x01, 0x0a, 0x08, 0x49, 0x70, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x6e, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x6e, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x55, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x6e, - 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x44, 0x6e, 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x74, - 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4d, 0x74, 0x75, 0x22, 0x7f, 0x0a, 0x13, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x52, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x6d, 0x73, 0x69, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x49, 0x6d, 0x73, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0xa4, 0x01, - 0x0a, 0x14, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, - 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3e, - 0x0a, 0x0c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, - 0x52, 0x0c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x2a, 0x22, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, - 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x46, - 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x01, 0x32, 0x6b, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x21, 0x2e, 0x73, +var File_config_proto protoreflect.FileDescriptor + +var file_config_proto_rawDesc = []byte{ + 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, + 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x2c, 0x0a, 0x06, + 0x50, 0x6c, 0x6d, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x63, 0x63, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x63, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6e, 0x63, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x6e, 0x63, 0x22, 0x29, 0x0a, 0x05, 0x4e, 0x53, + 0x53, 0x41, 0x49, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x53, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x53, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x53, 0x64, 0x22, 0x5d, 0x0a, 0x03, 0x51, 0x6f, 0x53, 0x12, 0x16, 0x0a, 0x06, + 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x70, + 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, + 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x22, 0x2e, 0x0a, 0x06, 0x47, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x12, 0x12, + 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x54, 0x61, 0x63, 0x22, 0x3d, 0x0a, 0x07, 0x55, 0x70, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x18, 0x0a, 0x07, 0x55, 0x70, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x55, 0x70, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x70, 0x66, + 0x50, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x55, 0x70, 0x66, 0x50, + 0x6f, 0x72, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x08, 0x53, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x53, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x03, + 0x47, 0x6e, 0x62, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x64, 0x63, 0x6f, + 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x52, + 0x03, 0x47, 0x6e, 0x62, 0x12, 0x28, 0x0a, 0x04, 0x50, 0x6c, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2e, 0x50, 0x6c, 0x6d, 0x6e, 0x49, 0x64, 0x52, 0x04, 0x50, 0x6c, 0x6d, 0x6e, 0x12, 0x27, + 0x0a, 0x03, 0x55, 0x70, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x64, + 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x55, 0x70, 0x66, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x03, 0x55, 0x70, 0x66, 0x22, 0x93, 0x01, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0xc8, 0x02, + 0x0a, 0x0c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x4e, 0x73, 0x73, 0x61, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x4e, 0x53, 0x53, 0x41, 0x49, 0x52, 0x05, 0x4e, 0x73, 0x73, 0x61, 0x69, 0x12, 0x23, 0x0a, + 0x03, 0x51, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x64, 0x63, + 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x51, 0x6f, 0x53, 0x52, 0x03, 0x51, + 0x6f, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x2a, 0x0a, 0x04, 0x53, 0x69, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x69, 0x74, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x53, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x44, + 0x65, 0x6e, 0x79, 0x41, 0x70, 0x70, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x44, + 0x65, 0x6e, 0x79, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x74, 0x41, 0x70, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x74, 0x41, 0x70, 0x70, 0x73, 0x12, 0x2f, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x07, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x77, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x49, + 0x70, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x49, 0x70, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x0f, 0x49, 0x70, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x49, 0x6d, 0x73, 0x69, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x49, 0x6d, 0x73, + 0x69, 0x22, 0x82, 0x01, 0x0a, 0x08, 0x49, 0x70, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x6e, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x6e, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x55, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x65, + 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x6e, 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x44, 0x6e, 0x73, 0x50, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x4d, 0x74, 0x75, 0x22, 0x7f, 0x0a, 0x13, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, + 0x0e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x6d, 0x73, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x49, 0x6d, 0x73, 0x69, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0xa4, 0x01, 0x0a, 0x14, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x0c, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2a, 0x22, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, + 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, + 0x10, 0x01, 0x32, 0xcf, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x21, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6c, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x64, 0x63, + 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x62, 0x0a, 0x15, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x21, 0x2e, 0x73, 0x64, 0x63, 0x6f, + 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x22, 0x2e, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x10, 0x5a, 0x0e, 0x2e, 0x2f, 0x73, 0x64, 0x63, 0x6f, 0x72, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x72, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x30, 0x01, 0x42, 0x10, 0x5a, 0x0e, 0x2e, 0x2f, 0x73, 0x64, 0x63, 0x6f, 0x72, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_proto_config_proto_rawDescOnce sync.Once - file_proto_config_proto_rawDescData = file_proto_config_proto_rawDesc + file_config_proto_rawDescOnce sync.Once + file_config_proto_rawDescData = file_config_proto_rawDesc ) -func file_proto_config_proto_rawDescGZIP() []byte { - file_proto_config_proto_rawDescOnce.Do(func() { - file_proto_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_config_proto_rawDescData) +func file_config_proto_rawDescGZIP() []byte { + file_config_proto_rawDescOnce.Do(func() { + file_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_config_proto_rawDescData) }) - return file_proto_config_proto_rawDescData + return file_config_proto_rawDescData } -var file_proto_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_proto_config_proto_msgTypes = make([]protoimpl.MessageInfo, 12) -var file_proto_config_proto_goTypes = []interface{}{ +var file_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_config_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_config_proto_goTypes = []interface{}{ (Status)(0), // 0: sdcoreConfig.Status (*PlmnId)(nil), // 1: sdcoreConfig.PlmnId (*NSSAI)(nil), // 2: sdcoreConfig.NSSAI @@ -1015,7 +1021,7 @@ var file_proto_config_proto_goTypes = []interface{}{ (*NetworkSliceRequest)(nil), // 11: sdcoreConfig.NetworkSliceRequest (*NetworkSliceResponse)(nil), // 12: sdcoreConfig.NetworkSliceResponse } -var file_proto_config_proto_depIdxs = []int32{ +var file_config_proto_depIdxs = []int32{ 4, // 0: sdcoreConfig.SiteInfo.Gnb:type_name -> sdcoreConfig.GNodeB 1, // 1: sdcoreConfig.SiteInfo.Plmn:type_name -> sdcoreConfig.PlmnId 5, // 2: sdcoreConfig.SiteInfo.Upf:type_name -> sdcoreConfig.UpfInfo @@ -1027,21 +1033,23 @@ var file_proto_config_proto_depIdxs = []int32{ 10, // 8: sdcoreConfig.DeviceGroup.IpDomainDetails:type_name -> sdcoreConfig.IpDomain 8, // 9: sdcoreConfig.NetworkSliceResponse.NetworkSlice:type_name -> sdcoreConfig.NetworkSlice 11, // 10: sdcoreConfig.ConfigService.GetNetworkSlice:input_type -> sdcoreConfig.NetworkSliceRequest - 12, // 11: sdcoreConfig.ConfigService.GetNetworkSlice:output_type -> sdcoreConfig.NetworkSliceResponse - 11, // [11:12] is the sub-list for method output_type - 10, // [10:11] is the sub-list for method input_type + 11, // 11: sdcoreConfig.ConfigService.NetworkSliceSubscribe:input_type -> sdcoreConfig.NetworkSliceRequest + 12, // 12: sdcoreConfig.ConfigService.GetNetworkSlice:output_type -> sdcoreConfig.NetworkSliceResponse + 12, // 13: sdcoreConfig.ConfigService.NetworkSliceSubscribe:output_type -> sdcoreConfig.NetworkSliceResponse + 12, // [12:14] is the sub-list for method output_type + 10, // [10:12] is the sub-list for method input_type 10, // [10:10] is the sub-list for extension type_name 10, // [10:10] is the sub-list for extension extendee 0, // [0:10] is the sub-list for field type_name } -func init() { file_proto_config_proto_init() } -func file_proto_config_proto_init() { - if File_proto_config_proto != nil { +func init() { file_config_proto_init() } +func file_config_proto_init() { + if File_config_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_proto_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlmnId); i { case 0: return &v.state @@ -1053,7 +1061,7 @@ func file_proto_config_proto_init() { return nil } } - file_proto_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NSSAI); i { case 0: return &v.state @@ -1065,7 +1073,7 @@ func file_proto_config_proto_init() { return nil } } - file_proto_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QoS); i { case 0: return &v.state @@ -1077,7 +1085,7 @@ func file_proto_config_proto_init() { return nil } } - file_proto_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GNodeB); i { case 0: return &v.state @@ -1089,7 +1097,7 @@ func file_proto_config_proto_init() { return nil } } - file_proto_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpfInfo); i { case 0: return &v.state @@ -1101,7 +1109,7 @@ func file_proto_config_proto_init() { return nil } } - file_proto_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SiteInfo); i { case 0: return &v.state @@ -1113,7 +1121,7 @@ func file_proto_config_proto_init() { return nil } } - file_proto_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AppInfo); i { case 0: return &v.state @@ -1125,7 +1133,7 @@ func file_proto_config_proto_init() { return nil } } - file_proto_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NetworkSlice); i { case 0: return &v.state @@ -1137,7 +1145,7 @@ func file_proto_config_proto_init() { return nil } } - file_proto_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceGroup); i { case 0: return &v.state @@ -1149,7 +1157,7 @@ func file_proto_config_proto_init() { return nil } } - file_proto_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IpDomain); i { case 0: return &v.state @@ -1161,7 +1169,7 @@ func file_proto_config_proto_init() { return nil } } - file_proto_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NetworkSliceRequest); i { case 0: return &v.state @@ -1173,7 +1181,7 @@ func file_proto_config_proto_init() { return nil } } - file_proto_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NetworkSliceResponse); i { case 0: return &v.state @@ -1190,19 +1198,19 @@ func file_proto_config_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_proto_config_proto_rawDesc, + RawDescriptor: file_config_proto_rawDesc, NumEnums: 1, NumMessages: 12, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_proto_config_proto_goTypes, - DependencyIndexes: file_proto_config_proto_depIdxs, - EnumInfos: file_proto_config_proto_enumTypes, - MessageInfos: file_proto_config_proto_msgTypes, + GoTypes: file_config_proto_goTypes, + DependencyIndexes: file_config_proto_depIdxs, + EnumInfos: file_config_proto_enumTypes, + MessageInfos: file_config_proto_msgTypes, }.Build() - File_proto_config_proto = out.File - file_proto_config_proto_rawDesc = nil - file_proto_config_proto_goTypes = nil - file_proto_config_proto_depIdxs = nil + File_config_proto = out.File + file_config_proto_rawDesc = nil + file_config_proto_goTypes = nil + file_config_proto_depIdxs = nil } diff --git a/proto/sdcoreConfig/config_grpc.pb.go b/proto/sdcoreConfig/config_grpc.pb.go index 072bcc8..43f6013 100644 --- a/proto/sdcoreConfig/config_grpc.pb.go +++ b/proto/sdcoreConfig/config_grpc.pb.go @@ -19,6 +19,7 @@ const _ = grpc.SupportPackageIsVersion7 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type ConfigServiceClient interface { GetNetworkSlice(ctx context.Context, in *NetworkSliceRequest, opts ...grpc.CallOption) (*NetworkSliceResponse, error) + NetworkSliceSubscribe(ctx context.Context, in *NetworkSliceRequest, opts ...grpc.CallOption) (ConfigService_NetworkSliceSubscribeClient, error) } type configServiceClient struct { @@ -38,11 +39,44 @@ func (c *configServiceClient) GetNetworkSlice(ctx context.Context, in *NetworkSl return out, nil } +func (c *configServiceClient) NetworkSliceSubscribe(ctx context.Context, in *NetworkSliceRequest, opts ...grpc.CallOption) (ConfigService_NetworkSliceSubscribeClient, error) { + stream, err := c.cc.NewStream(ctx, &ConfigService_ServiceDesc.Streams[0], "/sdcoreConfig.ConfigService/NetworkSliceSubscribe", opts...) + if err != nil { + return nil, err + } + x := &configServiceNetworkSliceSubscribeClient{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 ConfigService_NetworkSliceSubscribeClient interface { + Recv() (*NetworkSliceResponse, error) + grpc.ClientStream +} + +type configServiceNetworkSliceSubscribeClient struct { + grpc.ClientStream +} + +func (x *configServiceNetworkSliceSubscribeClient) Recv() (*NetworkSliceResponse, error) { + m := new(NetworkSliceResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + // ConfigServiceServer is the server API for ConfigService service. // All implementations must embed UnimplementedConfigServiceServer // for forward compatibility type ConfigServiceServer interface { GetNetworkSlice(context.Context, *NetworkSliceRequest) (*NetworkSliceResponse, error) + NetworkSliceSubscribe(*NetworkSliceRequest, ConfigService_NetworkSliceSubscribeServer) error mustEmbedUnimplementedConfigServiceServer() } @@ -53,6 +87,9 @@ type UnimplementedConfigServiceServer struct { func (UnimplementedConfigServiceServer) GetNetworkSlice(context.Context, *NetworkSliceRequest) (*NetworkSliceResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetNetworkSlice not implemented") } +func (UnimplementedConfigServiceServer) NetworkSliceSubscribe(*NetworkSliceRequest, ConfigService_NetworkSliceSubscribeServer) error { + return status.Errorf(codes.Unimplemented, "method NetworkSliceSubscribe not implemented") +} func (UnimplementedConfigServiceServer) mustEmbedUnimplementedConfigServiceServer() {} // UnsafeConfigServiceServer may be embedded to opt out of forward compatibility for this service. @@ -84,6 +121,27 @@ func _ConfigService_GetNetworkSlice_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _ConfigService_NetworkSliceSubscribe_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(NetworkSliceRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ConfigServiceServer).NetworkSliceSubscribe(m, &configServiceNetworkSliceSubscribeServer{stream}) +} + +type ConfigService_NetworkSliceSubscribeServer interface { + Send(*NetworkSliceResponse) error + grpc.ServerStream +} + +type configServiceNetworkSliceSubscribeServer struct { + grpc.ServerStream +} + +func (x *configServiceNetworkSliceSubscribeServer) Send(m *NetworkSliceResponse) error { + return x.ServerStream.SendMsg(m) +} + // ConfigService_ServiceDesc is the grpc.ServiceDesc for ConfigService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -96,6 +154,12 @@ var ConfigService_ServiceDesc = grpc.ServiceDesc{ Handler: _ConfigService_GetNetworkSlice_Handler, }, }, - Streams: []grpc.StreamDesc{}, - Metadata: "proto/config.proto", + Streams: []grpc.StreamDesc{ + { + StreamName: "NetworkSliceSubscribe", + Handler: _ConfigService_NetworkSliceSubscribe_Handler, + ServerStreams: true, + }, + }, + Metadata: "config.proto", }