From 3a0172d3cc59a155e6b92828687a551bf2b433ed Mon Sep 17 00:00:00 2001 From: amohit Date: Mon, 5 Feb 2024 15:51:05 -0800 Subject: [PATCH] updated new gnmi proto 0.10.0 --- gnmi/gnmi/gnmi.pb.go | 3762 +++++++++++++++++++++++++----------------- gnmi/gnmi/gnmi.proto | 221 +-- gnmi_utils.go | 1 + 3 files changed, 2367 insertions(+), 1617 deletions(-) diff --git a/gnmi/gnmi/gnmi.pb.go b/gnmi/gnmi/gnmi.pb.go index f233190..55f5c76 100644 --- a/gnmi/gnmi/gnmi.pb.go +++ b/gnmi/gnmi/gnmi.pb.go @@ -1,78 +1,52 @@ +// +// Copyright 2016 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + // Code generated by protoc-gen-go. DO NOT EDIT. -// source: gnmi.proto - -/* -Package gnmi is a generated protocol buffer package. - -Package gNMI defines a service specification for the gRPC Network Management -Interface. This interface is defined to be a standard interface via which -a network management system ("client") can subscribe to state values, -retrieve snapshots of state information, and manipulate the state of a data -tree supported by a device ("target"). - -This document references the gNMI Specification which can be found at -http://github.com/openconfig/reference/blob/master/rpc/gnmi - -It is generated from these files: - gnmi.proto - -It has these top-level messages: - Notification - Update - TypedValue - Path - PathElem - Value - Error - Decimal64 - ScalarArray - SubscribeRequest - Poll - SubscribeResponse - SubscriptionList - Subscription - QOSMarking - Alias - AliasList - SetRequest - SetResponse - UpdateResult - GetRequest - GetResponse - CapabilityRequest - CapabilityResponse - ModelData -*/ +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.21.1 +// source: proto/gnmi/gnmi.proto + +// Package gNMI defines a service specification for the gRPC Network Management +// Interface. This interface is defined to be a standard interface via which +// a network management system ("client") can subscribe to state values, +// retrieve snapshots of state information, and manipulate the state of a data +// tree supported by a device ("target"). +// +// This document references the gNMI Specification which can be found at +// http://github.com/openconfig/reference/blob/master/rpc/gnmi + package gnmi import ( - fmt "fmt" - - proto "github.com/golang/protobuf/proto" - - math "math" - - google_protobuf "github.com/golang/protobuf/ptypes/any" - - google_protobuf1 "github.com/golang/protobuf/protoc-gen-go/descriptor" - gnmi_ext "github.com/Juniper/jtimon/gnmi/gnmi_ext" - - context "golang.org/x/net/context" - - grpc "google.golang.org/grpc" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + anypb "google.golang.org/protobuf/types/known/anypb" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // Encoding defines the value encoding formats that are supported by the gNMI // protocol. These encodings are used by both the client (when sending Set @@ -82,32 +56,57 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type Encoding int32 const ( - Encoding_JSON Encoding = 0 - Encoding_BYTES Encoding = 1 - Encoding_PROTO Encoding = 2 - Encoding_ASCII Encoding = 3 - Encoding_JSON_IETF Encoding = 4 + Encoding_JSON Encoding = 0 // JSON encoded text. + Encoding_BYTES Encoding = 1 // Arbitrarily encoded bytes. + Encoding_PROTO Encoding = 2 // Encoded according to scalar values of TypedValue. + Encoding_ASCII Encoding = 3 // ASCII text of an out-of-band agreed format. + Encoding_JSON_IETF Encoding = 4 // JSON encoded text as per RFC7951. ) -var Encoding_name = map[int32]string{ - 0: "JSON", - 1: "BYTES", - 2: "PROTO", - 3: "ASCII", - 4: "JSON_IETF", -} -var Encoding_value = map[string]int32{ - "JSON": 0, - "BYTES": 1, - "PROTO": 2, - "ASCII": 3, - "JSON_IETF": 4, +// Enum value maps for Encoding. +var ( + Encoding_name = map[int32]string{ + 0: "JSON", + 1: "BYTES", + 2: "PROTO", + 3: "ASCII", + 4: "JSON_IETF", + } + Encoding_value = map[string]int32{ + "JSON": 0, + "BYTES": 1, + "PROTO": 2, + "ASCII": 3, + "JSON_IETF": 4, + } +) + +func (x Encoding) Enum() *Encoding { + p := new(Encoding) + *p = x + return p } func (x Encoding) String() string { - return proto.EnumName(Encoding_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Encoding) Descriptor() protoreflect.EnumDescriptor { + return file_proto_gnmi_gnmi_proto_enumTypes[0].Descriptor() +} + +func (Encoding) Type() protoreflect.EnumType { + return &file_proto_gnmi_gnmi_proto_enumTypes[0] +} + +func (x Encoding) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Encoding.Descriptor instead. +func (Encoding) EnumDescriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{0} } -func (Encoding) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } // SubscriptionMode is the mode of the subscription, specifying how the // target must return values in a subscription. @@ -115,110 +114,210 @@ func (Encoding) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int type SubscriptionMode int32 const ( - SubscriptionMode_TARGET_DEFINED SubscriptionMode = 0 - SubscriptionMode_ON_CHANGE SubscriptionMode = 1 - SubscriptionMode_SAMPLE SubscriptionMode = 2 + SubscriptionMode_TARGET_DEFINED SubscriptionMode = 0 // The target selects the relevant mode for each element. + SubscriptionMode_ON_CHANGE SubscriptionMode = 1 // The target sends an update on element value change. + SubscriptionMode_SAMPLE SubscriptionMode = 2 // The target samples values according to the interval. ) -var SubscriptionMode_name = map[int32]string{ - 0: "TARGET_DEFINED", - 1: "ON_CHANGE", - 2: "SAMPLE", -} -var SubscriptionMode_value = map[string]int32{ - "TARGET_DEFINED": 0, - "ON_CHANGE": 1, - "SAMPLE": 2, +// Enum value maps for SubscriptionMode. +var ( + SubscriptionMode_name = map[int32]string{ + 0: "TARGET_DEFINED", + 1: "ON_CHANGE", + 2: "SAMPLE", + } + SubscriptionMode_value = map[string]int32{ + "TARGET_DEFINED": 0, + "ON_CHANGE": 1, + "SAMPLE": 2, + } +) + +func (x SubscriptionMode) Enum() *SubscriptionMode { + p := new(SubscriptionMode) + *p = x + return p } func (x SubscriptionMode) String() string { - return proto.EnumName(SubscriptionMode_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SubscriptionMode) Descriptor() protoreflect.EnumDescriptor { + return file_proto_gnmi_gnmi_proto_enumTypes[1].Descriptor() +} + +func (SubscriptionMode) Type() protoreflect.EnumType { + return &file_proto_gnmi_gnmi_proto_enumTypes[1] +} + +func (x SubscriptionMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SubscriptionMode.Descriptor instead. +func (SubscriptionMode) EnumDescriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{1} } -func (SubscriptionMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } // Mode of the subscription. type SubscriptionList_Mode int32 const ( - SubscriptionList_STREAM SubscriptionList_Mode = 0 - SubscriptionList_ONCE SubscriptionList_Mode = 1 - SubscriptionList_POLL SubscriptionList_Mode = 2 + SubscriptionList_STREAM SubscriptionList_Mode = 0 // Values streamed by the target (Sec. 3.5.1.5.2). + SubscriptionList_ONCE SubscriptionList_Mode = 1 // Values sent once-off by the target (Sec. 3.5.1.5.1). + SubscriptionList_POLL SubscriptionList_Mode = 2 // Values sent in response to a poll request (Sec. 3.5.1.5.3). ) -var SubscriptionList_Mode_name = map[int32]string{ - 0: "STREAM", - 1: "ONCE", - 2: "POLL", -} -var SubscriptionList_Mode_value = map[string]int32{ - "STREAM": 0, - "ONCE": 1, - "POLL": 2, +// Enum value maps for SubscriptionList_Mode. +var ( + SubscriptionList_Mode_name = map[int32]string{ + 0: "STREAM", + 1: "ONCE", + 2: "POLL", + } + SubscriptionList_Mode_value = map[string]int32{ + "STREAM": 0, + "ONCE": 1, + "POLL": 2, + } +) + +func (x SubscriptionList_Mode) Enum() *SubscriptionList_Mode { + p := new(SubscriptionList_Mode) + *p = x + return p } func (x SubscriptionList_Mode) String() string { - return proto.EnumName(SubscriptionList_Mode_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SubscriptionList_Mode) Descriptor() protoreflect.EnumDescriptor { + return file_proto_gnmi_gnmi_proto_enumTypes[2].Descriptor() +} + +func (SubscriptionList_Mode) Type() protoreflect.EnumType { + return &file_proto_gnmi_gnmi_proto_enumTypes[2] +} + +func (x SubscriptionList_Mode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SubscriptionList_Mode.Descriptor instead. +func (SubscriptionList_Mode) EnumDescriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{12, 0} } -func (SubscriptionList_Mode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 0} } // The operation that was associated with the Path specified. type UpdateResult_Operation int32 const ( UpdateResult_INVALID UpdateResult_Operation = 0 - UpdateResult_DELETE UpdateResult_Operation = 1 - UpdateResult_REPLACE UpdateResult_Operation = 2 - UpdateResult_UPDATE UpdateResult_Operation = 3 + UpdateResult_DELETE UpdateResult_Operation = 1 // The result relates to a delete of Path. + UpdateResult_REPLACE UpdateResult_Operation = 2 // The result relates to a replace of Path. + UpdateResult_UPDATE UpdateResult_Operation = 3 // The result relates to an update of Path. ) -var UpdateResult_Operation_name = map[int32]string{ - 0: "INVALID", - 1: "DELETE", - 2: "REPLACE", - 3: "UPDATE", -} -var UpdateResult_Operation_value = map[string]int32{ - "INVALID": 0, - "DELETE": 1, - "REPLACE": 2, - "UPDATE": 3, +// Enum value maps for UpdateResult_Operation. +var ( + UpdateResult_Operation_name = map[int32]string{ + 0: "INVALID", + 1: "DELETE", + 2: "REPLACE", + 3: "UPDATE", + } + UpdateResult_Operation_value = map[string]int32{ + "INVALID": 0, + "DELETE": 1, + "REPLACE": 2, + "UPDATE": 3, + } +) + +func (x UpdateResult_Operation) Enum() *UpdateResult_Operation { + p := new(UpdateResult_Operation) + *p = x + return p } func (x UpdateResult_Operation) String() string { - return proto.EnumName(UpdateResult_Operation_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UpdateResult_Operation) Descriptor() protoreflect.EnumDescriptor { + return file_proto_gnmi_gnmi_proto_enumTypes[3].Descriptor() +} + +func (UpdateResult_Operation) Type() protoreflect.EnumType { + return &file_proto_gnmi_gnmi_proto_enumTypes[3] +} + +func (x UpdateResult_Operation) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UpdateResult_Operation.Descriptor instead. +func (UpdateResult_Operation) EnumDescriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{17, 0} } -func (UpdateResult_Operation) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} } // Type of elements within the data tree. type GetRequest_DataType int32 const ( - GetRequest_ALL GetRequest_DataType = 0 - GetRequest_CONFIG GetRequest_DataType = 1 - GetRequest_STATE GetRequest_DataType = 2 + GetRequest_ALL GetRequest_DataType = 0 // All data elements. + GetRequest_CONFIG GetRequest_DataType = 1 // Config (rw) only elements. + GetRequest_STATE GetRequest_DataType = 2 // State (ro) only elements. // Data elements marked in the schema as operational. This refers to data // elements whose value relates to the state of processes or interactions // running on the device. GetRequest_OPERATIONAL GetRequest_DataType = 3 ) -var GetRequest_DataType_name = map[int32]string{ - 0: "ALL", - 1: "CONFIG", - 2: "STATE", - 3: "OPERATIONAL", -} -var GetRequest_DataType_value = map[string]int32{ - "ALL": 0, - "CONFIG": 1, - "STATE": 2, - "OPERATIONAL": 3, +// Enum value maps for GetRequest_DataType. +var ( + GetRequest_DataType_name = map[int32]string{ + 0: "ALL", + 1: "CONFIG", + 2: "STATE", + 3: "OPERATIONAL", + } + GetRequest_DataType_value = map[string]int32{ + "ALL": 0, + "CONFIG": 1, + "STATE": 2, + "OPERATIONAL": 3, + } +) + +func (x GetRequest_DataType) Enum() *GetRequest_DataType { + p := new(GetRequest_DataType) + *p = x + return p } func (x GetRequest_DataType) String() string { - return proto.EnumName(GetRequest_DataType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetRequest_DataType) Descriptor() protoreflect.EnumDescriptor { + return file_proto_gnmi_gnmi_proto_enumTypes[4].Descriptor() +} + +func (GetRequest_DataType) Type() protoreflect.EnumType { + return &file_proto_gnmi_gnmi_proto_enumTypes[4] +} + +func (x GetRequest_DataType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetRequest_DataType.Descriptor instead. +func (GetRequest_DataType) EnumDescriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{18, 0} } -func (GetRequest_DataType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{20, 0} } // Notification is a re-usable message that is used to encode data from the // target to the client. A Notification carries two types of changes to the data @@ -229,61 +328,82 @@ func (GetRequest_DataType) EnumDescriptor() ([]byte, []int) { return fileDescrip // whose value has changed in the data tree. // Reference: gNMI Specification Section 2.1 type Notification struct { - Timestamp int64 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"` - Prefix *Path `protobuf:"bytes,2,opt,name=prefix" json:"prefix,omitempty"` - // An alias for the path specified in the prefix field. - // Reference: gNMI Specification Section 2.4.2 - Alias string `protobuf:"bytes,3,opt,name=alias" json:"alias,omitempty"` - Update []*Update `protobuf:"bytes,4,rep,name=update" json:"update,omitempty"` - Delete []*Path `protobuf:"bytes,5,rep,name=delete" json:"delete,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch. + Prefix *Path `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"` // Prefix used for paths in the message. + Update []*Update `protobuf:"bytes,4,rep,name=update,proto3" json:"update,omitempty"` // Data elements that have changed values. + Delete []*Path `protobuf:"bytes,5,rep,name=delete,proto3" json:"delete,omitempty"` // Data elements that have been deleted. // This notification contains a set of paths that are always updated together // referenced by a globally unique prefix. - Atomic bool `protobuf:"varint,6,opt,name=atomic" json:"atomic,omitempty"` + Atomic bool `protobuf:"varint,6,opt,name=atomic,proto3" json:"atomic,omitempty"` } -func (m *Notification) Reset() { *m = Notification{} } -func (m *Notification) String() string { return proto.CompactTextString(m) } -func (*Notification) ProtoMessage() {} -func (*Notification) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (x *Notification) Reset() { + *x = Notification{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (m *Notification) GetTimestamp() int64 { - if m != nil { - return m.Timestamp +func (x *Notification) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Notification) ProtoMessage() {} + +func (x *Notification) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *Notification) GetPrefix() *Path { - if m != nil { - return m.Prefix +// Deprecated: Use Notification.ProtoReflect.Descriptor instead. +func (*Notification) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{0} +} + +func (x *Notification) GetTimestamp() int64 { + if x != nil { + return x.Timestamp } - return nil + return 0 } -func (m *Notification) GetAlias() string { - if m != nil { - return m.Alias +func (x *Notification) GetPrefix() *Path { + if x != nil { + return x.Prefix } - return "" + return nil } -func (m *Notification) GetUpdate() []*Update { - if m != nil { - return m.Update +func (x *Notification) GetUpdate() []*Update { + if x != nil { + return x.Update } return nil } -func (m *Notification) GetDelete() []*Path { - if m != nil { - return m.Delete +func (x *Notification) GetDelete() []*Path { + if x != nil { + return x.Delete } return nil } -func (m *Notification) GetAtomic() bool { - if m != nil { - return m.Atomic +func (x *Notification) GetAtomic() bool { + if x != nil { + return x.Atomic } return false } @@ -292,41 +412,74 @@ func (m *Notification) GetAtomic() bool { // Value pair. // Reference: gNMI Specification Section 2.1 type Update struct { - Path *Path `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"` - Value *Value `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` - Val *TypedValue `protobuf:"bytes,3,opt,name=val" json:"val,omitempty"` - Duplicates uint32 `protobuf:"varint,4,opt,name=duplicates" json:"duplicates,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Path *Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` // The path (key) for the update. + // Deprecated: Do not use. + Value *Value `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` // The value (value) for the update. + Val *TypedValue `protobuf:"bytes,3,opt,name=val,proto3" json:"val,omitempty"` // The explicitly typed update value. + Duplicates uint32 `protobuf:"varint,4,opt,name=duplicates,proto3" json:"duplicates,omitempty"` // Number of coalesced duplicates. } -func (m *Update) Reset() { *m = Update{} } -func (m *Update) String() string { return proto.CompactTextString(m) } -func (*Update) ProtoMessage() {} -func (*Update) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } +func (x *Update) Reset() { + *x = Update{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (m *Update) GetPath() *Path { - if m != nil { - return m.Path +func (x *Update) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Update) ProtoMessage() {} + +func (x *Update) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Update.ProtoReflect.Descriptor instead. +func (*Update) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{1} +} + +func (x *Update) GetPath() *Path { + if x != nil { + return x.Path } return nil } -func (m *Update) GetValue() *Value { - if m != nil { - return m.Value +// Deprecated: Do not use. +func (x *Update) GetValue() *Value { + if x != nil { + return x.Value } return nil } -func (m *Update) GetVal() *TypedValue { - if m != nil { - return m.Val +func (x *Update) GetVal() *TypedValue { + if x != nil { + return x.Val } return nil } -func (m *Update) GetDuplicates() uint32 { - if m != nil { - return m.Duplicates +func (x *Update) GetDuplicates() uint32 { + if x != nil { + return x.Duplicates } return 0 } @@ -334,19 +487,24 @@ func (m *Update) GetDuplicates() uint32 { // TypedValue is used to encode a value being sent between the client and // target (originated by either entity). type TypedValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // One of the fields within the val oneof is populated with the value // of the update. The type of the value being included in the Update // determines which field should be populated. In the case that the // encoding is a particular form of the base protobuf type, a specific // field is used to store the value (e.g., json_val). // - // Types that are valid to be assigned to Value: + // Types that are assignable to Value: // *TypedValue_StringVal // *TypedValue_IntVal // *TypedValue_UintVal // *TypedValue_BoolVal // *TypedValue_BytesVal // *TypedValue_FloatVal + // *TypedValue_DoubleVal // *TypedValue_DecimalVal // *TypedValue_LeaflistVal // *TypedValue_AnyVal @@ -357,66 +515,37 @@ type TypedValue struct { Value isTypedValue_Value `protobuf_oneof:"value"` } -func (m *TypedValue) Reset() { *m = TypedValue{} } -func (m *TypedValue) String() string { return proto.CompactTextString(m) } -func (*TypedValue) ProtoMessage() {} -func (*TypedValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } - -type isTypedValue_Value interface{ isTypedValue_Value() } - -type TypedValue_StringVal struct { - StringVal string `protobuf:"bytes,1,opt,name=string_val,json=stringVal,oneof"` -} -type TypedValue_IntVal struct { - IntVal int64 `protobuf:"varint,2,opt,name=int_val,json=intVal,oneof"` -} -type TypedValue_UintVal struct { - UintVal uint64 `protobuf:"varint,3,opt,name=uint_val,json=uintVal,oneof"` -} -type TypedValue_BoolVal struct { - BoolVal bool `protobuf:"varint,4,opt,name=bool_val,json=boolVal,oneof"` -} -type TypedValue_BytesVal struct { - BytesVal []byte `protobuf:"bytes,5,opt,name=bytes_val,json=bytesVal,proto3,oneof"` -} -type TypedValue_FloatVal struct { - FloatVal float32 `protobuf:"fixed32,6,opt,name=float_val,json=floatVal,oneof"` -} -type TypedValue_DecimalVal struct { - DecimalVal *Decimal64 `protobuf:"bytes,7,opt,name=decimal_val,json=decimalVal,oneof"` -} -type TypedValue_LeaflistVal struct { - LeaflistVal *ScalarArray `protobuf:"bytes,8,opt,name=leaflist_val,json=leaflistVal,oneof"` -} -type TypedValue_AnyVal struct { - AnyVal *google_protobuf.Any `protobuf:"bytes,9,opt,name=any_val,json=anyVal,oneof"` -} -type TypedValue_JsonVal struct { - JsonVal []byte `protobuf:"bytes,10,opt,name=json_val,json=jsonVal,proto3,oneof"` -} -type TypedValue_JsonIetfVal struct { - JsonIetfVal []byte `protobuf:"bytes,11,opt,name=json_ietf_val,json=jsonIetfVal,proto3,oneof"` +func (x *TypedValue) Reset() { + *x = TypedValue{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type TypedValue_AsciiVal struct { - AsciiVal string `protobuf:"bytes,12,opt,name=ascii_val,json=asciiVal,oneof"` + +func (x *TypedValue) String() string { + return protoimpl.X.MessageStringOf(x) } -type TypedValue_ProtoBytes struct { - ProtoBytes []byte `protobuf:"bytes,13,opt,name=proto_bytes,json=protoBytes,proto3,oneof"` + +func (*TypedValue) ProtoMessage() {} + +func (x *TypedValue) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_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) } -func (*TypedValue_StringVal) isTypedValue_Value() {} -func (*TypedValue_IntVal) isTypedValue_Value() {} -func (*TypedValue_UintVal) isTypedValue_Value() {} -func (*TypedValue_BoolVal) isTypedValue_Value() {} -func (*TypedValue_BytesVal) isTypedValue_Value() {} -func (*TypedValue_FloatVal) isTypedValue_Value() {} -func (*TypedValue_DecimalVal) isTypedValue_Value() {} -func (*TypedValue_LeaflistVal) isTypedValue_Value() {} -func (*TypedValue_AnyVal) isTypedValue_Value() {} -func (*TypedValue_JsonVal) isTypedValue_Value() {} -func (*TypedValue_JsonIetfVal) isTypedValue_Value() {} -func (*TypedValue_AsciiVal) isTypedValue_Value() {} -func (*TypedValue_ProtoBytes) isTypedValue_Value() {} +// Deprecated: Use TypedValue.ProtoReflect.Descriptor instead. +func (*TypedValue) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{2} +} func (m *TypedValue) GetValue() isTypedValue_Value { if m != nil { @@ -425,382 +554,276 @@ func (m *TypedValue) GetValue() isTypedValue_Value { return nil } -func (m *TypedValue) GetStringVal() string { - if x, ok := m.GetValue().(*TypedValue_StringVal); ok { +func (x *TypedValue) GetStringVal() string { + if x, ok := x.GetValue().(*TypedValue_StringVal); ok { return x.StringVal } return "" } -func (m *TypedValue) GetIntVal() int64 { - if x, ok := m.GetValue().(*TypedValue_IntVal); ok { +func (x *TypedValue) GetIntVal() int64 { + if x, ok := x.GetValue().(*TypedValue_IntVal); ok { return x.IntVal } return 0 } -func (m *TypedValue) GetUintVal() uint64 { - if x, ok := m.GetValue().(*TypedValue_UintVal); ok { +func (x *TypedValue) GetUintVal() uint64 { + if x, ok := x.GetValue().(*TypedValue_UintVal); ok { return x.UintVal } return 0 } -func (m *TypedValue) GetBoolVal() bool { - if x, ok := m.GetValue().(*TypedValue_BoolVal); ok { +func (x *TypedValue) GetBoolVal() bool { + if x, ok := x.GetValue().(*TypedValue_BoolVal); ok { return x.BoolVal } return false } -func (m *TypedValue) GetBytesVal() []byte { - if x, ok := m.GetValue().(*TypedValue_BytesVal); ok { +func (x *TypedValue) GetBytesVal() []byte { + if x, ok := x.GetValue().(*TypedValue_BytesVal); ok { return x.BytesVal } return nil } -func (m *TypedValue) GetFloatVal() float32 { - if x, ok := m.GetValue().(*TypedValue_FloatVal); ok { +// Deprecated: Do not use. +func (x *TypedValue) GetFloatVal() float32 { + if x, ok := x.GetValue().(*TypedValue_FloatVal); ok { return x.FloatVal } return 0 } -func (m *TypedValue) GetDecimalVal() *Decimal64 { - if x, ok := m.GetValue().(*TypedValue_DecimalVal); ok { +func (x *TypedValue) GetDoubleVal() float64 { + if x, ok := x.GetValue().(*TypedValue_DoubleVal); ok { + return x.DoubleVal + } + return 0 +} + +// Deprecated: Do not use. +func (x *TypedValue) GetDecimalVal() *Decimal64 { + if x, ok := x.GetValue().(*TypedValue_DecimalVal); ok { return x.DecimalVal } return nil } -func (m *TypedValue) GetLeaflistVal() *ScalarArray { - if x, ok := m.GetValue().(*TypedValue_LeaflistVal); ok { +func (x *TypedValue) GetLeaflistVal() *ScalarArray { + if x, ok := x.GetValue().(*TypedValue_LeaflistVal); ok { return x.LeaflistVal } return nil } -func (m *TypedValue) GetAnyVal() *google_protobuf.Any { - if x, ok := m.GetValue().(*TypedValue_AnyVal); ok { +func (x *TypedValue) GetAnyVal() *anypb.Any { + if x, ok := x.GetValue().(*TypedValue_AnyVal); ok { return x.AnyVal } return nil } -func (m *TypedValue) GetJsonVal() []byte { - if x, ok := m.GetValue().(*TypedValue_JsonVal); ok { +func (x *TypedValue) GetJsonVal() []byte { + if x, ok := x.GetValue().(*TypedValue_JsonVal); ok { return x.JsonVal } return nil } -func (m *TypedValue) GetJsonIetfVal() []byte { - if x, ok := m.GetValue().(*TypedValue_JsonIetfVal); ok { +func (x *TypedValue) GetJsonIetfVal() []byte { + if x, ok := x.GetValue().(*TypedValue_JsonIetfVal); ok { return x.JsonIetfVal } return nil } -func (m *TypedValue) GetAsciiVal() string { - if x, ok := m.GetValue().(*TypedValue_AsciiVal); ok { +func (x *TypedValue) GetAsciiVal() string { + if x, ok := x.GetValue().(*TypedValue_AsciiVal); ok { return x.AsciiVal } return "" } -func (m *TypedValue) GetProtoBytes() []byte { - if x, ok := m.GetValue().(*TypedValue_ProtoBytes); ok { +func (x *TypedValue) GetProtoBytes() []byte { + if x, ok := x.GetValue().(*TypedValue_ProtoBytes); ok { return x.ProtoBytes } return nil } -// XXX_OneofFuncs is for the internal use of the proto package. -func (*TypedValue) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _TypedValue_OneofMarshaler, _TypedValue_OneofUnmarshaler, _TypedValue_OneofSizer, []interface{}{ - (*TypedValue_StringVal)(nil), - (*TypedValue_IntVal)(nil), - (*TypedValue_UintVal)(nil), - (*TypedValue_BoolVal)(nil), - (*TypedValue_BytesVal)(nil), - (*TypedValue_FloatVal)(nil), - (*TypedValue_DecimalVal)(nil), - (*TypedValue_LeaflistVal)(nil), - (*TypedValue_AnyVal)(nil), - (*TypedValue_JsonVal)(nil), - (*TypedValue_JsonIetfVal)(nil), - (*TypedValue_AsciiVal)(nil), - (*TypedValue_ProtoBytes)(nil), - } +type isTypedValue_Value interface { + isTypedValue_Value() } -func _TypedValue_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*TypedValue) - // value - switch x := m.Value.(type) { - case *TypedValue_StringVal: - b.EncodeVarint(1<<3 | proto.WireBytes) - b.EncodeStringBytes(x.StringVal) - case *TypedValue_IntVal: - b.EncodeVarint(2<<3 | proto.WireVarint) - b.EncodeVarint(uint64(x.IntVal)) - case *TypedValue_UintVal: - b.EncodeVarint(3<<3 | proto.WireVarint) - b.EncodeVarint(uint64(x.UintVal)) - case *TypedValue_BoolVal: - t := uint64(0) - if x.BoolVal { - t = 1 - } - b.EncodeVarint(4<<3 | proto.WireVarint) - b.EncodeVarint(t) - case *TypedValue_BytesVal: - b.EncodeVarint(5<<3 | proto.WireBytes) - b.EncodeRawBytes(x.BytesVal) - case *TypedValue_FloatVal: - b.EncodeVarint(6<<3 | proto.WireFixed32) - b.EncodeFixed32(uint64(math.Float32bits(x.FloatVal))) - case *TypedValue_DecimalVal: - b.EncodeVarint(7<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.DecimalVal); err != nil { - return err - } - case *TypedValue_LeaflistVal: - b.EncodeVarint(8<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.LeaflistVal); err != nil { - return err - } - case *TypedValue_AnyVal: - b.EncodeVarint(9<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.AnyVal); err != nil { - return err - } - case *TypedValue_JsonVal: - b.EncodeVarint(10<<3 | proto.WireBytes) - b.EncodeRawBytes(x.JsonVal) - case *TypedValue_JsonIetfVal: - b.EncodeVarint(11<<3 | proto.WireBytes) - b.EncodeRawBytes(x.JsonIetfVal) - case *TypedValue_AsciiVal: - b.EncodeVarint(12<<3 | proto.WireBytes) - b.EncodeStringBytes(x.AsciiVal) - case *TypedValue_ProtoBytes: - b.EncodeVarint(13<<3 | proto.WireBytes) - b.EncodeRawBytes(x.ProtoBytes) - case nil: - default: - return fmt.Errorf("TypedValue.Value has unexpected type %T", x) - } - return nil +type TypedValue_StringVal struct { + StringVal string `protobuf:"bytes,1,opt,name=string_val,json=stringVal,proto3,oneof"` // String value. } -func _TypedValue_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*TypedValue) - switch tag { - case 1: // value.string_val - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Value = &TypedValue_StringVal{x} - return true, err - case 2: // value.int_val - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Value = &TypedValue_IntVal{int64(x)} - return true, err - case 3: // value.uint_val - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Value = &TypedValue_UintVal{x} - return true, err - case 4: // value.bool_val - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Value = &TypedValue_BoolVal{x != 0} - return true, err - case 5: // value.bytes_val - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.Value = &TypedValue_BytesVal{x} - return true, err - case 6: // value.float_val - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.Value = &TypedValue_FloatVal{math.Float32frombits(uint32(x))} - return true, err - case 7: // value.decimal_val - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Decimal64) - err := b.DecodeMessage(msg) - m.Value = &TypedValue_DecimalVal{msg} - return true, err - case 8: // value.leaflist_val - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(ScalarArray) - err := b.DecodeMessage(msg) - m.Value = &TypedValue_LeaflistVal{msg} - return true, err - case 9: // value.any_val - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(google_protobuf.Any) - err := b.DecodeMessage(msg) - m.Value = &TypedValue_AnyVal{msg} - return true, err - case 10: // value.json_val - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.Value = &TypedValue_JsonVal{x} - return true, err - case 11: // value.json_ietf_val - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.Value = &TypedValue_JsonIetfVal{x} - return true, err - case 12: // value.ascii_val - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Value = &TypedValue_AsciiVal{x} - return true, err - case 13: // value.proto_bytes - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.Value = &TypedValue_ProtoBytes{x} - return true, err - default: - return false, nil - } -} - -func _TypedValue_OneofSizer(msg proto.Message) (n int) { - m := msg.(*TypedValue) - // value - switch x := m.Value.(type) { - case *TypedValue_StringVal: - n += proto.SizeVarint(1<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.StringVal))) - n += len(x.StringVal) - case *TypedValue_IntVal: - n += proto.SizeVarint(2<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.IntVal)) - case *TypedValue_UintVal: - n += proto.SizeVarint(3<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.UintVal)) - case *TypedValue_BoolVal: - n += proto.SizeVarint(4<<3 | proto.WireVarint) - n += 1 - case *TypedValue_BytesVal: - n += proto.SizeVarint(5<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.BytesVal))) - n += len(x.BytesVal) - case *TypedValue_FloatVal: - n += proto.SizeVarint(6<<3 | proto.WireFixed32) - n += 4 - case *TypedValue_DecimalVal: - s := proto.Size(x.DecimalVal) - n += proto.SizeVarint(7<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case *TypedValue_LeaflistVal: - s := proto.Size(x.LeaflistVal) - n += proto.SizeVarint(8<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case *TypedValue_AnyVal: - s := proto.Size(x.AnyVal) - n += proto.SizeVarint(9<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case *TypedValue_JsonVal: - n += proto.SizeVarint(10<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.JsonVal))) - n += len(x.JsonVal) - case *TypedValue_JsonIetfVal: - n += proto.SizeVarint(11<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.JsonIetfVal))) - n += len(x.JsonIetfVal) - case *TypedValue_AsciiVal: - n += proto.SizeVarint(12<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.AsciiVal))) - n += len(x.AsciiVal) - case *TypedValue_ProtoBytes: - n += proto.SizeVarint(13<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.ProtoBytes))) - n += len(x.ProtoBytes) - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n +type TypedValue_IntVal struct { + IntVal int64 `protobuf:"varint,2,opt,name=int_val,json=intVal,proto3,oneof"` // Integer value. +} + +type TypedValue_UintVal struct { + UintVal uint64 `protobuf:"varint,3,opt,name=uint_val,json=uintVal,proto3,oneof"` // Unsigned integer value. +} + +type TypedValue_BoolVal struct { + BoolVal bool `protobuf:"varint,4,opt,name=bool_val,json=boolVal,proto3,oneof"` // Bool value. +} + +type TypedValue_BytesVal struct { + BytesVal []byte `protobuf:"bytes,5,opt,name=bytes_val,json=bytesVal,proto3,oneof"` // Arbitrary byte sequence value. +} + +type TypedValue_FloatVal struct { + // Deprecated: Do not use. + FloatVal float32 `protobuf:"fixed32,6,opt,name=float_val,json=floatVal,proto3,oneof"` // Deprecated - use double_val. +} + +type TypedValue_DoubleVal struct { + DoubleVal float64 `protobuf:"fixed64,14,opt,name=double_val,json=doubleVal,proto3,oneof"` // Floating point value. +} + +type TypedValue_DecimalVal struct { + // Deprecated: Do not use. + DecimalVal *Decimal64 `protobuf:"bytes,7,opt,name=decimal_val,json=decimalVal,proto3,oneof"` // Deprecated - use double_val. +} + +type TypedValue_LeaflistVal struct { + LeaflistVal *ScalarArray `protobuf:"bytes,8,opt,name=leaflist_val,json=leaflistVal,proto3,oneof"` // Mixed type scalar array value. +} + +type TypedValue_AnyVal struct { + AnyVal *anypb.Any `protobuf:"bytes,9,opt,name=any_val,json=anyVal,proto3,oneof"` // protobuf.Any encoded bytes. +} + +type TypedValue_JsonVal struct { + JsonVal []byte `protobuf:"bytes,10,opt,name=json_val,json=jsonVal,proto3,oneof"` // JSON-encoded text. +} + +type TypedValue_JsonIetfVal struct { + JsonIetfVal []byte `protobuf:"bytes,11,opt,name=json_ietf_val,json=jsonIetfVal,proto3,oneof"` // JSON-encoded text per RFC7951. +} + +type TypedValue_AsciiVal struct { + AsciiVal string `protobuf:"bytes,12,opt,name=ascii_val,json=asciiVal,proto3,oneof"` // Arbitrary ASCII text. } +type TypedValue_ProtoBytes struct { + // Protobuf binary encoded bytes. The message type is not included. + // See the specification at + // github.com/openconfig/reference/blob/master/rpc/gnmi/protobuf-vals.md + // for a complete specification. [Experimental] + ProtoBytes []byte `protobuf:"bytes,13,opt,name=proto_bytes,json=protoBytes,proto3,oneof"` +} + +func (*TypedValue_StringVal) isTypedValue_Value() {} + +func (*TypedValue_IntVal) isTypedValue_Value() {} + +func (*TypedValue_UintVal) isTypedValue_Value() {} + +func (*TypedValue_BoolVal) isTypedValue_Value() {} + +func (*TypedValue_BytesVal) isTypedValue_Value() {} + +func (*TypedValue_FloatVal) isTypedValue_Value() {} + +func (*TypedValue_DoubleVal) isTypedValue_Value() {} + +func (*TypedValue_DecimalVal) isTypedValue_Value() {} + +func (*TypedValue_LeaflistVal) isTypedValue_Value() {} + +func (*TypedValue_AnyVal) isTypedValue_Value() {} + +func (*TypedValue_JsonVal) isTypedValue_Value() {} + +func (*TypedValue_JsonIetfVal) isTypedValue_Value() {} + +func (*TypedValue_AsciiVal) isTypedValue_Value() {} + +func (*TypedValue_ProtoBytes) isTypedValue_Value() {} + // Path encodes a data tree path as a series of repeated strings, with // each element of the path representing a data tree node name and the // associated attributes. // Reference: gNMI Specification Section 2.2.2. type Path struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Elements of the path are no longer encoded as a string, but rather within // the elem field as a PathElem message. - Element []string `protobuf:"bytes,1,rep,name=element" json:"element,omitempty"` - Origin string `protobuf:"bytes,2,opt,name=origin" json:"origin,omitempty"` - Elem []*PathElem `protobuf:"bytes,3,rep,name=elem" json:"elem,omitempty"` - Target string `protobuf:"bytes,4,opt,name=target" json:"target,omitempty"` + // + // Deprecated: Do not use. + Element []string `protobuf:"bytes,1,rep,name=element,proto3" json:"element,omitempty"` + Origin string `protobuf:"bytes,2,opt,name=origin,proto3" json:"origin,omitempty"` // Label to disambiguate path. + Elem []*PathElem `protobuf:"bytes,3,rep,name=elem,proto3" json:"elem,omitempty"` // Elements of the path. + Target string `protobuf:"bytes,4,opt,name=target,proto3" json:"target,omitempty"` // The name of the target } -func (m *Path) Reset() { *m = Path{} } -func (m *Path) String() string { return proto.CompactTextString(m) } -func (*Path) ProtoMessage() {} -func (*Path) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } +func (x *Path) Reset() { + *x = Path{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (m *Path) GetElement() []string { - if m != nil { - return m.Element +func (x *Path) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Path) ProtoMessage() {} + +func (x *Path) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Path.ProtoReflect.Descriptor instead. +func (*Path) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{3} +} + +// Deprecated: Do not use. +func (x *Path) GetElement() []string { + if x != nil { + return x.Element } return nil } -func (m *Path) GetOrigin() string { - if m != nil { - return m.Origin +func (x *Path) GetOrigin() string { + if x != nil { + return x.Origin } return "" } -func (m *Path) GetElem() []*PathElem { - if m != nil { - return m.Elem +func (x *Path) GetElem() []*PathElem { + if x != nil { + return x.Elem } return nil } -func (m *Path) GetTarget() string { - if m != nil { - return m.Target +func (x *Path) GetTarget() string { + if x != nil { + return x.Target } return "" } @@ -809,25 +832,56 @@ func (m *Path) GetTarget() string { // that may be associated with it. // Reference: gNMI Specification Section 2.2.2. type PathElem struct { - Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Key map[string]string `protobuf:"bytes,2,rep,name=key" json:"key,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The name of the element in the path. + Key map[string]string `protobuf:"bytes,2,rep,name=key,proto3" json:"key,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Map of key (attribute) name to value. } -func (m *PathElem) Reset() { *m = PathElem{} } -func (m *PathElem) String() string { return proto.CompactTextString(m) } -func (*PathElem) ProtoMessage() {} -func (*PathElem) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } +func (x *PathElem) Reset() { + *x = PathElem{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (m *PathElem) GetName() string { - if m != nil { - return m.Name +func (x *PathElem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PathElem) ProtoMessage() {} + +func (x *PathElem) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PathElem.ProtoReflect.Descriptor instead. +func (*PathElem) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{4} +} + +func (x *PathElem) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *PathElem) GetKey() map[string]string { - if m != nil { - return m.Key +func (x *PathElem) GetKey() map[string]string { + if x != nil { + return x.Key } return nil } @@ -835,26 +889,59 @@ func (m *PathElem) GetKey() map[string]string { // Value encodes a data tree node's value - along with the way in which // the value is encoded. This message is deprecated by gNMI 0.3.0. // Reference: gNMI Specification Section 2.2.3. +// +// Deprecated: Do not use. type Value struct { - Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` - Type Encoding `protobuf:"varint,2,opt,name=type,enum=gnmi.Encoding" json:"type,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // Value of the variable being transmitted. + Type Encoding `protobuf:"varint,2,opt,name=type,proto3,enum=gnmi.Encoding" json:"type,omitempty"` // Encoding used for the value field. } -func (m *Value) Reset() { *m = Value{} } -func (m *Value) String() string { return proto.CompactTextString(m) } -func (*Value) ProtoMessage() {} -func (*Value) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } +func (x *Value) Reset() { + *x = Value{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (m *Value) GetValue() []byte { - if m != nil { - return m.Value +func (x *Value) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Value) ProtoMessage() {} + +func (x *Value) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Value.ProtoReflect.Descriptor instead. +func (*Value) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{5} +} + +func (x *Value) GetValue() []byte { + if x != nil { + return x.Value } return nil } -func (m *Value) GetType() Encoding { - if m != nil { - return m.Type +func (x *Value) GetType() Encoding { + if x != nil { + return x.Type } return Encoding_JSON } @@ -863,34 +950,67 @@ func (m *Value) GetType() Encoding { // in favour of using the google.golang.org/genproto/googleapis/rpc/status // message in the RPC response. // Reference: gNMI Specification Section 2.5 +// +// Deprecated: Do not use. type Error struct { - Code uint32 `protobuf:"varint,1,opt,name=code" json:"code,omitempty"` - Message string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` - Data *google_protobuf.Any `protobuf:"bytes,3,opt,name=data" json:"data,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // Canonical gRPC error code. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` // Human readable error. + Data *anypb.Any `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // Optional additional information. } -func (m *Error) Reset() { *m = Error{} } -func (m *Error) String() string { return proto.CompactTextString(m) } -func (*Error) ProtoMessage() {} -func (*Error) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } +func (x *Error) Reset() { + *x = Error{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (m *Error) GetCode() uint32 { - if m != nil { - return m.Code +func (x *Error) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Error) ProtoMessage() {} + +func (x *Error) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Error.ProtoReflect.Descriptor instead. +func (*Error) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{6} +} + +func (x *Error) GetCode() uint32 { + if x != nil { + return x.Code } return 0 } -func (m *Error) GetMessage() string { - if m != nil { - return m.Message +func (x *Error) GetMessage() string { + if x != nil { + return x.Message } return "" } -func (m *Error) GetData() *google_protobuf.Any { - if m != nil { - return m.Data +func (x *Error) GetData() *anypb.Any { + if x != nil { + return x.Data } return nil } @@ -898,46 +1018,112 @@ func (m *Error) GetData() *google_protobuf.Any { // Decimal64 is used to encode a fixed precision decimal number. The value // is expressed as a set of digits with the precision specifying the // number of digits following the decimal point in the digit set. +// This message is deprecated in favor of encoding all floating point types +// as double precision. +// +// Deprecated: Do not use. type Decimal64 struct { - Digits int64 `protobuf:"varint,1,opt,name=digits" json:"digits,omitempty"` - Precision uint32 `protobuf:"varint,2,opt,name=precision" json:"precision,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Digits int64 `protobuf:"varint,1,opt,name=digits,proto3" json:"digits,omitempty"` // Set of digits. + Precision uint32 `protobuf:"varint,2,opt,name=precision,proto3" json:"precision,omitempty"` // Number of digits following the decimal point. +} + +func (x *Decimal64) Reset() { + *x = Decimal64{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Decimal64) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *Decimal64) Reset() { *m = Decimal64{} } -func (m *Decimal64) String() string { return proto.CompactTextString(m) } -func (*Decimal64) ProtoMessage() {} -func (*Decimal64) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } +func (*Decimal64) ProtoMessage() {} -func (m *Decimal64) GetDigits() int64 { - if m != nil { - return m.Digits +func (x *Decimal64) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Decimal64.ProtoReflect.Descriptor instead. +func (*Decimal64) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{7} +} + +func (x *Decimal64) GetDigits() int64 { + if x != nil { + return x.Digits } return 0 } -func (m *Decimal64) GetPrecision() uint32 { - if m != nil { - return m.Precision +func (x *Decimal64) GetPrecision() uint32 { + if x != nil { + return x.Precision } return 0 } // ScalarArray is used to encode a mixed-type array of values. type ScalarArray struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // The set of elements within the array. Each TypedValue message should // specify only elements that have a field identifier of 1-7 (i.e., the // values are scalar values). - Element []*TypedValue `protobuf:"bytes,1,rep,name=element" json:"element,omitempty"` + Element []*TypedValue `protobuf:"bytes,1,rep,name=element,proto3" json:"element,omitempty"` } -func (m *ScalarArray) Reset() { *m = ScalarArray{} } -func (m *ScalarArray) String() string { return proto.CompactTextString(m) } -func (*ScalarArray) ProtoMessage() {} -func (*ScalarArray) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } +func (x *ScalarArray) Reset() { + *x = ScalarArray{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (m *ScalarArray) GetElement() []*TypedValue { - if m != nil { - return m.Element +func (x *ScalarArray) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ScalarArray) ProtoMessage() {} + +func (x *ScalarArray) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ScalarArray.ProtoReflect.Descriptor instead. +func (*ScalarArray) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{8} +} + +func (x *ScalarArray) GetElement() []*TypedValue { + if x != nil { + return x.Element } return nil } @@ -945,40 +1131,53 @@ func (m *ScalarArray) GetElement() []*TypedValue { // SubscribeRequest is the message sent by the client to the target when // initiating a subscription to a set of paths within the data tree. The // request field must be populated and the initial message must specify a -// SubscriptionList to initiate a subscription. The message is subsequently -// used to define aliases or trigger polled data to be sent by the target. +// SubscriptionList to initiate a subscription. // Reference: gNMI Specification Section 3.5.1.1 type SubscribeRequest struct { - // Types that are valid to be assigned to Request: + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Request: // *SubscribeRequest_Subscribe // *SubscribeRequest_Poll - // *SubscribeRequest_Aliases Request isSubscribeRequest_Request `protobuf_oneof:"request"` // Extension messages associated with the SubscribeRequest. See the // gNMI extension specification for further definition. - Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension" json:"extension,omitempty"` + Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension,proto3" json:"extension,omitempty"` } -func (m *SubscribeRequest) Reset() { *m = SubscribeRequest{} } -func (m *SubscribeRequest) String() string { return proto.CompactTextString(m) } -func (*SubscribeRequest) ProtoMessage() {} -func (*SubscribeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } - -type isSubscribeRequest_Request interface{ isSubscribeRequest_Request() } - -type SubscribeRequest_Subscribe struct { - Subscribe *SubscriptionList `protobuf:"bytes,1,opt,name=subscribe,oneof"` +func (x *SubscribeRequest) Reset() { + *x = SubscribeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SubscribeRequest_Poll struct { - Poll *Poll `protobuf:"bytes,3,opt,name=poll,oneof"` + +func (x *SubscribeRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -type SubscribeRequest_Aliases struct { - Aliases *AliasList `protobuf:"bytes,4,opt,name=aliases,oneof"` + +func (*SubscribeRequest) ProtoMessage() {} + +func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (*SubscribeRequest_Subscribe) isSubscribeRequest_Request() {} -func (*SubscribeRequest_Poll) isSubscribeRequest_Request() {} -func (*SubscribeRequest_Aliases) isSubscribeRequest_Request() {} +// Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead. +func (*SubscribeRequest) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{9} +} func (m *SubscribeRequest) GetRequest() isSubscribeRequest_Request { if m != nil { @@ -987,138 +1186,84 @@ func (m *SubscribeRequest) GetRequest() isSubscribeRequest_Request { return nil } -func (m *SubscribeRequest) GetSubscribe() *SubscriptionList { - if x, ok := m.GetRequest().(*SubscribeRequest_Subscribe); ok { +func (x *SubscribeRequest) GetSubscribe() *SubscriptionList { + if x, ok := x.GetRequest().(*SubscribeRequest_Subscribe); ok { return x.Subscribe } return nil } -func (m *SubscribeRequest) GetPoll() *Poll { - if x, ok := m.GetRequest().(*SubscribeRequest_Poll); ok { +func (x *SubscribeRequest) GetPoll() *Poll { + if x, ok := x.GetRequest().(*SubscribeRequest_Poll); ok { return x.Poll } return nil } -func (m *SubscribeRequest) GetAliases() *AliasList { - if x, ok := m.GetRequest().(*SubscribeRequest_Aliases); ok { - return x.Aliases +func (x *SubscribeRequest) GetExtension() []*gnmi_ext.Extension { + if x != nil { + return x.Extension } return nil } -func (m *SubscribeRequest) GetExtension() []*gnmi_ext.Extension { - if m != nil { - return m.Extension - } - return nil +type isSubscribeRequest_Request interface { + isSubscribeRequest_Request() } -// XXX_OneofFuncs is for the internal use of the proto package. -func (*SubscribeRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _SubscribeRequest_OneofMarshaler, _SubscribeRequest_OneofUnmarshaler, _SubscribeRequest_OneofSizer, []interface{}{ - (*SubscribeRequest_Subscribe)(nil), - (*SubscribeRequest_Poll)(nil), - (*SubscribeRequest_Aliases)(nil), - } +type SubscribeRequest_Subscribe struct { + Subscribe *SubscriptionList `protobuf:"bytes,1,opt,name=subscribe,proto3,oneof"` // Specify the paths within a subscription. } -func _SubscribeRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*SubscribeRequest) - // request - switch x := m.Request.(type) { - case *SubscribeRequest_Subscribe: - b.EncodeVarint(1<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Subscribe); err != nil { - return err - } - case *SubscribeRequest_Poll: - b.EncodeVarint(3<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Poll); err != nil { - return err - } - case *SubscribeRequest_Aliases: - b.EncodeVarint(4<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Aliases); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("SubscribeRequest.Request has unexpected type %T", x) - } - return nil +type SubscribeRequest_Poll struct { + Poll *Poll `protobuf:"bytes,3,opt,name=poll,proto3,oneof"` // Trigger a polled update. } -func _SubscribeRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*SubscribeRequest) - switch tag { - case 1: // request.subscribe - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SubscriptionList) - err := b.DecodeMessage(msg) - m.Request = &SubscribeRequest_Subscribe{msg} - return true, err - case 3: // request.poll - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Poll) - err := b.DecodeMessage(msg) - m.Request = &SubscribeRequest_Poll{msg} - return true, err - case 4: // request.aliases - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(AliasList) - err := b.DecodeMessage(msg) - m.Request = &SubscribeRequest_Aliases{msg} - return true, err - default: - return false, nil - } -} - -func _SubscribeRequest_OneofSizer(msg proto.Message) (n int) { - m := msg.(*SubscribeRequest) - // request - switch x := m.Request.(type) { - case *SubscribeRequest_Subscribe: - s := proto.Size(x.Subscribe) - n += proto.SizeVarint(1<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case *SubscribeRequest_Poll: - s := proto.Size(x.Poll) - n += proto.SizeVarint(3<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case *SubscribeRequest_Aliases: - s := proto.Size(x.Aliases) - n += proto.SizeVarint(4<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} +func (*SubscribeRequest_Subscribe) isSubscribeRequest_Request() {} + +func (*SubscribeRequest_Poll) isSubscribeRequest_Request() {} // Poll is sent within a SubscribeRequest to trigger the device to // send telemetry updates for the paths that are associated with the // subscription. // Reference: gNMI Specification Section Section 3.5.1.4 type Poll struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *Poll) Reset() { *m = Poll{} } -func (m *Poll) String() string { return proto.CompactTextString(m) } -func (*Poll) ProtoMessage() {} -func (*Poll) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } +func (x *Poll) Reset() { + *x = Poll{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Poll) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Poll) ProtoMessage() {} + +func (x *Poll) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Poll.ProtoReflect.Descriptor instead. +func (*Poll) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{10} +} // SubscribeResponse is the message used by the target within a Subscribe RPC. // The target includes a Notification message which is used to transmit values @@ -1127,36 +1272,51 @@ func (*Poll) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } // synchronized). // Reference: gNMI Specification Section 3.5.1.4 type SubscribeResponse struct { - // Types that are valid to be assigned to Response: + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Response: // *SubscribeResponse_Update // *SubscribeResponse_SyncResponse // *SubscribeResponse_Error Response isSubscribeResponse_Response `protobuf_oneof:"response"` // Extension messages associated with the SubscribeResponse. See the // gNMI extension specification for further definition. - Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension" json:"extension,omitempty"` + Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension,proto3" json:"extension,omitempty"` } -func (m *SubscribeResponse) Reset() { *m = SubscribeResponse{} } -func (m *SubscribeResponse) String() string { return proto.CompactTextString(m) } -func (*SubscribeResponse) ProtoMessage() {} -func (*SubscribeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } - -type isSubscribeResponse_Response interface{ isSubscribeResponse_Response() } - -type SubscribeResponse_Update struct { - Update *Notification `protobuf:"bytes,1,opt,name=update,oneof"` +func (x *SubscribeResponse) Reset() { + *x = SubscribeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type SubscribeResponse_SyncResponse struct { - SyncResponse bool `protobuf:"varint,3,opt,name=sync_response,json=syncResponse,oneof"` + +func (x *SubscribeResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -type SubscribeResponse_Error struct { - Error *Error `protobuf:"bytes,4,opt,name=error,oneof"` + +func (*SubscribeResponse) ProtoMessage() {} + +func (x *SubscribeResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (*SubscribeResponse_Update) isSubscribeResponse_Response() {} -func (*SubscribeResponse_SyncResponse) isSubscribeResponse_Response() {} -func (*SubscribeResponse_Error) isSubscribeResponse_Response() {} +// Deprecated: Use SubscribeResponse.ProtoReflect.Descriptor instead. +func (*SubscribeResponse) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{11} +} func (m *SubscribeResponse) GetResponse() isSubscribeResponse_Response { if m != nil { @@ -1165,219 +1325,177 @@ func (m *SubscribeResponse) GetResponse() isSubscribeResponse_Response { return nil } -func (m *SubscribeResponse) GetUpdate() *Notification { - if x, ok := m.GetResponse().(*SubscribeResponse_Update); ok { +func (x *SubscribeResponse) GetUpdate() *Notification { + if x, ok := x.GetResponse().(*SubscribeResponse_Update); ok { return x.Update } return nil } -func (m *SubscribeResponse) GetSyncResponse() bool { - if x, ok := m.GetResponse().(*SubscribeResponse_SyncResponse); ok { +func (x *SubscribeResponse) GetSyncResponse() bool { + if x, ok := x.GetResponse().(*SubscribeResponse_SyncResponse); ok { return x.SyncResponse } return false } -func (m *SubscribeResponse) GetError() *Error { - if x, ok := m.GetResponse().(*SubscribeResponse_Error); ok { +// Deprecated: Do not use. +func (x *SubscribeResponse) GetError() *Error { + if x, ok := x.GetResponse().(*SubscribeResponse_Error); ok { return x.Error } return nil } -func (m *SubscribeResponse) GetExtension() []*gnmi_ext.Extension { - if m != nil { - return m.Extension +func (x *SubscribeResponse) GetExtension() []*gnmi_ext.Extension { + if x != nil { + return x.Extension } return nil } -// XXX_OneofFuncs is for the internal use of the proto package. -func (*SubscribeResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _SubscribeResponse_OneofMarshaler, _SubscribeResponse_OneofUnmarshaler, _SubscribeResponse_OneofSizer, []interface{}{ - (*SubscribeResponse_Update)(nil), - (*SubscribeResponse_SyncResponse)(nil), - (*SubscribeResponse_Error)(nil), - } +type isSubscribeResponse_Response interface { + isSubscribeResponse_Response() } -func _SubscribeResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*SubscribeResponse) - // response - switch x := m.Response.(type) { - case *SubscribeResponse_Update: - b.EncodeVarint(1<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Update); err != nil { - return err - } - case *SubscribeResponse_SyncResponse: - t := uint64(0) - if x.SyncResponse { - t = 1 - } - b.EncodeVarint(3<<3 | proto.WireVarint) - b.EncodeVarint(t) - case *SubscribeResponse_Error: - b.EncodeVarint(4<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Error); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("SubscribeResponse.Response has unexpected type %T", x) - } - return nil +type SubscribeResponse_Update struct { + Update *Notification `protobuf:"bytes,1,opt,name=update,proto3,oneof"` // Changed or sampled value for a path. } -func _SubscribeResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*SubscribeResponse) - switch tag { - case 1: // response.update - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Notification) - err := b.DecodeMessage(msg) - m.Response = &SubscribeResponse_Update{msg} - return true, err - case 3: // response.sync_response - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Response = &SubscribeResponse_SyncResponse{x != 0} - return true, err - case 4: // response.error - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Error) - err := b.DecodeMessage(msg) - m.Response = &SubscribeResponse_Error{msg} - return true, err - default: - return false, nil - } -} - -func _SubscribeResponse_OneofSizer(msg proto.Message) (n int) { - m := msg.(*SubscribeResponse) - // response - switch x := m.Response.(type) { - case *SubscribeResponse_Update: - s := proto.Size(x.Update) - n += proto.SizeVarint(1<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case *SubscribeResponse_SyncResponse: - n += proto.SizeVarint(3<<3 | proto.WireVarint) - n += 1 - case *SubscribeResponse_Error: - s := proto.Size(x.Error) - n += proto.SizeVarint(4<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n +type SubscribeResponse_SyncResponse struct { + // Indicate target has sent all values associated with the subscription + // at least once. + SyncResponse bool `protobuf:"varint,3,opt,name=sync_response,json=syncResponse,proto3,oneof"` } +type SubscribeResponse_Error struct { + // Deprecated in favour of google.golang.org/genproto/googleapis/rpc/status + // + // Deprecated: Do not use. + Error *Error `protobuf:"bytes,4,opt,name=error,proto3,oneof"` +} + +func (*SubscribeResponse_Update) isSubscribeResponse_Response() {} + +func (*SubscribeResponse_SyncResponse) isSubscribeResponse_Response() {} + +func (*SubscribeResponse_Error) isSubscribeResponse_Response() {} + // SubscriptionList is used within a Subscribe message to specify the list of // paths that the client wishes to subscribe to. The message consists of a // list of (possibly prefixed) paths, and options that relate to the // subscription. // Reference: gNMI Specification Section 3.5.1.2 type SubscriptionList struct { - Prefix *Path `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"` - Subscription []*Subscription `protobuf:"bytes,2,rep,name=subscription" json:"subscription,omitempty"` - // Whether target defined aliases are allowed within the subscription. - UseAliases bool `protobuf:"varint,3,opt,name=use_aliases,json=useAliases" json:"use_aliases,omitempty"` - Qos *QOSMarking `protobuf:"bytes,4,opt,name=qos" json:"qos,omitempty"` - Mode SubscriptionList_Mode `protobuf:"varint,5,opt,name=mode,enum=gnmi.SubscriptionList_Mode" json:"mode,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Prefix *Path `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"` // Prefix used for paths. + Subscription []*Subscription `protobuf:"bytes,2,rep,name=subscription,proto3" json:"subscription,omitempty"` // Set of subscriptions to create. + Qos *QOSMarking `protobuf:"bytes,4,opt,name=qos,proto3" json:"qos,omitempty"` // DSCP marking to be used. + Mode SubscriptionList_Mode `protobuf:"varint,5,opt,name=mode,proto3,enum=gnmi.SubscriptionList_Mode" json:"mode,omitempty"` // Whether elements of the schema that are marked as eligible for aggregation // should be aggregated or not. - AllowAggregation bool `protobuf:"varint,6,opt,name=allow_aggregation,json=allowAggregation" json:"allow_aggregation,omitempty"` + AllowAggregation bool `protobuf:"varint,6,opt,name=allow_aggregation,json=allowAggregation,proto3" json:"allow_aggregation,omitempty"` // The set of schemas that define the elements of the data tree that should // be sent by the target. - UseModels []*ModelData `protobuf:"bytes,7,rep,name=use_models,json=useModels" json:"use_models,omitempty"` + UseModels []*ModelData `protobuf:"bytes,7,rep,name=use_models,json=useModels,proto3" json:"use_models,omitempty"` // The encoding that the target should use within the Notifications generated // corresponding to the SubscriptionList. - Encoding Encoding `protobuf:"varint,8,opt,name=encoding,enum=gnmi.Encoding" json:"encoding,omitempty"` + Encoding Encoding `protobuf:"varint,8,opt,name=encoding,proto3,enum=gnmi.Encoding" json:"encoding,omitempty"` // An optional field to specify that only updates to current state should be // sent to a client. If set, the initial state is not sent to the client but // rather only the sync message followed by any subsequent updates to the // current state. For ONCE and POLL modes, this causes the server to send only // the sync message (Sec. 3.5.2.3). - UpdatesOnly bool `protobuf:"varint,9,opt,name=updates_only,json=updatesOnly" json:"updates_only,omitempty"` + UpdatesOnly bool `protobuf:"varint,9,opt,name=updates_only,json=updatesOnly,proto3" json:"updates_only,omitempty"` +} + +func (x *SubscriptionList) Reset() { + *x = SubscriptionList{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscriptionList) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SubscriptionList) Reset() { *m = SubscriptionList{} } -func (m *SubscriptionList) String() string { return proto.CompactTextString(m) } -func (*SubscriptionList) ProtoMessage() {} -func (*SubscriptionList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } +func (*SubscriptionList) ProtoMessage() {} -func (m *SubscriptionList) GetPrefix() *Path { - if m != nil { - return m.Prefix +func (x *SubscriptionList) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *SubscriptionList) GetSubscription() []*Subscription { - if m != nil { - return m.Subscription +// Deprecated: Use SubscriptionList.ProtoReflect.Descriptor instead. +func (*SubscriptionList) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{12} +} + +func (x *SubscriptionList) GetPrefix() *Path { + if x != nil { + return x.Prefix } return nil } -func (m *SubscriptionList) GetUseAliases() bool { - if m != nil { - return m.UseAliases +func (x *SubscriptionList) GetSubscription() []*Subscription { + if x != nil { + return x.Subscription } - return false + return nil } -func (m *SubscriptionList) GetQos() *QOSMarking { - if m != nil { - return m.Qos +func (x *SubscriptionList) GetQos() *QOSMarking { + if x != nil { + return x.Qos } return nil } -func (m *SubscriptionList) GetMode() SubscriptionList_Mode { - if m != nil { - return m.Mode +func (x *SubscriptionList) GetMode() SubscriptionList_Mode { + if x != nil { + return x.Mode } return SubscriptionList_STREAM } -func (m *SubscriptionList) GetAllowAggregation() bool { - if m != nil { - return m.AllowAggregation +func (x *SubscriptionList) GetAllowAggregation() bool { + if x != nil { + return x.AllowAggregation } return false } -func (m *SubscriptionList) GetUseModels() []*ModelData { - if m != nil { - return m.UseModels +func (x *SubscriptionList) GetUseModels() []*ModelData { + if x != nil { + return x.UseModels } return nil } -func (m *SubscriptionList) GetEncoding() Encoding { - if m != nil { - return m.Encoding +func (x *SubscriptionList) GetEncoding() Encoding { + if x != nil { + return x.Encoding } return Encoding_JSON } -func (m *SubscriptionList) GetUpdatesOnly() bool { - if m != nil { - return m.UpdatesOnly +func (x *SubscriptionList) GetUpdatesOnly() bool { + if x != nil { + return x.UpdatesOnly } return false } @@ -1388,54 +1506,85 @@ func (m *SubscriptionList) GetUpdatesOnly() bool { // should trigger updates to be sent. // Reference: gNMI Specification Section 3.5.1.3 type Subscription struct { - Path *Path `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"` - Mode SubscriptionMode `protobuf:"varint,2,opt,name=mode,enum=gnmi.SubscriptionMode" json:"mode,omitempty"` - SampleInterval uint64 `protobuf:"varint,3,opt,name=sample_interval,json=sampleInterval" json:"sample_interval,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Path *Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` // The data tree path. + Mode SubscriptionMode `protobuf:"varint,2,opt,name=mode,proto3,enum=gnmi.SubscriptionMode" json:"mode,omitempty"` // Subscription mode to be used. + SampleInterval uint64 `protobuf:"varint,3,opt,name=sample_interval,json=sampleInterval,proto3" json:"sample_interval,omitempty"` // ns between samples in SAMPLE mode. // Indicates whether values that have not changed should be sent in a SAMPLE // subscription. - SuppressRedundant bool `protobuf:"varint,4,opt,name=suppress_redundant,json=suppressRedundant" json:"suppress_redundant,omitempty"` + SuppressRedundant bool `protobuf:"varint,4,opt,name=suppress_redundant,json=suppressRedundant,proto3" json:"suppress_redundant,omitempty"` // Specifies the maximum allowable silent period in nanoseconds when // suppress_redundant is in use. The target should send a value at least once // in the period specified. - HeartbeatInterval uint64 `protobuf:"varint,5,opt,name=heartbeat_interval,json=heartbeatInterval" json:"heartbeat_interval,omitempty"` + HeartbeatInterval uint64 `protobuf:"varint,5,opt,name=heartbeat_interval,json=heartbeatInterval,proto3" json:"heartbeat_interval,omitempty"` } -func (m *Subscription) Reset() { *m = Subscription{} } -func (m *Subscription) String() string { return proto.CompactTextString(m) } -func (*Subscription) ProtoMessage() {} -func (*Subscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } +func (x *Subscription) Reset() { + *x = Subscription{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (m *Subscription) GetPath() *Path { - if m != nil { - return m.Path +func (x *Subscription) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Subscription) ProtoMessage() {} + +func (x *Subscription) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Subscription.ProtoReflect.Descriptor instead. +func (*Subscription) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{13} +} + +func (x *Subscription) GetPath() *Path { + if x != nil { + return x.Path } return nil } -func (m *Subscription) GetMode() SubscriptionMode { - if m != nil { - return m.Mode +func (x *Subscription) GetMode() SubscriptionMode { + if x != nil { + return x.Mode } return SubscriptionMode_TARGET_DEFINED } -func (m *Subscription) GetSampleInterval() uint64 { - if m != nil { - return m.SampleInterval +func (x *Subscription) GetSampleInterval() uint64 { + if x != nil { + return x.SampleInterval } return 0 } -func (m *Subscription) GetSuppressRedundant() bool { - if m != nil { - return m.SuppressRedundant +func (x *Subscription) GetSuppressRedundant() bool { + if x != nil { + return x.SuppressRedundant } return false } -func (m *Subscription) GetHeartbeatInterval() uint64 { - if m != nil { - return m.HeartbeatInterval +func (x *Subscription) GetHeartbeatInterval() uint64 { + if x != nil { + return x.HeartbeatInterval } return 0 } @@ -1444,67 +1593,50 @@ func (m *Subscription) GetHeartbeatInterval() uint64 { // updates from the target. // Reference: gNMI Specification Section 3.5.1.2 type QOSMarking struct { - Marking uint32 `protobuf:"varint,1,opt,name=marking" json:"marking,omitempty"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *QOSMarking) Reset() { *m = QOSMarking{} } -func (m *QOSMarking) String() string { return proto.CompactTextString(m) } -func (*QOSMarking) ProtoMessage() {} -func (*QOSMarking) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } + Marking uint32 `protobuf:"varint,1,opt,name=marking,proto3" json:"marking,omitempty"` +} -func (m *QOSMarking) GetMarking() uint32 { - if m != nil { - return m.Marking +func (x *QOSMarking) Reset() { + *x = QOSMarking{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -// Alias specifies a data tree path, and an associated string which defines an -// alias which is to be used for this path in the context of the RPC. The alias -// is specified as a string which is prefixed with "#" to disambiguate it from -// data tree element paths. -// Reference: gNMI Specification Section 2.4.2 -type Alias struct { - Path *Path `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"` - Alias string `protobuf:"bytes,2,opt,name=alias" json:"alias,omitempty"` +func (x *QOSMarking) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *Alias) Reset() { *m = Alias{} } -func (m *Alias) String() string { return proto.CompactTextString(m) } -func (*Alias) ProtoMessage() {} -func (*Alias) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } - -func (m *Alias) GetPath() *Path { - if m != nil { - return m.Path - } - return nil -} +func (*QOSMarking) ProtoMessage() {} -func (m *Alias) GetAlias() string { - if m != nil { - return m.Alias +func (x *QOSMarking) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -// AliasList specifies a list of aliases. It is used in a SubscribeRequest for -// a client to create a set of aliases that the target is to utilize. -// Reference: gNMI Specification Section 3.5.1.6 -type AliasList struct { - Alias []*Alias `protobuf:"bytes,1,rep,name=alias" json:"alias,omitempty"` +// Deprecated: Use QOSMarking.ProtoReflect.Descriptor instead. +func (*QOSMarking) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{14} } -func (m *AliasList) Reset() { *m = AliasList{} } -func (m *AliasList) String() string { return proto.CompactTextString(m) } -func (*AliasList) ProtoMessage() {} -func (*AliasList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } - -func (m *AliasList) GetAlias() []*Alias { - if m != nil { - return m.Alias +func (x *QOSMarking) GetMarking() uint32 { + if x != nil { + return x.Marking } - return nil + return 0 } // SetRequest is sent from a client to the target to update values in the data @@ -1515,51 +1647,82 @@ func (m *AliasList) GetAlias() []*Alias { // a single SetRequest are considered to be a transaction. // Reference: gNMI Specification Section 3.4.1 type SetRequest struct { - Prefix *Path `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"` - Delete []*Path `protobuf:"bytes,2,rep,name=delete" json:"delete,omitempty"` - Replace []*Update `protobuf:"bytes,3,rep,name=replace" json:"replace,omitempty"` - Update []*Update `protobuf:"bytes,4,rep,name=update" json:"update,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Prefix *Path `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"` // Prefix used for paths in the message. + Delete []*Path `protobuf:"bytes,2,rep,name=delete,proto3" json:"delete,omitempty"` // Paths to be deleted from the data tree. + Replace []*Update `protobuf:"bytes,3,rep,name=replace,proto3" json:"replace,omitempty"` // Updates specifying elements to be replaced. + Update []*Update `protobuf:"bytes,4,rep,name=update,proto3" json:"update,omitempty"` // Updates specifying elements to updated. // Extension messages associated with the SetRequest. See the // gNMI extension specification for further definition. - Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension" json:"extension,omitempty"` + Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension,proto3" json:"extension,omitempty"` } -func (m *SetRequest) Reset() { *m = SetRequest{} } -func (m *SetRequest) String() string { return proto.CompactTextString(m) } -func (*SetRequest) ProtoMessage() {} -func (*SetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } +func (x *SetRequest) Reset() { + *x = SetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (m *SetRequest) GetPrefix() *Path { - if m != nil { - return m.Prefix +func (x *SetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetRequest) ProtoMessage() {} + +func (x *SetRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetRequest.ProtoReflect.Descriptor instead. +func (*SetRequest) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{15} +} + +func (x *SetRequest) GetPrefix() *Path { + if x != nil { + return x.Prefix } return nil } -func (m *SetRequest) GetDelete() []*Path { - if m != nil { - return m.Delete +func (x *SetRequest) GetDelete() []*Path { + if x != nil { + return x.Delete } return nil } -func (m *SetRequest) GetReplace() []*Update { - if m != nil { - return m.Replace +func (x *SetRequest) GetReplace() []*Update { + if x != nil { + return x.Replace } return nil } -func (m *SetRequest) GetUpdate() []*Update { - if m != nil { - return m.Update +func (x *SetRequest) GetUpdate() []*Update { + if x != nil { + return x.Update } return nil } -func (m *SetRequest) GetExtension() []*gnmi_ext.Extension { - if m != nil { - return m.Extension +func (x *SetRequest) GetExtension() []*gnmi_ext.Extension { + if x != nil { + return x.Extension } return nil } @@ -1572,53 +1735,86 @@ func (m *SetRequest) GetExtension() []*gnmi_ext.Extension { // details where required. // Reference: gNMI Specification Section 3.4.2 type SetResponse struct { - Prefix *Path `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Prefix *Path `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"` // Prefix used for paths. // A set of responses specifying the result of the operations specified in // the SetRequest. - Response []*UpdateResult `protobuf:"bytes,2,rep,name=response" json:"response,omitempty"` - Message *Error `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"` - Timestamp int64 `protobuf:"varint,4,opt,name=timestamp" json:"timestamp,omitempty"` + Response []*UpdateResult `protobuf:"bytes,2,rep,name=response,proto3" json:"response,omitempty"` + // Deprecated: Do not use. + Message *Error `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` // The overall status of the transaction. + Timestamp int64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp of transaction (ns since epoch). // Extension messages associated with the SetResponse. See the // gNMI extension specification for further definition. - Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension" json:"extension,omitempty"` + Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension,proto3" json:"extension,omitempty"` +} + +func (x *SetResponse) Reset() { + *x = SetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SetResponse) Reset() { *m = SetResponse{} } -func (m *SetResponse) String() string { return proto.CompactTextString(m) } -func (*SetResponse) ProtoMessage() {} -func (*SetResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } +func (x *SetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} -func (m *SetResponse) GetPrefix() *Path { - if m != nil { - return m.Prefix +func (*SetResponse) ProtoMessage() {} + +func (x *SetResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetResponse.ProtoReflect.Descriptor instead. +func (*SetResponse) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{16} +} + +func (x *SetResponse) GetPrefix() *Path { + if x != nil { + return x.Prefix } return nil } -func (m *SetResponse) GetResponse() []*UpdateResult { - if m != nil { - return m.Response +func (x *SetResponse) GetResponse() []*UpdateResult { + if x != nil { + return x.Response } return nil } -func (m *SetResponse) GetMessage() *Error { - if m != nil { - return m.Message +// Deprecated: Do not use. +func (x *SetResponse) GetMessage() *Error { + if x != nil { + return x.Message } return nil } -func (m *SetResponse) GetTimestamp() int64 { - if m != nil { - return m.Timestamp +func (x *SetResponse) GetTimestamp() int64 { + if x != nil { + return x.Timestamp } return 0 } -func (m *SetResponse) GetExtension() []*gnmi_ext.Extension { - if m != nil { - return m.Extension +func (x *SetResponse) GetExtension() []*gnmi_ext.Extension { + if x != nil { + return x.Extension } return nil } @@ -1627,45 +1823,81 @@ func (m *SetResponse) GetExtension() []*gnmi_ext.Extension { // result of an operation specified within a SetRequest message. // Reference: gNMI Specification Section 3.4.2 type UpdateResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Deprecated timestamp for the UpdateResult, this field has been // replaced by the timestamp within the SetResponse message, since // all mutations effected by a set should be applied as a single // transaction. - Timestamp int64 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"` - Path *Path `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"` - Message *Error `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"` - Op UpdateResult_Operation `protobuf:"varint,4,opt,name=op,enum=gnmi.UpdateResult_Operation" json:"op,omitempty"` + // + // Deprecated: Do not use. + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Path *Path `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` // Path associated with the update. + // Deprecated: Do not use. + Message *Error `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` // Status of the update operation. + Op UpdateResult_Operation `protobuf:"varint,4,opt,name=op,proto3,enum=gnmi.UpdateResult_Operation" json:"op,omitempty"` // Update operation type. +} + +func (x *UpdateResult) Reset() { + *x = UpdateResult{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateResult) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *UpdateResult) Reset() { *m = UpdateResult{} } -func (m *UpdateResult) String() string { return proto.CompactTextString(m) } -func (*UpdateResult) ProtoMessage() {} -func (*UpdateResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } +func (*UpdateResult) ProtoMessage() {} -func (m *UpdateResult) GetTimestamp() int64 { - if m != nil { - return m.Timestamp +func (x *UpdateResult) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateResult.ProtoReflect.Descriptor instead. +func (*UpdateResult) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{17} +} + +// Deprecated: Do not use. +func (x *UpdateResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp } return 0 } -func (m *UpdateResult) GetPath() *Path { - if m != nil { - return m.Path +func (x *UpdateResult) GetPath() *Path { + if x != nil { + return x.Path } return nil } -func (m *UpdateResult) GetMessage() *Error { - if m != nil { - return m.Message +// Deprecated: Do not use. +func (x *UpdateResult) GetMessage() *Error { + if x != nil { + return x.Message } return nil } -func (m *UpdateResult) GetOp() UpdateResult_Operation { - if m != nil { - return m.Op +func (x *UpdateResult) GetOp() UpdateResult_Operation { + if x != nil { + return x.Op } return UpdateResult_INVALID } @@ -1677,59 +1909,90 @@ func (m *UpdateResult) GetOp() UpdateResult_Operation { // must use all schema models that it has. // Reference: gNMI Specification Section 3.3.1 type GetRequest struct { - Prefix *Path `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"` - Path []*Path `protobuf:"bytes,2,rep,name=path" json:"path,omitempty"` - Type GetRequest_DataType `protobuf:"varint,3,opt,name=type,enum=gnmi.GetRequest_DataType" json:"type,omitempty"` - Encoding Encoding `protobuf:"varint,5,opt,name=encoding,enum=gnmi.Encoding" json:"encoding,omitempty"` - UseModels []*ModelData `protobuf:"bytes,6,rep,name=use_models,json=useModels" json:"use_models,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Prefix *Path `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"` // Prefix used for paths. + Path []*Path `protobuf:"bytes,2,rep,name=path,proto3" json:"path,omitempty"` // Paths requested by the client. + Type GetRequest_DataType `protobuf:"varint,3,opt,name=type,proto3,enum=gnmi.GetRequest_DataType" json:"type,omitempty"` // The type of data being requested. + Encoding Encoding `protobuf:"varint,5,opt,name=encoding,proto3,enum=gnmi.Encoding" json:"encoding,omitempty"` // Encoding to be used. + UseModels []*ModelData `protobuf:"bytes,6,rep,name=use_models,json=useModels,proto3" json:"use_models,omitempty"` // The schema models to be used. // Extension messages associated with the GetRequest. See the // gNMI extension specification for further definition. - Extension []*gnmi_ext.Extension `protobuf:"bytes,7,rep,name=extension" json:"extension,omitempty"` + Extension []*gnmi_ext.Extension `protobuf:"bytes,7,rep,name=extension,proto3" json:"extension,omitempty"` } -func (m *GetRequest) Reset() { *m = GetRequest{} } -func (m *GetRequest) String() string { return proto.CompactTextString(m) } -func (*GetRequest) ProtoMessage() {} -func (*GetRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } +func (x *GetRequest) Reset() { + *x = GetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (m *GetRequest) GetPrefix() *Path { - if m != nil { - return m.Prefix +func (x *GetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRequest) ProtoMessage() {} + +func (x *GetRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_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 GetRequest.ProtoReflect.Descriptor instead. +func (*GetRequest) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{18} +} + +func (x *GetRequest) GetPrefix() *Path { + if x != nil { + return x.Prefix } return nil } -func (m *GetRequest) GetPath() []*Path { - if m != nil { - return m.Path +func (x *GetRequest) GetPath() []*Path { + if x != nil { + return x.Path } return nil } -func (m *GetRequest) GetType() GetRequest_DataType { - if m != nil { - return m.Type +func (x *GetRequest) GetType() GetRequest_DataType { + if x != nil { + return x.Type } return GetRequest_ALL } -func (m *GetRequest) GetEncoding() Encoding { - if m != nil { - return m.Encoding +func (x *GetRequest) GetEncoding() Encoding { + if x != nil { + return x.Encoding } return Encoding_JSON } -func (m *GetRequest) GetUseModels() []*ModelData { - if m != nil { - return m.UseModels +func (x *GetRequest) GetUseModels() []*ModelData { + if x != nil { + return x.UseModels } return nil } -func (m *GetRequest) GetExtension() []*gnmi_ext.Extension { - if m != nil { - return m.Extension +func (x *GetRequest) GetExtension() []*gnmi_ext.Extension { + if x != nil { + return x.Extension } return nil } @@ -1739,35 +2002,68 @@ func (m *GetRequest) GetExtension() []*gnmi_ext.Extension { // by the client in the GetRequest. // Reference: gNMI Specification Section 3.3.2 type GetResponse struct { - Notification []*Notification `protobuf:"bytes,1,rep,name=notification" json:"notification,omitempty"` - Error *Error `protobuf:"bytes,2,opt,name=error" json:"error,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Notification []*Notification `protobuf:"bytes,1,rep,name=notification,proto3" json:"notification,omitempty"` // Data values. + // Deprecated: Do not use. + Error *Error `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Errors that occurred in the Get. // Extension messages associated with the GetResponse. See the // gNMI extension specification for further definition. - Extension []*gnmi_ext.Extension `protobuf:"bytes,3,rep,name=extension" json:"extension,omitempty"` + Extension []*gnmi_ext.Extension `protobuf:"bytes,3,rep,name=extension,proto3" json:"extension,omitempty"` +} + +func (x *GetResponse) Reset() { + *x = GetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetResponse) Reset() { *m = GetResponse{} } -func (m *GetResponse) String() string { return proto.CompactTextString(m) } -func (*GetResponse) ProtoMessage() {} -func (*GetResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } +func (x *GetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} -func (m *GetResponse) GetNotification() []*Notification { - if m != nil { - return m.Notification +func (*GetResponse) ProtoMessage() {} + +func (x *GetResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetResponse.ProtoReflect.Descriptor instead. +func (*GetResponse) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{19} +} + +func (x *GetResponse) GetNotification() []*Notification { + if x != nil { + return x.Notification } return nil } -func (m *GetResponse) GetError() *Error { - if m != nil { - return m.Error +// Deprecated: Do not use. +func (x *GetResponse) GetError() *Error { + if x != nil { + return x.Error } return nil } -func (m *GetResponse) GetExtension() []*gnmi_ext.Extension { - if m != nil { - return m.Extension +func (x *GetResponse) GetExtension() []*gnmi_ext.Extension { + if x != nil { + return x.Extension } return nil } @@ -1776,19 +2072,50 @@ func (m *GetResponse) GetExtension() []*gnmi_ext.Extension { // that the target reports its capabilities. // Reference: gNMI Specification Section 3.2.1 type CapabilityRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Extension messages associated with the CapabilityRequest. See the // gNMI extension specification for further definition. - Extension []*gnmi_ext.Extension `protobuf:"bytes,1,rep,name=extension" json:"extension,omitempty"` + Extension []*gnmi_ext.Extension `protobuf:"bytes,1,rep,name=extension,proto3" json:"extension,omitempty"` +} + +func (x *CapabilityRequest) Reset() { + *x = CapabilityRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CapabilityRequest) Reset() { *m = CapabilityRequest{} } -func (m *CapabilityRequest) String() string { return proto.CompactTextString(m) } -func (*CapabilityRequest) ProtoMessage() {} -func (*CapabilityRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } +func (x *CapabilityRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} -func (m *CapabilityRequest) GetExtension() []*gnmi_ext.Extension { - if m != nil { - return m.Extension +func (*CapabilityRequest) ProtoMessage() {} + +func (x *CapabilityRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CapabilityRequest.ProtoReflect.Descriptor instead. +func (*CapabilityRequest) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{20} +} + +func (x *CapabilityRequest) GetExtension() []*gnmi_ext.Extension { + if x != nil { + return x.Extension } return nil } @@ -1797,43 +2124,74 @@ func (m *CapabilityRequest) GetExtension() []*gnmi_ext.Extension { // client within the Capabilities RPC. // Reference: gNMI Specification Section 3.2.2 type CapabilityResponse struct { - SupportedModels []*ModelData `protobuf:"bytes,1,rep,name=supported_models,json=supportedModels" json:"supported_models,omitempty"` - SupportedEncodings []Encoding `protobuf:"varint,2,rep,packed,name=supported_encodings,json=supportedEncodings,enum=gnmi.Encoding" json:"supported_encodings,omitempty"` - GNMIVersion string `protobuf:"bytes,3,opt,name=gNMI_version,json=gNMIVersion" json:"gNMI_version,omitempty"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SupportedModels []*ModelData `protobuf:"bytes,1,rep,name=supported_models,json=supportedModels,proto3" json:"supported_models,omitempty"` // Supported schema models. + SupportedEncodings []Encoding `protobuf:"varint,2,rep,packed,name=supported_encodings,json=supportedEncodings,proto3,enum=gnmi.Encoding" json:"supported_encodings,omitempty"` // Supported encodings. + GNMIVersion string `protobuf:"bytes,3,opt,name=gNMI_version,json=gNMIVersion,proto3" json:"gNMI_version,omitempty"` // Supported gNMI version. // Extension messages associated with the CapabilityResponse. See the // gNMI extension specification for further definition. - Extension []*gnmi_ext.Extension `protobuf:"bytes,4,rep,name=extension" json:"extension,omitempty"` + Extension []*gnmi_ext.Extension `protobuf:"bytes,4,rep,name=extension,proto3" json:"extension,omitempty"` } -func (m *CapabilityResponse) Reset() { *m = CapabilityResponse{} } -func (m *CapabilityResponse) String() string { return proto.CompactTextString(m) } -func (*CapabilityResponse) ProtoMessage() {} -func (*CapabilityResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } +func (x *CapabilityResponse) Reset() { + *x = CapabilityResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (m *CapabilityResponse) GetSupportedModels() []*ModelData { - if m != nil { - return m.SupportedModels +func (x *CapabilityResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CapabilityResponse) ProtoMessage() {} + +func (x *CapabilityResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_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 CapabilityResponse.ProtoReflect.Descriptor instead. +func (*CapabilityResponse) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{21} +} + +func (x *CapabilityResponse) GetSupportedModels() []*ModelData { + if x != nil { + return x.SupportedModels } return nil } -func (m *CapabilityResponse) GetSupportedEncodings() []Encoding { - if m != nil { - return m.SupportedEncodings +func (x *CapabilityResponse) GetSupportedEncodings() []Encoding { + if x != nil { + return x.SupportedEncodings } return nil } -func (m *CapabilityResponse) GetGNMIVersion() string { - if m != nil { - return m.GNMIVersion +func (x *CapabilityResponse) GetGNMIVersion() string { + if x != nil { + return x.GNMIVersion } return "" } -func (m *CapabilityResponse) GetExtension() []*gnmi_ext.Extension { - if m != nil { - return m.Extension +func (x *CapabilityResponse) GetExtension() []*gnmi_ext.Extension { + if x != nil { + return x.Extension } return nil } @@ -1844,448 +2202,836 @@ func (m *CapabilityResponse) GetExtension() []*gnmi_ext.Extension { // the set of models from which data tree elements should be reported. // Reference: gNMI Specification Section 3.2.3 type ModelData struct { - Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Organization string `protobuf:"bytes,2,opt,name=organization" json:"organization,omitempty"` - Version string `protobuf:"bytes,3,opt,name=version" json:"version,omitempty"` -} - -func (m *ModelData) Reset() { *m = ModelData{} } -func (m *ModelData) String() string { return proto.CompactTextString(m) } -func (*ModelData) ProtoMessage() {} -func (*ModelData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } - -func (m *ModelData) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *ModelData) GetOrganization() string { - if m != nil { - return m.Organization - } - return "" -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *ModelData) GetVersion() string { - if m != nil { - return m.Version - } - return "" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Name of the model. + Organization string `protobuf:"bytes,2,opt,name=organization,proto3" json:"organization,omitempty"` // Organization publishing the model. + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` // Semantic version of the model. } -var E_GnmiService = &proto.ExtensionDesc{ - ExtendedType: (*google_protobuf1.FileOptions)(nil), - ExtensionType: (*string)(nil), - Field: 1001, - Name: "gnmi.gnmi_service", - Tag: "bytes,1001,opt,name=gnmi_service,json=gnmiService", - Filename: "gnmi.proto", -} - -func init() { - proto.RegisterType((*Notification)(nil), "gnmi.Notification") - proto.RegisterType((*Update)(nil), "gnmi.Update") - proto.RegisterType((*TypedValue)(nil), "gnmi.TypedValue") - proto.RegisterType((*Path)(nil), "gnmi.Path") - proto.RegisterType((*PathElem)(nil), "gnmi.PathElem") - proto.RegisterType((*Value)(nil), "gnmi.Value") - proto.RegisterType((*Error)(nil), "gnmi.Error") - proto.RegisterType((*Decimal64)(nil), "gnmi.Decimal64") - proto.RegisterType((*ScalarArray)(nil), "gnmi.ScalarArray") - proto.RegisterType((*SubscribeRequest)(nil), "gnmi.SubscribeRequest") - proto.RegisterType((*Poll)(nil), "gnmi.Poll") - proto.RegisterType((*SubscribeResponse)(nil), "gnmi.SubscribeResponse") - proto.RegisterType((*SubscriptionList)(nil), "gnmi.SubscriptionList") - proto.RegisterType((*Subscription)(nil), "gnmi.Subscription") - proto.RegisterType((*QOSMarking)(nil), "gnmi.QOSMarking") - proto.RegisterType((*Alias)(nil), "gnmi.Alias") - proto.RegisterType((*AliasList)(nil), "gnmi.AliasList") - proto.RegisterType((*SetRequest)(nil), "gnmi.SetRequest") - proto.RegisterType((*SetResponse)(nil), "gnmi.SetResponse") - proto.RegisterType((*UpdateResult)(nil), "gnmi.UpdateResult") - proto.RegisterType((*GetRequest)(nil), "gnmi.GetRequest") - proto.RegisterType((*GetResponse)(nil), "gnmi.GetResponse") - proto.RegisterType((*CapabilityRequest)(nil), "gnmi.CapabilityRequest") - proto.RegisterType((*CapabilityResponse)(nil), "gnmi.CapabilityResponse") - proto.RegisterType((*ModelData)(nil), "gnmi.ModelData") - proto.RegisterEnum("gnmi.Encoding", Encoding_name, Encoding_value) - proto.RegisterEnum("gnmi.SubscriptionMode", SubscriptionMode_name, SubscriptionMode_value) - proto.RegisterEnum("gnmi.SubscriptionList_Mode", SubscriptionList_Mode_name, SubscriptionList_Mode_value) - proto.RegisterEnum("gnmi.UpdateResult_Operation", UpdateResult_Operation_name, UpdateResult_Operation_value) - proto.RegisterEnum("gnmi.GetRequest_DataType", GetRequest_DataType_name, GetRequest_DataType_value) - proto.RegisterExtension(E_GnmiService) -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// Client API for GNMI service - -type GNMIClient interface { - // Capabilities allows the client to retrieve the set of capabilities that - // is supported by the target. This allows the target to validate the - // service version that is implemented and retrieve the set of models that - // the target supports. The models can then be specified in subsequent RPCs - // to restrict the set of data that is utilized. - // Reference: gNMI Specification Section 3.2 - Capabilities(ctx context.Context, in *CapabilityRequest, opts ...grpc.CallOption) (*CapabilityResponse, error) - // Retrieve a snapshot of data from the target. A Get RPC requests that the - // target snapshots a subset of the data tree as specified by the paths - // included in the message and serializes this to be returned to the - // client using the specified encoding. - // Reference: gNMI Specification Section 3.3 - Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) - // Set allows the client to modify the state of data on the target. The - // paths to modified along with the new values that the client wishes - // to set the value to. - // Reference: gNMI Specification Section 3.4 - Set(ctx context.Context, in *SetRequest, opts ...grpc.CallOption) (*SetResponse, error) - // Subscribe allows a client to request the target to send it values - // of particular paths within the data tree. These values may be streamed - // at a particular cadence (STREAM), sent one off on a long-lived channel - // (POLL), or sent as a one-off retrieval (ONCE). - // Reference: gNMI Specification Section 3.5 - Subscribe(ctx context.Context, opts ...grpc.CallOption) (GNMI_SubscribeClient, error) -} - -type gNMIClient struct { - cc *grpc.ClientConn -} - -func NewGNMIClient(cc *grpc.ClientConn) GNMIClient { - return &gNMIClient{cc} -} - -func (c *gNMIClient) Capabilities(ctx context.Context, in *CapabilityRequest, opts ...grpc.CallOption) (*CapabilityResponse, error) { - out := new(CapabilityResponse) - err := grpc.Invoke(ctx, "/gnmi.gNMI/Capabilities", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *gNMIClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) { - out := new(GetResponse) - err := grpc.Invoke(ctx, "/gnmi.gNMI/Get", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *gNMIClient) Set(ctx context.Context, in *SetRequest, opts ...grpc.CallOption) (*SetResponse, error) { - out := new(SetResponse) - err := grpc.Invoke(ctx, "/gnmi.gNMI/Set", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *gNMIClient) Subscribe(ctx context.Context, opts ...grpc.CallOption) (GNMI_SubscribeClient, error) { - stream, err := grpc.NewClientStream(ctx, &_GNMI_serviceDesc.Streams[0], c.cc, "/gnmi.gNMI/Subscribe", opts...) - if err != nil { - return nil, err +func (x *ModelData) Reset() { + *x = ModelData{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gnmi_gnmi_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - x := &gNMISubscribeClient{stream} - return x, nil -} - -type GNMI_SubscribeClient interface { - Send(*SubscribeRequest) error - Recv() (*SubscribeResponse, error) - grpc.ClientStream } -type gNMISubscribeClient struct { - grpc.ClientStream +func (x *ModelData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *gNMISubscribeClient) Send(m *SubscribeRequest) error { - return x.ClientStream.SendMsg(m) -} +func (*ModelData) ProtoMessage() {} -func (x *gNMISubscribeClient) Recv() (*SubscribeResponse, error) { - m := new(SubscribeResponse) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err +func (x *ModelData) ProtoReflect() protoreflect.Message { + mi := &file_proto_gnmi_gnmi_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 m, nil -} - -// Server API for GNMI service - -type GNMIServer interface { - // Capabilities allows the client to retrieve the set of capabilities that - // is supported by the target. This allows the target to validate the - // service version that is implemented and retrieve the set of models that - // the target supports. The models can then be specified in subsequent RPCs - // to restrict the set of data that is utilized. - // Reference: gNMI Specification Section 3.2 - Capabilities(context.Context, *CapabilityRequest) (*CapabilityResponse, error) - // Retrieve a snapshot of data from the target. A Get RPC requests that the - // target snapshots a subset of the data tree as specified by the paths - // included in the message and serializes this to be returned to the - // client using the specified encoding. - // Reference: gNMI Specification Section 3.3 - Get(context.Context, *GetRequest) (*GetResponse, error) - // Set allows the client to modify the state of data on the target. The - // paths to modified along with the new values that the client wishes - // to set the value to. - // Reference: gNMI Specification Section 3.4 - Set(context.Context, *SetRequest) (*SetResponse, error) - // Subscribe allows a client to request the target to send it values - // of particular paths within the data tree. These values may be streamed - // at a particular cadence (STREAM), sent one off on a long-lived channel - // (POLL), or sent as a one-off retrieval (ONCE). - // Reference: gNMI Specification Section 3.5 - Subscribe(GNMI_SubscribeServer) error + return mi.MessageOf(x) } -func RegisterGNMIServer(s *grpc.Server, srv GNMIServer) { - s.RegisterService(&_GNMI_serviceDesc, srv) +// Deprecated: Use ModelData.ProtoReflect.Descriptor instead. +func (*ModelData) Descriptor() ([]byte, []int) { + return file_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{22} } -func _GNMI_Capabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CapabilityRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GNMIServer).Capabilities(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gnmi.gNMI/Capabilities", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GNMIServer).Capabilities(ctx, req.(*CapabilityRequest)) +func (x *ModelData) GetName() string { + if x != nil { + return x.Name } - return interceptor(ctx, in, info, handler) + return "" } -func _GNMI_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GNMIServer).Get(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gnmi.gNMI/Get", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GNMIServer).Get(ctx, req.(*GetRequest)) +func (x *ModelData) GetOrganization() string { + if x != nil { + return x.Organization } - return interceptor(ctx, in, info, handler) + return "" } -func _GNMI_Set_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GNMIServer).Set(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gnmi.gNMI/Set", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GNMIServer).Set(ctx, req.(*SetRequest)) +func (x *ModelData) GetVersion() string { + if x != nil { + return x.Version } - return interceptor(ctx, in, info, handler) -} - -func _GNMI_Subscribe_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(GNMIServer).Subscribe(&gNMISubscribeServer{stream}) + return "" } -type GNMI_SubscribeServer interface { - Send(*SubscribeResponse) error - Recv() (*SubscribeRequest, error) - grpc.ServerStream +var file_proto_gnmi_gnmi_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.FileOptions)(nil), + ExtensionType: (*string)(nil), + Field: 1001, + Name: "gnmi.gnmi_service", + Tag: "bytes,1001,opt,name=gnmi_service", + Filename: "proto/gnmi/gnmi.proto", + }, } -type gNMISubscribeServer struct { - grpc.ServerStream -} +// Extension fields to descriptorpb.FileOptions. +var ( + // The gNMI service semantic version. + // + // optional string gnmi_service = 1001; + E_GnmiService = &file_proto_gnmi_gnmi_proto_extTypes[0] +) -func (x *gNMISubscribeServer) Send(m *SubscribeResponse) error { - return x.ServerStream.SendMsg(m) -} +var File_proto_gnmi_gnmi_proto protoreflect.FileDescriptor + +var file_proto_gnmi_gnmi_proto_rawDesc = []byte{ + 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x67, 0x6e, 0x6d, + 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x67, 0x6e, 0x6d, 0x69, 0x1a, 0x19, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, + 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x38, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, + 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbf, 0x01, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x22, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, + 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x24, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, + 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, + 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, + 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x93, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x22, 0x94, 0x04, 0x0a, + 0x0a, 0x54, 0x79, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x09, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x07, + 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, + 0x06, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x08, 0x75, 0x69, 0x6e, 0x74, 0x5f, + 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x75, 0x69, 0x6e, + 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, + 0x6c, 0x12, 0x1d, 0x0a, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, + 0x12, 0x21, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x02, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x08, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, + 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x09, 0x64, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x56, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x5f, + 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x6e, 0x6d, 0x69, + 0x2e, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x36, 0x34, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x0a, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x0c, + 0x6c, 0x65, 0x61, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x65, 0x61, 0x66, 0x6c, 0x69, 0x73, + 0x74, 0x56, 0x61, 0x6c, 0x12, 0x2f, 0x0a, 0x07, 0x61, 0x6e, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x06, 0x61, + 0x6e, 0x79, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x76, 0x61, + 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x6a, 0x73, 0x6f, 0x6e, 0x56, + 0x61, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x69, 0x65, 0x74, 0x66, 0x5f, + 0x76, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x6a, 0x73, 0x6f, + 0x6e, 0x49, 0x65, 0x74, 0x66, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x09, 0x61, 0x73, 0x63, 0x69, + 0x69, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x61, + 0x73, 0x63, 0x69, 0x69, 0x56, 0x61, 0x6c, 0x12, 0x21, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x78, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x07, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x07, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x65, 0x6c, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x52, + 0x04, 0x65, 0x6c, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x81, 0x01, + 0x0a, 0x08, 0x50, 0x61, 0x74, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6e, + 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x2e, 0x4b, 0x65, 0x79, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x36, 0x0a, 0x08, 0x4b, 0x65, 0x79, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x45, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x22, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, + 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x63, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x45, 0x0a, + 0x09, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x36, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, + 0x67, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x69, 0x67, 0x69, + 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x3a, 0x02, 0x18, 0x01, 0x22, 0x39, 0x0a, 0x0b, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x2a, 0x0a, 0x07, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0xb9, 0x01, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 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, 0x12, 0x20, 0x0a, 0x04, + 0x70, 0x6f, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, + 0x69, 0x2e, 0x50, 0x6f, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x6c, 0x6c, 0x12, 0x31, + 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4a, 0x04, 0x08, 0x04, + 0x10, 0x05, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x22, 0x06, 0x0a, 0x04, 0x50, + 0x6f, 0x6c, 0x6c, 0x22, 0xd0, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6e, 0x6d, 0x69, + 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x0c, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, + 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x03, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, + 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, + 0x36, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x51, 0x4f, 0x53, 0x4d, + 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x03, 0x71, 0x6f, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x6e, 0x6d, 0x69, + 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x11, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x0a, 0x75, 0x73, 0x65, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, + 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x12, 0x2a, 0x0a, 0x08, 0x65, 0x6e, 0x63, + 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x67, 0x6e, + 0x6d, 0x69, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x65, 0x6e, 0x63, + 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x26, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x4f, 0x4c, 0x4c, 0x10, 0x02, + 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x65, 0x73, 0x22, 0xe1, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, + 0x70, 0x61, 0x74, 0x68, 0x12, 0x2a, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, + 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, 0x2d, 0x0a, 0x12, 0x73, 0x75, 0x70, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x64, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 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, + 0xd5, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, + 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, + 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x12, 0x22, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x24, + 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, + 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xdd, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, + 0x61, 0x74, 0x68, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x2e, 0x0a, 0x08, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x67, + 0x6e, 0x6d, 0x69, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, + 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe8, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, + 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x29, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x67, 0x6e, + 0x6d, 0x69, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x02, 0x6f, 0x70, 0x22, 0x3d, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, + 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x50, + 0x4c, 0x41, 0x43, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, + 0x10, 0x03, 0x22, 0xcb, 0x02, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x22, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1e, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x45, 0x6e, + 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, + 0x12, 0x2e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, + 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4e, 0x46, + 0x49, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, + 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x03, + 0x22, 0x9f, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x36, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x22, 0x46, 0x0a, 0x11, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, + 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01, 0x0a, 0x12, 0x43, + 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3a, 0x0a, 0x10, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x6e, + 0x6d, 0x69, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x12, 0x3f, 0x0a, + 0x13, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, + 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x67, 0x6e, 0x6d, + 0x69, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x67, 0x4e, 0x4d, 0x49, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x4e, 0x4d, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5d, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x2a, 0x44, 0x0a, 0x08, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, + 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x59, 0x54, + 0x45, 0x53, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x10, 0x02, 0x12, + 0x09, 0x0a, 0x05, 0x41, 0x53, 0x43, 0x49, 0x49, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, + 0x4f, 0x4e, 0x5f, 0x49, 0x45, 0x54, 0x46, 0x10, 0x04, 0x2a, 0x41, 0x0a, 0x10, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, + 0x0e, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x02, 0x32, 0xe3, 0x01, 0x0a, + 0x04, 0x67, 0x4e, 0x4d, 0x49, 0x12, 0x41, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x17, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x43, 0x61, 0x70, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, + 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, + 0x10, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x53, 0x65, 0x74, 0x12, 0x10, 0x2e, 0x67, 0x6e, + 0x6d, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, + 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x40, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x16, 0x2e, + 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, + 0x30, 0x01, 0x3a, 0x40, 0x0a, 0x0c, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x6e, 0x6d, 0x69, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x42, 0x53, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x09, 0x47, + 0x6e, 0x6d, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, + 0x69, 0xca, 0x3e, 0x05, 0x30, 0x2e, 0x38, 0x2e, 0x30, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_proto_gnmi_gnmi_proto_rawDescOnce sync.Once + file_proto_gnmi_gnmi_proto_rawDescData = file_proto_gnmi_gnmi_proto_rawDesc +) -func (x *gNMISubscribeServer) Recv() (*SubscribeRequest, error) { - m := new(SubscribeRequest) - if err := x.ServerStream.RecvMsg(m); err != nil { - return nil, err +func file_proto_gnmi_gnmi_proto_rawDescGZIP() []byte { + file_proto_gnmi_gnmi_proto_rawDescOnce.Do(func() { + file_proto_gnmi_gnmi_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_gnmi_gnmi_proto_rawDescData) + }) + return file_proto_gnmi_gnmi_proto_rawDescData +} + +var file_proto_gnmi_gnmi_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_proto_gnmi_gnmi_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_proto_gnmi_gnmi_proto_goTypes = []interface{}{ + (Encoding)(0), // 0: gnmi.Encoding + (SubscriptionMode)(0), // 1: gnmi.SubscriptionMode + (SubscriptionList_Mode)(0), // 2: gnmi.SubscriptionList.Mode + (UpdateResult_Operation)(0), // 3: gnmi.UpdateResult.Operation + (GetRequest_DataType)(0), // 4: gnmi.GetRequest.DataType + (*Notification)(nil), // 5: gnmi.Notification + (*Update)(nil), // 6: gnmi.Update + (*TypedValue)(nil), // 7: gnmi.TypedValue + (*Path)(nil), // 8: gnmi.Path + (*PathElem)(nil), // 9: gnmi.PathElem + (*Value)(nil), // 10: gnmi.Value + (*Error)(nil), // 11: gnmi.Error + (*Decimal64)(nil), // 12: gnmi.Decimal64 + (*ScalarArray)(nil), // 13: gnmi.ScalarArray + (*SubscribeRequest)(nil), // 14: gnmi.SubscribeRequest + (*Poll)(nil), // 15: gnmi.Poll + (*SubscribeResponse)(nil), // 16: gnmi.SubscribeResponse + (*SubscriptionList)(nil), // 17: gnmi.SubscriptionList + (*Subscription)(nil), // 18: gnmi.Subscription + (*QOSMarking)(nil), // 19: gnmi.QOSMarking + (*SetRequest)(nil), // 20: gnmi.SetRequest + (*SetResponse)(nil), // 21: gnmi.SetResponse + (*UpdateResult)(nil), // 22: gnmi.UpdateResult + (*GetRequest)(nil), // 23: gnmi.GetRequest + (*GetResponse)(nil), // 24: gnmi.GetResponse + (*CapabilityRequest)(nil), // 25: gnmi.CapabilityRequest + (*CapabilityResponse)(nil), // 26: gnmi.CapabilityResponse + (*ModelData)(nil), // 27: gnmi.ModelData + nil, // 28: gnmi.PathElem.KeyEntry + (*anypb.Any)(nil), // 29: google.protobuf.Any + (*gnmi_ext.Extension)(nil), // 30: gnmi_ext.Extension + (*descriptorpb.FileOptions)(nil), // 31: google.protobuf.FileOptions +} +var file_proto_gnmi_gnmi_proto_depIdxs = []int32{ + 8, // 0: gnmi.Notification.prefix:type_name -> gnmi.Path + 6, // 1: gnmi.Notification.update:type_name -> gnmi.Update + 8, // 2: gnmi.Notification.delete:type_name -> gnmi.Path + 8, // 3: gnmi.Update.path:type_name -> gnmi.Path + 10, // 4: gnmi.Update.value:type_name -> gnmi.Value + 7, // 5: gnmi.Update.val:type_name -> gnmi.TypedValue + 12, // 6: gnmi.TypedValue.decimal_val:type_name -> gnmi.Decimal64 + 13, // 7: gnmi.TypedValue.leaflist_val:type_name -> gnmi.ScalarArray + 29, // 8: gnmi.TypedValue.any_val:type_name -> google.protobuf.Any + 9, // 9: gnmi.Path.elem:type_name -> gnmi.PathElem + 28, // 10: gnmi.PathElem.key:type_name -> gnmi.PathElem.KeyEntry + 0, // 11: gnmi.Value.type:type_name -> gnmi.Encoding + 29, // 12: gnmi.Error.data:type_name -> google.protobuf.Any + 7, // 13: gnmi.ScalarArray.element:type_name -> gnmi.TypedValue + 17, // 14: gnmi.SubscribeRequest.subscribe:type_name -> gnmi.SubscriptionList + 15, // 15: gnmi.SubscribeRequest.poll:type_name -> gnmi.Poll + 30, // 16: gnmi.SubscribeRequest.extension:type_name -> gnmi_ext.Extension + 5, // 17: gnmi.SubscribeResponse.update:type_name -> gnmi.Notification + 11, // 18: gnmi.SubscribeResponse.error:type_name -> gnmi.Error + 30, // 19: gnmi.SubscribeResponse.extension:type_name -> gnmi_ext.Extension + 8, // 20: gnmi.SubscriptionList.prefix:type_name -> gnmi.Path + 18, // 21: gnmi.SubscriptionList.subscription:type_name -> gnmi.Subscription + 19, // 22: gnmi.SubscriptionList.qos:type_name -> gnmi.QOSMarking + 2, // 23: gnmi.SubscriptionList.mode:type_name -> gnmi.SubscriptionList.Mode + 27, // 24: gnmi.SubscriptionList.use_models:type_name -> gnmi.ModelData + 0, // 25: gnmi.SubscriptionList.encoding:type_name -> gnmi.Encoding + 8, // 26: gnmi.Subscription.path:type_name -> gnmi.Path + 1, // 27: gnmi.Subscription.mode:type_name -> gnmi.SubscriptionMode + 8, // 28: gnmi.SetRequest.prefix:type_name -> gnmi.Path + 8, // 29: gnmi.SetRequest.delete:type_name -> gnmi.Path + 6, // 30: gnmi.SetRequest.replace:type_name -> gnmi.Update + 6, // 31: gnmi.SetRequest.update:type_name -> gnmi.Update + 30, // 32: gnmi.SetRequest.extension:type_name -> gnmi_ext.Extension + 8, // 33: gnmi.SetResponse.prefix:type_name -> gnmi.Path + 22, // 34: gnmi.SetResponse.response:type_name -> gnmi.UpdateResult + 11, // 35: gnmi.SetResponse.message:type_name -> gnmi.Error + 30, // 36: gnmi.SetResponse.extension:type_name -> gnmi_ext.Extension + 8, // 37: gnmi.UpdateResult.path:type_name -> gnmi.Path + 11, // 38: gnmi.UpdateResult.message:type_name -> gnmi.Error + 3, // 39: gnmi.UpdateResult.op:type_name -> gnmi.UpdateResult.Operation + 8, // 40: gnmi.GetRequest.prefix:type_name -> gnmi.Path + 8, // 41: gnmi.GetRequest.path:type_name -> gnmi.Path + 4, // 42: gnmi.GetRequest.type:type_name -> gnmi.GetRequest.DataType + 0, // 43: gnmi.GetRequest.encoding:type_name -> gnmi.Encoding + 27, // 44: gnmi.GetRequest.use_models:type_name -> gnmi.ModelData + 30, // 45: gnmi.GetRequest.extension:type_name -> gnmi_ext.Extension + 5, // 46: gnmi.GetResponse.notification:type_name -> gnmi.Notification + 11, // 47: gnmi.GetResponse.error:type_name -> gnmi.Error + 30, // 48: gnmi.GetResponse.extension:type_name -> gnmi_ext.Extension + 30, // 49: gnmi.CapabilityRequest.extension:type_name -> gnmi_ext.Extension + 27, // 50: gnmi.CapabilityResponse.supported_models:type_name -> gnmi.ModelData + 0, // 51: gnmi.CapabilityResponse.supported_encodings:type_name -> gnmi.Encoding + 30, // 52: gnmi.CapabilityResponse.extension:type_name -> gnmi_ext.Extension + 31, // 53: gnmi.gnmi_service:extendee -> google.protobuf.FileOptions + 25, // 54: gnmi.gNMI.Capabilities:input_type -> gnmi.CapabilityRequest + 23, // 55: gnmi.gNMI.Get:input_type -> gnmi.GetRequest + 20, // 56: gnmi.gNMI.Set:input_type -> gnmi.SetRequest + 14, // 57: gnmi.gNMI.Subscribe:input_type -> gnmi.SubscribeRequest + 26, // 58: gnmi.gNMI.Capabilities:output_type -> gnmi.CapabilityResponse + 24, // 59: gnmi.gNMI.Get:output_type -> gnmi.GetResponse + 21, // 60: gnmi.gNMI.Set:output_type -> gnmi.SetResponse + 16, // 61: gnmi.gNMI.Subscribe:output_type -> gnmi.SubscribeResponse + 58, // [58:62] is the sub-list for method output_type + 54, // [54:58] is the sub-list for method input_type + 54, // [54:54] is the sub-list for extension type_name + 53, // [53:54] is the sub-list for extension extendee + 0, // [0:53] is the sub-list for field type_name +} + +func init() { file_proto_gnmi_gnmi_proto_init() } +func file_proto_gnmi_gnmi_proto_init() { + if File_proto_gnmi_gnmi_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_gnmi_gnmi_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Notification); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Update); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TypedValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Path); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PathElem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Value); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Error); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Decimal64); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ScalarArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Poll); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[11].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_gnmi_gnmi_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscriptionList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Subscription); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QOSMarking); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CapabilityRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CapabilityResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gnmi_gnmi_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - return m, nil -} - -var _GNMI_serviceDesc = grpc.ServiceDesc{ - ServiceName: "gnmi.gNMI", - HandlerType: (*GNMIServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Capabilities", - Handler: _GNMI_Capabilities_Handler, - }, - { - MethodName: "Get", - Handler: _GNMI_Get_Handler, - }, - { - MethodName: "Set", - Handler: _GNMI_Set_Handler, - }, - }, - Streams: []grpc.StreamDesc{ - { - StreamName: "Subscribe", - Handler: _GNMI_Subscribe_Handler, - ServerStreams: true, - ClientStreams: true, + file_proto_gnmi_gnmi_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*TypedValue_StringVal)(nil), + (*TypedValue_IntVal)(nil), + (*TypedValue_UintVal)(nil), + (*TypedValue_BoolVal)(nil), + (*TypedValue_BytesVal)(nil), + (*TypedValue_FloatVal)(nil), + (*TypedValue_DoubleVal)(nil), + (*TypedValue_DecimalVal)(nil), + (*TypedValue_LeaflistVal)(nil), + (*TypedValue_AnyVal)(nil), + (*TypedValue_JsonVal)(nil), + (*TypedValue_JsonIetfVal)(nil), + (*TypedValue_AsciiVal)(nil), + (*TypedValue_ProtoBytes)(nil), + } + file_proto_gnmi_gnmi_proto_msgTypes[9].OneofWrappers = []interface{}{ + (*SubscribeRequest_Subscribe)(nil), + (*SubscribeRequest_Poll)(nil), + } + file_proto_gnmi_gnmi_proto_msgTypes[11].OneofWrappers = []interface{}{ + (*SubscribeResponse_Update)(nil), + (*SubscribeResponse_SyncResponse)(nil), + (*SubscribeResponse_Error)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_gnmi_gnmi_proto_rawDesc, + NumEnums: 5, + NumMessages: 24, + NumExtensions: 1, + NumServices: 1, }, - }, - Metadata: "gnmi.proto", -} - -func init() { proto.RegisterFile("gnmi.proto", fileDescriptor0) } - -var fileDescriptor0 = []byte{ - // 1951 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x5f, 0x73, 0x23, 0x47, - 0x11, 0xd7, 0x6a, 0xf5, 0x6f, 0x5b, 0xb2, 0x4f, 0x9e, 0xa4, 0x12, 0x9d, 0x73, 0x24, 0xba, 0xad, - 0xdc, 0x45, 0x71, 0x12, 0xf9, 0x30, 0x94, 0x81, 0xa3, 0x02, 0x91, 0xed, 0x3d, 0x5b, 0x20, 0x4b, - 0x66, 0xa4, 0x5c, 0x15, 0x54, 0x51, 0xaa, 0xb1, 0x34, 0xd6, 0x2d, 0x59, 0xed, 0x6e, 0x76, 0x47, - 0xc7, 0x89, 0x37, 0x3e, 0x03, 0x1f, 0x80, 0xaf, 0xc1, 0x47, 0xa0, 0xe0, 0x85, 0x17, 0x8a, 0x27, - 0x1e, 0x28, 0x1e, 0x80, 0xe2, 0x4b, 0xa4, 0x7a, 0x66, 0x76, 0x57, 0x3a, 0xe9, 0xea, 0x7c, 0x79, - 0x9b, 0xe9, 0x5f, 0x77, 0xef, 0xf4, 0x74, 0xcf, 0xaf, 0x5b, 0x02, 0x98, 0xf9, 0x73, 0xb7, 0x1d, - 0x46, 0x81, 0x08, 0x48, 0x01, 0xd7, 0xfb, 0x77, 0x67, 0x41, 0x30, 0xf3, 0xf8, 0xa1, 0x94, 0x5d, - 0x2f, 0x6e, 0x0e, 0x99, 0xbf, 0x54, 0x0a, 0xfb, 0xcd, 0x97, 0xa1, 0x29, 0x8f, 0x27, 0x91, 0x1b, - 0x8a, 0x20, 0xd2, 0x1a, 0xbb, 0xe8, 0x62, 0xcc, 0x5f, 0x08, 0xb5, 0xb7, 0xff, 0x6c, 0x40, 0xad, - 0x1f, 0x08, 0xf7, 0xc6, 0x9d, 0x30, 0xe1, 0x06, 0x3e, 0xb9, 0x07, 0x96, 0x70, 0xe7, 0x3c, 0x16, - 0x6c, 0x1e, 0x36, 0x8c, 0xa6, 0xd1, 0x32, 0x69, 0x26, 0x20, 0x36, 0x94, 0xc2, 0x88, 0xdf, 0xb8, - 0x2f, 0x1a, 0xf9, 0xa6, 0xd1, 0xaa, 0x1e, 0x41, 0x5b, 0x1e, 0xef, 0x8a, 0x89, 0x67, 0x54, 0x23, - 0xe4, 0x6d, 0x28, 0x32, 0xcf, 0x65, 0x71, 0xc3, 0x6c, 0x1a, 0x2d, 0x8b, 0xaa, 0x0d, 0xf9, 0x10, - 0x4a, 0x8b, 0x70, 0xca, 0x04, 0x6f, 0x14, 0x9a, 0x66, 0xab, 0x7a, 0x54, 0x53, 0x96, 0x5f, 0x4a, - 0x19, 0xd5, 0x18, 0xfa, 0x9f, 0x72, 0x8f, 0x0b, 0xde, 0x28, 0x4a, 0xad, 0x35, 0xff, 0x0a, 0x21, - 0xef, 0x40, 0x89, 0x89, 0x60, 0xee, 0x4e, 0x1a, 0xa5, 0xa6, 0xd1, 0xaa, 0x50, 0xbd, 0xb3, 0xff, - 0x60, 0x40, 0x49, 0xb9, 0x23, 0xef, 0x43, 0x21, 0x64, 0xe2, 0x99, 0x3c, 0xff, 0xba, 0x13, 0x29, - 0x27, 0x0f, 0xa0, 0xf8, 0x9c, 0x79, 0x0b, 0xae, 0xa3, 0xa8, 0x2a, 0x85, 0xa7, 0x28, 0x3a, 0xc9, - 0x37, 0x0c, 0xaa, 0x50, 0x62, 0x83, 0xf9, 0x9c, 0x79, 0x32, 0x8e, 0xea, 0x51, 0x5d, 0x29, 0x8d, - 0x96, 0x21, 0x9f, 0x4a, 0x4d, 0x8a, 0x20, 0x79, 0x1f, 0x60, 0xba, 0x08, 0x3d, 0xbc, 0x3e, 0x1e, - 0x37, 0x0a, 0x4d, 0xa3, 0xb5, 0x43, 0x57, 0x24, 0xf6, 0xff, 0x4d, 0x80, 0xcc, 0x86, 0x7c, 0x00, - 0x10, 0x8b, 0xc8, 0xf5, 0x67, 0x63, 0xf4, 0x8c, 0xe7, 0xb3, 0x2e, 0x72, 0xd4, 0x52, 0xb2, 0xa7, - 0xcc, 0x23, 0x77, 0xa1, 0xec, 0xfa, 0x42, 0xa2, 0x78, 0x38, 0xf3, 0x22, 0x47, 0x4b, 0xae, 0x2f, - 0x10, 0x7a, 0x0f, 0x2a, 0x8b, 0x04, 0xc3, 0x33, 0x15, 0x2e, 0x72, 0xb4, 0xbc, 0xc8, 0xc0, 0xeb, - 0x20, 0xf0, 0x24, 0x88, 0xa7, 0xa8, 0x20, 0x88, 0x12, 0x04, 0xbf, 0x03, 0xd6, 0xf5, 0x52, 0xf0, - 0x58, 0xa2, 0xc5, 0xa6, 0xd1, 0xaa, 0x5d, 0xe4, 0x68, 0x45, 0x8a, 0x34, 0x7c, 0xe3, 0x05, 0x4c, - 0x79, 0xc6, 0x4b, 0xcd, 0x23, 0x2c, 0x45, 0x08, 0x1f, 0x41, 0x75, 0xca, 0x27, 0xee, 0x9c, 0x29, - 0xef, 0x65, 0x79, 0x1d, 0x77, 0xd4, 0x75, 0x9c, 0x29, 0xe0, 0xf8, 0xfb, 0x17, 0x39, 0x0a, 0x5a, - 0x0b, 0x6d, 0x8e, 0xa1, 0xe6, 0x71, 0x76, 0xe3, 0xb9, 0xb1, 0xf2, 0x5a, 0x91, 0x46, 0x7b, 0xca, - 0x68, 0x38, 0x61, 0x1e, 0x8b, 0x3a, 0x51, 0xc4, 0x96, 0x17, 0x39, 0x5a, 0x4d, 0x14, 0xd1, 0xee, - 0x10, 0xca, 0xcc, 0x5f, 0x4a, 0x13, 0x4b, 0x9a, 0xbc, 0xdd, 0x56, 0x35, 0xdd, 0x4e, 0x6a, 0xba, - 0xdd, 0xf1, 0xd1, 0xaa, 0xc4, 0xfc, 0xa5, 0x8e, 0xfb, 0x37, 0x71, 0xe0, 0x4b, 0x0b, 0xd0, 0x91, - 0x95, 0x51, 0x82, 0xe0, 0x87, 0xb0, 0x23, 0x41, 0x97, 0x8b, 0x1b, 0xa9, 0x51, 0xd5, 0x1a, 0x55, - 0x14, 0x77, 0xb9, 0xb8, 0xd1, 0xe1, 0xb3, 0x78, 0xe2, 0xba, 0x52, 0xa3, 0xa6, 0x53, 0x52, 0x91, - 0x22, 0x84, 0xef, 0x43, 0x55, 0x7e, 0x7b, 0x2c, 0xef, 0xab, 0xb1, 0xa3, 0x5d, 0x80, 0x14, 0x9e, - 0xa0, 0xec, 0xa4, 0xac, 0xeb, 0xc9, 0x7e, 0x01, 0x05, 0x2c, 0x33, 0x72, 0x0f, 0xca, 0xdc, 0xe3, - 0x73, 0xee, 0x8b, 0x86, 0xd1, 0x34, 0x5b, 0x96, 0xac, 0xaa, 0x44, 0x84, 0x15, 0x1c, 0x44, 0xee, - 0xcc, 0xf5, 0x65, 0x8a, 0x2d, 0xaa, 0x77, 0xc4, 0x86, 0x02, 0xaa, 0x34, 0x4c, 0x59, 0xfb, 0xbb, - 0x59, 0xd9, 0x3a, 0x1e, 0x9f, 0x53, 0x89, 0xa1, 0xad, 0x60, 0xd1, 0x8c, 0x0b, 0x99, 0x65, 0x8b, - 0xea, 0x9d, 0xfd, 0x7b, 0x03, 0x2a, 0x89, 0x2a, 0x21, 0x50, 0xf0, 0xd9, 0x9c, 0xab, 0xfa, 0xa2, - 0x72, 0x4d, 0x3e, 0x06, 0xf3, 0x2b, 0xbe, 0x6c, 0xe4, 0xa5, 0xef, 0x77, 0xd7, 0x7d, 0xb7, 0x7f, - 0xce, 0x97, 0x8e, 0x2f, 0xa2, 0x25, 0x45, 0x9d, 0xfd, 0x63, 0xa8, 0x24, 0x02, 0x52, 0x57, 0x66, - 0xca, 0x13, 0x2e, 0xf1, 0x7d, 0x67, 0x8f, 0xc7, 0xd2, 0x6f, 0xe5, 0x71, 0xfe, 0x87, 0x86, 0xed, - 0x40, 0x51, 0x55, 0x79, 0xaa, 0x82, 0x66, 0xb5, 0xec, 0x39, 0x15, 0xc4, 0x32, 0x54, 0x76, 0xbb, - 0x49, 0x78, 0x8e, 0x3f, 0x09, 0xa6, 0xae, 0x3f, 0xa3, 0x12, 0x7b, 0x9c, 0x6f, 0x18, 0xf6, 0x04, - 0x8a, 0x4e, 0x14, 0x05, 0x11, 0x86, 0x31, 0x09, 0xa6, 0xca, 0xcb, 0x0e, 0x95, 0x6b, 0xd2, 0x80, - 0xf2, 0x9c, 0xc7, 0x31, 0x9b, 0x25, 0xdf, 0x4f, 0xb6, 0xa4, 0x05, 0x85, 0x29, 0x13, 0x4c, 0x3f, - 0xd7, 0xad, 0x75, 0x43, 0xa5, 0x86, 0xfc, 0x48, 0x07, 0xac, 0xb4, 0x76, 0xf1, 0x52, 0xa7, 0xee, - 0xcc, 0x15, 0xb1, 0x66, 0x3c, 0xbd, 0x43, 0x32, 0x0c, 0x23, 0x3e, 0x71, 0x63, 0x37, 0x50, 0xb9, - 0xda, 0xa1, 0x99, 0xc0, 0xfe, 0x11, 0x54, 0x57, 0x2a, 0x99, 0x1c, 0xac, 0xe7, 0x7c, 0x1b, 0x63, - 0x24, 0x0a, 0xf6, 0x3f, 0x0c, 0xa8, 0x0f, 0x17, 0xd7, 0x48, 0xce, 0xd7, 0x9c, 0xf2, 0xaf, 0x17, - 0x3c, 0x16, 0xe4, 0x18, 0xac, 0x38, 0x91, 0x69, 0xea, 0x7a, 0x47, 0x3f, 0x18, 0x25, 0x0e, 0x91, - 0xa1, 0x7b, 0x6e, 0x2c, 0x24, 0x65, 0x24, 0xaa, 0xa4, 0x09, 0x85, 0x30, 0xf0, 0x12, 0x9e, 0x4a, - 0xd8, 0x2e, 0xf0, 0xbc, 0x8b, 0x1c, 0x95, 0x08, 0xf9, 0x04, 0xca, 0x92, 0x85, 0x35, 0x43, 0xa5, - 0xaf, 0xb7, 0x83, 0x42, 0xed, 0x30, 0xd1, 0x20, 0xdf, 0x05, 0x8b, 0xbf, 0x10, 0xdc, 0x97, 0x41, - 0x2b, 0x1a, 0x7e, 0xab, 0x9d, 0xb6, 0x0d, 0x27, 0x81, 0x68, 0xa6, 0x75, 0x62, 0x41, 0x39, 0x52, - 0x41, 0xd8, 0x25, 0x28, 0xe0, 0xa7, 0xed, 0xbf, 0x19, 0xb0, 0xb7, 0x12, 0x61, 0x1c, 0x06, 0x7e, - 0xcc, 0xc9, 0xa7, 0x69, 0x17, 0x50, 0xf1, 0x11, 0x75, 0x8e, 0xd5, 0x0e, 0x84, 0x6f, 0x5b, 0x77, - 0x83, 0x07, 0xb0, 0x13, 0x2f, 0xfd, 0xc9, 0x38, 0xd2, 0xe6, 0x32, 0x42, 0x24, 0xb6, 0x1a, 0x8a, - 0x53, 0xa7, 0x1f, 0x41, 0x91, 0x63, 0xbd, 0xe8, 0xd8, 0x34, 0x9b, 0xcb, 0x12, 0xc2, 0x77, 0x77, - 0x91, 0xa3, 0x0a, 0xff, 0x36, 0x91, 0x01, 0x54, 0x92, 0xaf, 0xdb, 0x7f, 0x32, 0xd3, 0xa4, 0xa5, - 0x99, 0x58, 0xe9, 0x88, 0xc6, 0x2b, 0x3b, 0xe2, 0x31, 0xd4, 0xe2, 0x15, 0x3b, 0xfd, 0x06, 0xc9, - 0x66, 0x6e, 0xe9, 0x9a, 0x1e, 0xf9, 0x00, 0xaa, 0x8b, 0x98, 0x8f, 0x93, 0xd4, 0xc9, 0xe8, 0x29, - 0x2c, 0x62, 0xde, 0xd1, 0xa9, 0xb2, 0xc1, 0xfc, 0x3a, 0x48, 0x72, 0xaa, 0xcb, 0xed, 0x17, 0x83, - 0xe1, 0x25, 0x8b, 0xbe, 0xc2, 0x27, 0x85, 0x20, 0x39, 0x84, 0xc2, 0x1c, 0x1f, 0x51, 0x51, 0xbe, - 0xba, 0xf7, 0xb6, 0x17, 0x54, 0xfb, 0x32, 0x98, 0x72, 0x2a, 0x15, 0xc9, 0x27, 0xb0, 0xc7, 0x3c, - 0x2f, 0xf8, 0xed, 0x98, 0xcd, 0x66, 0x11, 0x9f, 0xc9, 0xa4, 0xe8, 0x56, 0x5b, 0x97, 0x40, 0x27, - 0x93, 0x93, 0x36, 0xe0, 0x79, 0xc6, 0x68, 0xe8, 0xc5, 0x8d, 0xb2, 0x0c, 0x4c, 0x17, 0x17, 0xba, - 0xf4, 0xce, 0x98, 0x60, 0xd4, 0x5a, 0xc4, 0x5c, 0xee, 0x62, 0x72, 0x00, 0x15, 0xae, 0x5f, 0xbc, - 0xec, 0x09, 0x9b, 0x3c, 0x90, 0xe2, 0xe4, 0x3e, 0xd4, 0x54, 0x21, 0xc4, 0xe3, 0xc0, 0xf7, 0x96, - 0xb2, 0x21, 0x54, 0x68, 0x55, 0xcb, 0x06, 0xbe, 0xb7, 0xb4, 0x1f, 0x42, 0x01, 0x1d, 0x13, 0x80, - 0xd2, 0x70, 0x44, 0x9d, 0xce, 0x65, 0x3d, 0x47, 0x2a, 0x50, 0x18, 0xf4, 0x4f, 0x9d, 0xba, 0x81, - 0xab, 0xab, 0x41, 0xaf, 0x57, 0xcf, 0xdb, 0xff, 0x32, 0xa0, 0xb6, 0x1a, 0xf3, 0x6b, 0x27, 0x84, - 0x03, 0x7d, 0x6b, 0x8a, 0xab, 0xb6, 0x3c, 0xc3, 0x95, 0x0b, 0xfb, 0x08, 0xee, 0xc4, 0x6c, 0x1e, - 0x7a, 0x7c, 0xec, 0xfa, 0x82, 0x47, 0x69, 0x7b, 0xa6, 0xbb, 0x4a, 0xdc, 0xd5, 0x52, 0xf2, 0x19, - 0x90, 0x78, 0x11, 0x86, 0x11, 0x8f, 0xe3, 0x71, 0xc4, 0xa7, 0x0b, 0x7f, 0xca, 0x7c, 0xc5, 0xe3, - 0x15, 0xba, 0x97, 0x20, 0x34, 0x01, 0x50, 0xfd, 0x19, 0x67, 0x91, 0xb8, 0xe6, 0x4c, 0x64, 0xae, - 0x8b, 0xd2, 0xf5, 0x5e, 0x8a, 0x24, 0xde, 0xed, 0x87, 0x00, 0x59, 0xee, 0x25, 0x4f, 0xaa, 0xa5, - 0xa6, 0xcf, 0x64, 0x6b, 0x7f, 0x0e, 0x45, 0x59, 0x3f, 0xaf, 0xbd, 0x83, 0x74, 0x90, 0xcb, 0xaf, - 0x0c, 0x72, 0x76, 0x1b, 0xac, 0x94, 0x36, 0xc8, 0xfd, 0x44, 0x45, 0x31, 0x5e, 0x75, 0x85, 0x56, - 0x12, 0xfd, 0xbf, 0x1b, 0x00, 0x43, 0x2e, 0x12, 0x92, 0xbb, 0xcd, 0x7b, 0xc9, 0xa6, 0xc0, 0xfc, - 0x2b, 0xa7, 0xc0, 0x87, 0x48, 0x39, 0xa1, 0xc7, 0x26, 0x5c, 0xb7, 0xcb, 0xf5, 0x81, 0x32, 0x01, - 0x6f, 0x39, 0x77, 0xbe, 0x39, 0x33, 0xd8, 0xff, 0x34, 0xa0, 0x2a, 0xe3, 0xd2, 0x2c, 0x74, 0x9b, - 0xc0, 0xda, 0x19, 0x9b, 0xac, 0x93, 0x80, 0x3e, 0x0e, 0x8f, 0x17, 0x9e, 0xa0, 0xa9, 0x0e, 0xf9, - 0x38, 0x6b, 0x76, 0xe6, 0x56, 0x6e, 0xcb, 0xba, 0xdf, 0xda, 0xdc, 0x5e, 0x78, 0x79, 0x6e, 0xff, - 0x16, 0xf1, 0xfd, 0xd7, 0x80, 0xda, 0xea, 0xb1, 0x48, 0x73, 0xe3, 0x97, 0x81, 0x3c, 0xc1, 0xca, - 0x57, 0x92, 0x82, 0xca, 0xbf, 0xa2, 0xa0, 0xde, 0x20, 0x9c, 0x4f, 0x21, 0x1f, 0xa8, 0x38, 0x76, - 0x8f, 0xee, 0x6d, 0xde, 0x51, 0x7b, 0x10, 0xf2, 0x48, 0x32, 0x10, 0xcd, 0x07, 0xa1, 0xfd, 0x39, - 0x58, 0xa9, 0x80, 0x54, 0xa1, 0xdc, 0xed, 0x3f, 0xed, 0xf4, 0xba, 0x67, 0xf5, 0x1c, 0x12, 0xc3, - 0x99, 0xd3, 0x73, 0x46, 0x48, 0x07, 0x55, 0x28, 0x53, 0xe7, 0xaa, 0xd7, 0x39, 0x75, 0xea, 0x79, - 0x04, 0xbe, 0xbc, 0x3a, 0xeb, 0x8c, 0x9c, 0xba, 0x69, 0xff, 0x35, 0x0f, 0x70, 0xfe, 0x66, 0x25, - 0x9a, 0x85, 0x6a, 0x6e, 0x0d, 0xf5, 0x33, 0x3d, 0xeb, 0x98, 0x32, 0x82, 0xbb, 0x0a, 0xcf, 0xbe, - 0xd1, 0x46, 0x5e, 0xc4, 0xc1, 0x40, 0x8d, 0x3d, 0x6b, 0xb4, 0x58, 0x7c, 0x0d, 0x2d, 0xae, 0x53, - 0x6e, 0xe9, 0xb5, 0x94, 0xbb, 0x96, 0xfb, 0xf2, 0xad, 0x72, 0xff, 0x63, 0xa8, 0x24, 0x07, 0x24, - 0x65, 0x30, 0x3b, 0xbd, 0x9e, 0xba, 0xca, 0xd3, 0x41, 0xff, 0x49, 0xf7, 0xbc, 0x6e, 0x10, 0x0b, - 0x8a, 0xc3, 0x11, 0x5e, 0x5e, 0x9e, 0xdc, 0x81, 0xea, 0xe0, 0xca, 0xa1, 0x9d, 0x51, 0x77, 0xd0, - 0xef, 0xf4, 0xea, 0xa6, 0xfd, 0x47, 0x03, 0xaa, 0xe7, 0x2b, 0x0f, 0xe3, 0x18, 0x6a, 0xfe, 0x4a, - 0x7f, 0xd7, 0x54, 0xb1, 0xa5, 0xf3, 0xd3, 0x35, 0x3d, 0xfc, 0x91, 0xa6, 0xda, 0x7a, 0x7e, 0x7b, - 0xad, 0x6c, 0x6b, 0xea, 0xe6, 0xad, 0xc2, 0x7b, 0x02, 0x7b, 0xa7, 0x2c, 0x64, 0xd7, 0xae, 0xe7, - 0x8a, 0x65, 0x92, 0xf5, 0x35, 0x3f, 0xc6, 0xad, 0xfc, 0xfc, 0xc7, 0x00, 0xb2, 0xea, 0x48, 0x07, - 0xfc, 0x18, 0xea, 0x48, 0xe6, 0x41, 0x24, 0xf8, 0x34, 0x49, 0x93, 0xb1, 0x3d, 0x4d, 0x77, 0x52, - 0x45, 0x9d, 0xac, 0x9f, 0xc2, 0x5b, 0x99, 0x6d, 0x92, 0xf2, 0x58, 0x96, 0xd9, 0x66, 0x4d, 0x90, - 0x54, 0x35, 0x11, 0xc5, 0xd8, 0x34, 0x67, 0xfd, 0xcb, 0xee, 0xf8, 0x39, 0x8f, 0xf4, 0x8d, 0x20, - 0x77, 0x57, 0x51, 0xf6, 0x54, 0x89, 0xd6, 0x23, 0x2d, 0xdc, 0x2a, 0xd2, 0x5f, 0x83, 0x95, 0x1e, - 0x7a, 0xeb, 0xaf, 0x0b, 0x1b, 0x6a, 0x41, 0x34, 0x63, 0xbe, 0xfb, 0x3b, 0x26, 0x92, 0x61, 0xd9, - 0xa2, 0x6b, 0x32, 0x6c, 0x49, 0xeb, 0xa7, 0x4a, 0xb6, 0x07, 0x67, 0x50, 0x49, 0x22, 0xc0, 0xa6, - 0xfd, 0xb3, 0xe1, 0xa0, 0x5f, 0xcf, 0x61, 0x91, 0x9d, 0xfc, 0x72, 0xe4, 0x0c, 0x55, 0xbd, 0x5d, - 0xd1, 0xc1, 0x68, 0x50, 0xcf, 0xe3, 0xb2, 0x33, 0x3c, 0xed, 0x76, 0xeb, 0x26, 0xd9, 0x01, 0x0b, - 0x55, 0xc7, 0x5d, 0x67, 0xf4, 0xa4, 0x5e, 0x38, 0xe8, 0xac, 0x8f, 0x67, 0x72, 0x30, 0x20, 0xb0, - 0x3b, 0xea, 0xd0, 0x73, 0x67, 0x34, 0x3e, 0x73, 0x9e, 0x74, 0xfb, 0x0e, 0x72, 0xc2, 0x0e, 0x58, - 0x83, 0xfe, 0xf8, 0xf4, 0xa2, 0xd3, 0x3f, 0x47, 0x5a, 0xc0, 0xd9, 0xa1, 0x73, 0x79, 0xd5, 0x73, - 0xea, 0xf9, 0xa3, 0x7f, 0x1b, 0x50, 0xc0, 0xab, 0x22, 0x1d, 0xa8, 0xa5, 0x99, 0x75, 0x79, 0x4c, - 0xf4, 0x0f, 0xa6, 0x8d, 0xb2, 0xd9, 0x6f, 0x6c, 0x02, 0xba, 0x0c, 0x0e, 0xc0, 0x3c, 0xe7, 0x82, - 0xd4, 0x5f, 0x7e, 0xfb, 0xfb, 0x7b, 0x2b, 0x92, 0x4c, 0x77, 0x98, 0xe9, 0x0e, 0x37, 0x74, 0x57, - 0x1b, 0xcd, 0x17, 0x60, 0xa5, 0x83, 0x35, 0x59, 0x9f, 0x4c, 0xd2, 0xdf, 0x12, 0xfb, 0xef, 0x6e, - 0xc8, 0x95, 0x75, 0xcb, 0x78, 0x64, 0x3c, 0xfe, 0x02, 0x6a, 0x32, 0xdd, 0x31, 0x8f, 0x9e, 0xbb, - 0x13, 0x4e, 0xee, 0x6d, 0xfc, 0x56, 0x7a, 0xe2, 0x7a, 0x7c, 0x20, 0x6f, 0x31, 0x6e, 0xfc, 0xaf, - 0xac, 0x4b, 0xc8, 0x9f, 0xbb, 0x43, 0x65, 0x71, 0x72, 0xf8, 0x97, 0x9f, 0x14, 0x1f, 0xb5, 0x7f, - 0xd0, 0x7e, 0xf4, 0xab, 0x07, 0x33, 0x57, 0x3c, 0x5b, 0x5c, 0xb7, 0x27, 0xc1, 0xfc, 0x30, 0x08, - 0xb1, 0x62, 0xfd, 0x1b, 0x77, 0x76, 0x88, 0xca, 0xea, 0x6f, 0x28, 0xb9, 0xbc, 0x2e, 0xc9, 0xf5, - 0xf7, 0xbe, 0x09, 0x00, 0x00, 0xff, 0xff, 0x6e, 0xc7, 0x5a, 0xed, 0xcf, 0x12, 0x00, 0x00, + GoTypes: file_proto_gnmi_gnmi_proto_goTypes, + DependencyIndexes: file_proto_gnmi_gnmi_proto_depIdxs, + EnumInfos: file_proto_gnmi_gnmi_proto_enumTypes, + MessageInfos: file_proto_gnmi_gnmi_proto_msgTypes, + ExtensionInfos: file_proto_gnmi_gnmi_proto_extTypes, + }.Build() + File_proto_gnmi_gnmi_proto = out.File + file_proto_gnmi_gnmi_proto_rawDesc = nil + file_proto_gnmi_gnmi_proto_goTypes = nil + file_proto_gnmi_gnmi_proto_depIdxs = nil } diff --git a/gnmi/gnmi/gnmi.proto b/gnmi/gnmi/gnmi.proto index c24687c..6079e31 100644 --- a/gnmi/gnmi/gnmi.proto +++ b/gnmi/gnmi/gnmi.proto @@ -37,9 +37,13 @@ extend google.protobuf.FileOptions { // gNMI_service is the current version of the gNMI service, returned through // the Capabilities RPC. -option (gnmi_service) = "0.7.0"; +option (gnmi_service) = "0.10.0"; option go_package = "github.com/openconfig/gnmi/proto/gnmi"; +option java_multiple_files = true; +option java_outer_classname = "GnmiProto"; +option java_package = "com.github.gnmi.proto"; + service gNMI { // Capabilities allows the client to retrieve the set of capabilities that @@ -77,26 +81,26 @@ service gNMI { // whose value has changed in the data tree. // Reference: gNMI Specification Section 2.1 message Notification { - int64 timestamp = 1; // Timestamp in nanoseconds since Epoch. - Path prefix = 2; // Prefix used for paths in the message. - // An alias for the path specified in the prefix field. - // Reference: gNMI Specification Section 2.4.2 - string alias = 3; - repeated Update update = 4; // Data elements that have changed values. - repeated Path delete = 5; // Data elements that have been deleted. + int64 timestamp = 1; // Timestamp in nanoseconds since Epoch. + Path prefix = 2; // Prefix used for paths in the message. + repeated Update update = 4; // Data elements that have changed values. + repeated Path delete = 5; // Data elements that have been deleted. // This notification contains a set of paths that are always updated together // referenced by a globally unique prefix. bool atomic = 6; + // Reserved field numbers and identifiers. + reserved "alias"; + reserved 3; } // Update is a re-usable message that is used to store a particular Path, // Value pair. // Reference: gNMI Specification Section 2.1 message Update { - Path path = 1; // The path (key) for the update. - Value value = 2 [deprecated=true]; // The value (value) for the update. - TypedValue val = 3; // The explicitly typed update value. - uint32 duplicates = 4; // Number of coalesced duplicates. + Path path = 1; // The path (key) for the update. + Value value = 2 [deprecated = true]; // The value (value) for the update. + TypedValue val = 3; // The explicitly typed update value. + uint32 duplicates = 4; // Number of coalesced duplicates. } // TypedValue is used to encode a value being sent between the client and @@ -108,13 +112,15 @@ message TypedValue { // encoding is a particular form of the base protobuf type, a specific // field is used to store the value (e.g., json_val). oneof value { - string string_val = 1; // String value. - int64 int_val = 2; // Integer value. - uint64 uint_val = 3; // Unsigned integer value. - bool bool_val = 4; // Bool value. - bytes bytes_val = 5; // Arbitrary byte sequence value. - float float_val = 6; // Floating point value. - Decimal64 decimal_val = 7; // Decimal64 encoded value. + string string_val = 1; // String value. + int64 int_val = 2; // Integer value. + uint64 uint_val = 3; // Unsigned integer value. + bool bool_val = 4; // Bool value. + bytes bytes_val = 5; // Arbitrary byte sequence value. + float float_val = 6 [deprecated = true]; // Deprecated - use double_val. + double double_val = 14; // Floating point value. + Decimal64 decimal_val = 7 + [deprecated = true]; // Deprecated - use double_val. ScalarArray leaflist_val = 8; // Mixed type scalar array value. google.protobuf.Any any_val = 9; // protobuf.Any encoded bytes. bytes json_val = 10; // JSON-encoded text. @@ -123,7 +129,7 @@ message TypedValue { // Protobuf binary encoded bytes. The message type is not included. // See the specification at // github.com/openconfig/reference/blob/master/rpc/gnmi/protobuf-vals.md - // for a complete specification. + // for a complete specification. [Experimental] bytes proto_bytes = 13; } } @@ -135,19 +141,19 @@ message TypedValue { message Path { // Elements of the path are no longer encoded as a string, but rather within // the elem field as a PathElem message. - repeated string element = 1 [deprecated=true]; - string origin = 2; // Label to disambiguate path. - repeated PathElem elem = 3; // Elements of the path. - string target = 4; // The name of the target - // (Sec. 2.2.2.1) + repeated string element = 1 [deprecated = true]; + string origin = 2; // Label to disambiguate path. + repeated PathElem elem = 3; // Elements of the path. + string target = 4; // The name of the target + // (Sec. 2.2.2.1) } // PathElem encodes an element of a gNMI path, along with any attributes (keys) // that may be associated with it. // Reference: gNMI Specification Section 2.2.2. message PathElem { - string name = 1; // The name of the element in the path. - map key = 2; // Map of key (attribute) name to value. + string name = 1; // The name of the element in the path. + map key = 2; // Map of key (attribute) name to value. } // Value encodes a data tree node's value - along with the way in which @@ -155,8 +161,9 @@ message PathElem { // Reference: gNMI Specification Section 2.2.3. message Value { option deprecated = true; - bytes value = 1; // Value of the variable being transmitted. - Encoding type = 2; // Encoding used for the value field. + + bytes value = 1; // Value of the variable being transmitted. + Encoding type = 2; // Encoding used for the value field. } // Encoding defines the value encoding formats that are supported by the gNMI @@ -165,11 +172,11 @@ message Value { // data to be returned to the client (in both Subscribe and Get RPCs). // Reference: gNMI Specification Section 2.3 enum Encoding { - JSON = 0; // JSON encoded text. - BYTES = 1; // Arbitrarily encoded bytes. - PROTO = 2; // Encoded according to out-of-band agreed Protobuf. - ASCII = 3; // ASCII text of an out-of-band agreed format. - JSON_IETF = 4; // JSON encoded text as per RFC7951. + JSON = 0; // JSON encoded text. + BYTES = 1; // Arbitrarily encoded bytes. + PROTO = 2; // Encoded according to scalar values of TypedValue. + ASCII = 3; // ASCII text of an out-of-band agreed format. + JSON_IETF = 4; // JSON encoded text as per RFC7951. } // Error message previously utilised to return errors to the client. Deprecated @@ -178,17 +185,22 @@ enum Encoding { // Reference: gNMI Specification Section 2.5 message Error { option deprecated = true; - uint32 code = 1; // Canonical gRPC error code. - string message = 2; // Human readable error. - google.protobuf.Any data = 3; // Optional additional information. + + uint32 code = 1; // Canonical gRPC error code. + string message = 2; // Human readable error. + google.protobuf.Any data = 3; // Optional additional information. } // Decimal64 is used to encode a fixed precision decimal number. The value // is expressed as a set of digits with the precision specifying the // number of digits following the decimal point in the digit set. +// This message is deprecated in favor of encoding all floating point types +// as double precision. message Decimal64 { - int64 digits = 1; // Set of digits. - uint32 precision = 2; // Number of digits following the decimal point. + option deprecated = true; + + int64 digits = 1; // Set of digits. + uint32 precision = 2; // Number of digits following the decimal point. } // ScalarArray is used to encode a mixed-type array of values. @@ -202,26 +214,26 @@ message ScalarArray { // SubscribeRequest is the message sent by the client to the target when // initiating a subscription to a set of paths within the data tree. The // request field must be populated and the initial message must specify a -// SubscriptionList to initiate a subscription. The message is subsequently -// used to define aliases or trigger polled data to be sent by the target. +// SubscriptionList to initiate a subscription. // Reference: gNMI Specification Section 3.5.1.1 message SubscribeRequest { oneof request { - SubscriptionList subscribe = 1; // Specify the paths within a subscription. - Poll poll = 3; // Trigger a polled update. - AliasList aliases = 4; // Aliases to be created. + SubscriptionList subscribe = 1; // Specify the paths within a subscription. + Poll poll = 3; // Trigger a polled update. } // Extension messages associated with the SubscribeRequest. See the // gNMI extension specification for further definition. repeated gnmi_ext.Extension extension = 5; + // Reserved field numbers and identifiers. + reserved 4; + reserved "aliases"; } // Poll is sent within a SubscribeRequest to trigger the device to // send telemetry updates for the paths that are associated with the // subscription. // Reference: gNMI Specification Section Section 3.5.1.4 -message Poll { -} +message Poll {} // SubscribeResponse is the message used by the target within a Subscribe RPC. // The target includes a Notification message which is used to transmit values @@ -231,12 +243,12 @@ message Poll { // Reference: gNMI Specification Section 3.5.1.4 message SubscribeResponse { oneof response { - Notification update = 1; // Changed or sampled value for a path. + Notification update = 1; // Changed or sampled value for a path. // Indicate target has sent all values associated with the subscription // at least once. bool sync_response = 3; // Deprecated in favour of google.golang.org/genproto/googleapis/rpc/status - Error error = 4 [deprecated=true]; + Error error = 4 [deprecated = true]; } // Extension messages associated with the SubscribeResponse. See the // gNMI extension specification for further definition. @@ -249,16 +261,14 @@ message SubscribeResponse { // subscription. // Reference: gNMI Specification Section 3.5.1.2 message SubscriptionList { - Path prefix = 1; // Prefix used for paths. - repeated Subscription subscription = 2; // Set of subscriptions to create. - // Whether target defined aliases are allowed within the subscription. - bool use_aliases = 3; - QOSMarking qos = 4; // DSCP marking to be used. + Path prefix = 1; // Prefix used for paths. + repeated Subscription subscription = 2; // Set of subscriptions to create. + QOSMarking qos = 4; // DSCP marking to be used. // Mode of the subscription. enum Mode { - STREAM = 0; // Values streamed by the target (Sec. 3.5.1.5.2). - ONCE = 1; // Values sent once-off by the target (Sec. 3.5.1.5.1). - POLL = 2; // Values sent in response to a poll request (Sec. 3.5.1.5.3). + STREAM = 0; // Values streamed by the target (Sec. 3.5.1.5.2). + ONCE = 1; // Values sent once-off by the target (Sec. 3.5.1.5.1). + POLL = 2; // Values sent in response to a poll request (Sec. 3.5.1.5.3). } Mode mode = 5; // Whether elements of the schema that are marked as eligible for aggregation @@ -276,6 +286,9 @@ message SubscriptionList { // current state. For ONCE and POLL modes, this causes the server to send only // the sync message (Sec. 3.5.2.3). bool updates_only = 9; + // Reserved field numbers and identifiers. + reserved 3; + reserved "use_aliases"; } // Subscription is a single request within a SubscriptionList. The path @@ -284,9 +297,9 @@ message SubscriptionList { // should trigger updates to be sent. // Reference: gNMI Specification Section 3.5.1.3 message Subscription { - Path path = 1; // The data tree path. - SubscriptionMode mode = 2; // Subscription mode to be used. - uint64 sample_interval = 3; // ns between samples in SAMPLE mode. + Path path = 1; // The data tree path. + SubscriptionMode mode = 2; // Subscription mode to be used. + uint64 sample_interval = 3; // ns between samples in SAMPLE mode. // Indicates whether values that have not changed should be sent in a SAMPLE // subscription. bool suppress_redundant = 4; @@ -301,8 +314,8 @@ message Subscription { // Reference: gNMI Specification Section 3.5.1.3 enum SubscriptionMode { TARGET_DEFINED = 0; // The target selects the relevant mode for each element. - ON_CHANGE = 1; // The target sends an update on element value change. - SAMPLE = 2; // The target samples values according to the interval. + ON_CHANGE = 1; // The target sends an update on element value change. + SAMPLE = 2; // The target samples values according to the interval. } // QOSMarking specifies the DSCP value to be set on transmitted telemetry @@ -312,23 +325,6 @@ message QOSMarking { uint32 marking = 1; } -// Alias specifies a data tree path, and an associated string which defines an -// alias which is to be used for this path in the context of the RPC. The alias -// is specified as a string which is prefixed with "#" to disambiguate it from -// data tree element paths. -// Reference: gNMI Specification Section 2.4.2 -message Alias { - Path path = 1; // The path to be aliased. - string alias = 2; // The alias value, a string prefixed by "#". -} - -// AliasList specifies a list of aliases. It is used in a SubscribeRequest for -// a client to create a set of aliases that the target is to utilize. -// Reference: gNMI Specification Section 3.5.1.6 -message AliasList { - repeated Alias alias = 1; // The set of aliases to be created. -} - // SetRequest is sent from a client to the target to update values in the data // tree. Paths are either deleted by the client, or modified by means of being // updated, or replaced. Where a replace is used, unspecified values are @@ -337,10 +333,15 @@ message AliasList { // a single SetRequest are considered to be a transaction. // Reference: gNMI Specification Section 3.4.1 message SetRequest { - Path prefix = 1; // Prefix used for paths in the message. - repeated Path delete = 2; // Paths to be deleted from the data tree. - repeated Update replace = 3; // Updates specifying elements to be replaced. - repeated Update update = 4; // Updates specifying elements to updated. + Path prefix = 1; // Prefix used for paths in the message. + repeated Path delete = 2; // Paths to be deleted from the data tree. + repeated Update replace = 3; // Updates specifying elements to be replaced. + repeated Update update = 4; // Updates specifying elements to updated. + // Updates specifying elements to union and then replace the data tree. + // See the gNMI specification at + // https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md + // for details. + repeated Update union_replace = 6; // Extension messages associated with the SetRequest. See the // gNMI extension specification for further definition. repeated gnmi_ext.Extension extension = 5; @@ -350,16 +351,17 @@ message SetRequest { // client. It reports the result of the modifications to the data tree that were // specified by the client. Errors for this RPC should be reported using the // https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto -// message in the RPC return. The gnmi.Error message can be used to add additional -// details where required. -// Reference: gNMI Specification Section 3.4.2 +// message in the RPC return. The gnmi.Error message can be used to add +// additional details where required. Reference: gNMI Specification +// Section 3.4.2 message SetResponse { - Path prefix = 1; // Prefix used for paths. + Path prefix = 1; // Prefix used for paths. // A set of responses specifying the result of the operations specified in // the SetRequest. repeated UpdateResult response = 2; - Error message = 3 [deprecated=true]; // The overall status of the transaction. - int64 timestamp = 4; // Timestamp of transaction (ns since epoch). + Error message = 3 + [deprecated = true]; // The overall status of the transaction. + int64 timestamp = 4; // Timestamp of transaction (ns since epoch). // Extension messages associated with the SetResponse. See the // gNMI extension specification for further definition. repeated gnmi_ext.Extension extension = 5; @@ -372,18 +374,19 @@ message UpdateResult { // The operation that was associated with the Path specified. enum Operation { INVALID = 0; - DELETE = 1; // The result relates to a delete of Path. - REPLACE = 2; // The result relates to a replace of Path. - UPDATE = 3; // The result relates to an update of Path. + DELETE = 1; // The result relates to a delete of Path. + REPLACE = 2; // The result relates to a replace of Path. + UPDATE = 3; // The result relates to an update of Path. + UNION_REPLACE = 4; // The result of a union_replace of Path or CLI origin. } // Deprecated timestamp for the UpdateResult, this field has been // replaced by the timestamp within the SetResponse message, since // all mutations effected by a set should be applied as a single // transaction. - int64 timestamp = 1 [deprecated=true]; - Path path = 2; // Path associated with the update. - Error message = 3 [deprecated=true]; // Status of the update operation. - Operation op = 4; // Update operation type. + int64 timestamp = 1 [deprecated = true]; + Path path = 2; // Path associated with the update. + Error message = 3 [deprecated = true]; // Status of the update operation. + Operation op = 4; // Update operation type. } // GetRequest is sent when a client initiates a Get RPC. It is used to specify @@ -393,21 +396,21 @@ message UpdateResult { // must use all schema models that it has. // Reference: gNMI Specification Section 3.3.1 message GetRequest { - Path prefix = 1; // Prefix used for paths. - repeated Path path = 2; // Paths requested by the client. + Path prefix = 1; // Prefix used for paths. + repeated Path path = 2; // Paths requested by the client. // Type of elements within the data tree. enum DataType { - ALL = 0; // All data elements. - CONFIG = 1; // Config (rw) only elements. - STATE = 2; // State (ro) only elements. + ALL = 0; // All data elements. + CONFIG = 1; // Config (rw) only elements. + STATE = 2; // State (ro) only elements. // Data elements marked in the schema as operational. This refers to data // elements whose value relates to the state of processes or interactions // running on the device. OPERATIONAL = 3; } - DataType type = 3; // The type of data being requested. - Encoding encoding = 5; // Encoding to be used. - repeated ModelData use_models = 6; // The schema models to be used. + DataType type = 3; // The type of data being requested. + Encoding encoding = 5; // Encoding to be used. + repeated ModelData use_models = 6; // The schema models to be used. // Extension messages associated with the GetRequest. See the // gNMI extension specification for further definition. repeated gnmi_ext.Extension extension = 7; @@ -418,8 +421,8 @@ message GetRequest { // by the client in the GetRequest. // Reference: gNMI Specification Section 3.3.2 message GetResponse { - repeated Notification notification = 1; // Data values. - Error error = 2 [deprecated=true]; // Errors that occurred in the Get. + repeated Notification notification = 1; // Data values. + Error error = 2 [deprecated = true]; // Errors that occurred in the Get. // Extension messages associated with the GetResponse. See the // gNMI extension specification for further definition. repeated gnmi_ext.Extension extension = 3; @@ -452,7 +455,7 @@ message CapabilityResponse { // the set of models from which data tree elements should be reported. // Reference: gNMI Specification Section 3.2.3 message ModelData { - string name = 1; // Name of the model. - string organization = 2; // Organization publishing the model. - string version = 3; // Semantic version of the model. -} + string name = 1; // Name of the model. + string organization = 2; // Organization publishing the model. + string version = 3; // Semantic version of the model. +} \ No newline at end of file diff --git a/gnmi_utils.go b/gnmi_utils.go index 1e0401c..a5918c0 100644 --- a/gnmi_utils.go +++ b/gnmi_utils.go @@ -312,6 +312,7 @@ func gnmiParseValue(gnmiValue *gnmi.TypedValue, ts bool, enableUint bool) (inter value = gnmiValue.GetAsciiVal() case *gnmi.TypedValue_AnyVal: value = gnmiValue.GetAnyVal() + //case *gnmi.TypedValue_DoubleVal: case *gnmi.TypedValue_DecimalVal: var floatVal float64 d64Val := gnmiValue.GetDecimalVal()