summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwbc6080 <wangbincheng4@huawei.com>2023-10-07 11:37:57 +0800
committerwbc6080 <wangbincheng4@huawei.com>2023-10-09 17:40:08 +0800
commitacbc9373a2974f06daa789715be1462e70cdbfe8 (patch)
treeee8fa4a2f6a21754b70b4d2d108a70401950d6f1
parentmodify verify mistake (diff)
downloadkubeedge-acbc9373a2974f06daa789715be1462e70cdbfe8.tar.gz
Modify the dbprovider field location and rename the field
Signed-off-by: wbc6080 <wangbincheng4@huawei.com>
-rw-r--r--build/crds/devices/devices_v1beta1_device.yaml79
-rw-r--r--manifests/charts/cloudcore/crds/devices_v1beta1_device.yaml79
-rw-r--r--pkg/apis/devices/v1beta1/device_instance_types.go80
-rw-r--r--pkg/apis/devices/v1beta1/zz_generated.deepcopy.go28
-rw-r--r--pkg/apis/dmi/v1beta1/api.pb.go914
-rw-r--r--pkg/apis/dmi/v1beta1/api.proto58
-rw-r--r--staging/src/github.com/kubeedge/mapper-generator/README.md2
-rw-r--r--staging/src/github.com/kubeedge/mapper-generator/_template/mapper/Dockerfile4
-rw-r--r--staging/src/github.com/kubeedge/mapper-generator/_template/mapper/data/dbmethod/influx/client.go (renamed from staging/src/github.com/kubeedge/mapper-generator/_template/mapper/data/dbprovider/influx/client.go)0
-rw-r--r--staging/src/github.com/kubeedge/mapper-generator/_template/mapper/data/dbmethod/redis/client.go (renamed from staging/src/github.com/kubeedge/mapper-generator/_template/mapper/data/dbprovider/redis/client.go)0
-rw-r--r--staging/src/github.com/kubeedge/mapper-generator/_template/mapper/device/device.go8
-rw-r--r--staging/src/github.com/kubeedge/mapper-generator/pkg/common/configmaptype.go13
-rw-r--r--staging/src/github.com/kubeedge/mapper-generator/pkg/temp/api.pb.go916
-rw-r--r--staging/src/github.com/kubeedge/mapper-generator/pkg/temp/api.proto58
-rw-r--r--staging/src/github.com/kubeedge/mapper-generator/pkg/util/parse/grpc.go34
15 files changed, 1137 insertions, 1136 deletions
diff --git a/build/crds/devices/devices_v1beta1_device.yaml b/build/crds/devices/devices_v1beta1_device.yaml
index 51621e82c..f3fd9cdf2 100644
--- a/build/crds/devices/devices_v1beta1_device.yaml
+++ b/build/crds/devices/devices_v1beta1_device.yaml
@@ -571,45 +571,6 @@ spec:
description: Define how frequent mapper will collect from device.
format: int64
type: integer
- dbProvider:
- description: DBProvider represents the protocol used to push
- data to database, please ensure that the mapper can access
- the destination address.
- properties:
- influx:
- description: method configuration for database
- properties:
- configData:
- description: ConfigData of influx database
- properties:
- bucket:
- description: Bucket of the user in influx database
- type: string
- org:
- description: Org of the user in influx database
- type: string
- url:
- description: Url of influx database
- type: string
- type: object
- dataStandard:
- description: DataStandard of the data to influx database
- properties:
- fieldKey:
- description: FieldKey of the user data
- type: string
- measurement:
- description: Measurement of the user data
- type: string
- tagKey:
- description: TagKey of the user data
- type: string
- tagValue:
- description: TagValue of the user data
- type: string
- type: object
- type: object
- type: object
desired:
description: The desired property value.
properties:
@@ -634,6 +595,46 @@ spec:
data, please ensure that the mapper can access the destination
address.
properties:
+ dbMethod:
+ description: DBMethod represents the method used to push
+ data to database, please ensure that the mapper can access
+ the destination address.
+ properties:
+ influx:
+ description: method configuration for database
+ properties:
+ configData:
+ description: ConfigData of influx database
+ properties:
+ bucket:
+ description: Bucket of the user in influx database
+ type: string
+ org:
+ description: Org of the user in influx database
+ type: string
+ url:
+ description: Url of influx database
+ type: string
+ type: object
+ dataStandard:
+ description: DataStandard of the data to influx
+ database
+ properties:
+ fieldKey:
+ description: FieldKey of the user data
+ type: string
+ measurement:
+ description: Measurement of the user data
+ type: string
+ tagKey:
+ description: TagKey of the user data
+ type: string
+ tagValue:
+ description: TagValue of the user data
+ type: string
+ type: object
+ type: object
+ type: object
http:
description: HTTP Push method configuration for http
properties:
diff --git a/manifests/charts/cloudcore/crds/devices_v1beta1_device.yaml b/manifests/charts/cloudcore/crds/devices_v1beta1_device.yaml
index 51621e82c..f3fd9cdf2 100644
--- a/manifests/charts/cloudcore/crds/devices_v1beta1_device.yaml
+++ b/manifests/charts/cloudcore/crds/devices_v1beta1_device.yaml
@@ -571,45 +571,6 @@ spec:
description: Define how frequent mapper will collect from device.
format: int64
type: integer
- dbProvider:
- description: DBProvider represents the protocol used to push
- data to database, please ensure that the mapper can access
- the destination address.
- properties:
- influx:
- description: method configuration for database
- properties:
- configData:
- description: ConfigData of influx database
- properties:
- bucket:
- description: Bucket of the user in influx database
- type: string
- org:
- description: Org of the user in influx database
- type: string
- url:
- description: Url of influx database
- type: string
- type: object
- dataStandard:
- description: DataStandard of the data to influx database
- properties:
- fieldKey:
- description: FieldKey of the user data
- type: string
- measurement:
- description: Measurement of the user data
- type: string
- tagKey:
- description: TagKey of the user data
- type: string
- tagValue:
- description: TagValue of the user data
- type: string
- type: object
- type: object
- type: object
desired:
description: The desired property value.
properties:
@@ -634,6 +595,46 @@ spec:
data, please ensure that the mapper can access the destination
address.
properties:
+ dbMethod:
+ description: DBMethod represents the method used to push
+ data to database, please ensure that the mapper can access
+ the destination address.
+ properties:
+ influx:
+ description: method configuration for database
+ properties:
+ configData:
+ description: ConfigData of influx database
+ properties:
+ bucket:
+ description: Bucket of the user in influx database
+ type: string
+ org:
+ description: Org of the user in influx database
+ type: string
+ url:
+ description: Url of influx database
+ type: string
+ type: object
+ dataStandard:
+ description: DataStandard of the data to influx
+ database
+ properties:
+ fieldKey:
+ description: FieldKey of the user data
+ type: string
+ measurement:
+ description: Measurement of the user data
+ type: string
+ tagKey:
+ description: TagKey of the user data
+ type: string
+ tagValue:
+ description: TagValue of the user data
+ type: string
+ type: object
+ type: object
+ type: object
http:
description: HTTP Push method configuration for http
properties:
diff --git a/pkg/apis/devices/v1beta1/device_instance_types.go b/pkg/apis/devices/v1beta1/device_instance_types.go
index 803b95102..d61582165 100644
--- a/pkg/apis/devices/v1beta1/device_instance_types.go
+++ b/pkg/apis/devices/v1beta1/device_instance_types.go
@@ -111,19 +111,54 @@ type DeviceProperty struct {
// please ensure that the mapper can access the destination address.
// +optional
PushMethod *PushMethod `json:"pushMethod,omitempty"`
- // DBProvider represents the protocol used to push data to database,
+}
+
+type PushMethod struct {
+ // HTTP Push method configuration for http
+ // +optional
+ HTTP *PushMethodHTTP `json:"http,omitempty"`
+ // MQTT Push method configuration for mqtt
+ // +optional
+ MQTT *PushMethodMQTT `json:"mqtt,omitempty"`
+ // DBMethod represents the method used to push data to database,
// please ensure that the mapper can access the destination address.
// +optional
- DBProvider *DBProviderConfig `json:"dbProvider,omitempty"`
+ DBMethod *DBMethodConfig `json:"dbMethod,omitempty"`
+}
+
+type PushMethodHTTP struct {
+ // +optional
+ HostName string `json:"hostName,omitempty"`
+ // +optional
+ Port int64 `json:"port,omitempty"`
+ // +optional
+ RequestPath string `json:"requestPath,omitempty"`
+ // +optional
+ Timeout int64 `json:"timeout,omitempty"`
+}
+
+type PushMethodMQTT struct {
+ // broker address, like mqtt://127.0.0.1:1883
+ // +optional
+ Address string `json:"address,omitempty"`
+ // publish topic for mqtt
+ // +optional
+ Topic string `json:"topic,omitempty"`
+ // qos of mqtt publish param
+ // +optional
+ QoS int32 `json:"qos,omitempty"`
+ // Is the message retained
+ // +optional
+ Retained bool `json:"retained,omitempty"`
}
-type DBProviderConfig struct {
+type DBMethodConfig struct {
// method configuration for database
// +optional
- Influx *DBProviderInflux `json:"influx,omitempty"`
+ Influx *DBMethodInflux `json:"influx,omitempty"`
}
-type DBProviderInflux struct {
+type DBMethodInflux struct {
// ConfigData of influx database
// +optional
ConfigData *ConfigData `json:"configData"`
@@ -159,41 +194,6 @@ type DataStandard struct {
FieldKey string `json:"fieldKey,omitempty"`
}
-type PushMethod struct {
- // HTTP Push method configuration for http
- // +optional
- HTTP *PushMethodHTTP `json:"http,omitempty"`
- // MQTT Push method configuration for mqtt
- // +optional
- MQTT *PushMethodMQTT `json:"mqtt,omitempty"`
-}
-
-type PushMethodHTTP struct {
- // +optional
- HostName string `json:"hostName,omitempty"`
- // +optional
- Port int64 `json:"port,omitempty"`
- // +optional
- RequestPath string `json:"requestPath,omitempty"`
- // +optional
- Timeout int64 `json:"timeout,omitempty"`
-}
-
-type PushMethodMQTT struct {
- // broker address, like mqtt://127.0.0.1:1883
- // +optional
- Address string `json:"address,omitempty"`
- // publish topic for mqtt
- // +optional
- Topic string `json:"topic,omitempty"`
- // qos of mqtt publish param
- // +optional
- QoS int32 `json:"qos,omitempty"`
- // Is the message retained
- // +optional
- Retained bool `json:"retained,omitempty"`
-}
-
type VisitorConfig struct {
// Required: name of customized protocol
ProtocolName string `json:"protocolName,omitempty"`
diff --git a/pkg/apis/devices/v1beta1/zz_generated.deepcopy.go b/pkg/apis/devices/v1beta1/zz_generated.deepcopy.go
index c569d8318..a8ecec464 100644
--- a/pkg/apis/devices/v1beta1/zz_generated.deepcopy.go
+++ b/pkg/apis/devices/v1beta1/zz_generated.deepcopy.go
@@ -43,28 +43,28 @@ func (in *ConfigData) DeepCopy() *ConfigData {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DBProviderConfig) DeepCopyInto(out *DBProviderConfig) {
+func (in *DBMethodConfig) DeepCopyInto(out *DBMethodConfig) {
*out = *in
if in.Influx != nil {
in, out := &in.Influx, &out.Influx
- *out = new(DBProviderInflux)
+ *out = new(DBMethodInflux)
(*in).DeepCopyInto(*out)
}
return
}
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DBProviderConfig.
-func (in *DBProviderConfig) DeepCopy() *DBProviderConfig {
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DBMethodConfig.
+func (in *DBMethodConfig) DeepCopy() *DBMethodConfig {
if in == nil {
return nil
}
- out := new(DBProviderConfig)
+ out := new(DBMethodConfig)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *DBProviderInflux) DeepCopyInto(out *DBProviderInflux) {
+func (in *DBMethodInflux) DeepCopyInto(out *DBMethodInflux) {
*out = *in
if in.ConfigData != nil {
in, out := &in.ConfigData, &out.ConfigData
@@ -79,12 +79,12 @@ func (in *DBProviderInflux) DeepCopyInto(out *DBProviderInflux) {
return
}
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DBProviderInflux.
-func (in *DBProviderInflux) DeepCopy() *DBProviderInflux {
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DBMethodInflux.
+func (in *DBMethodInflux) DeepCopy() *DBMethodInflux {
if in == nil {
return nil
}
- out := new(DBProviderInflux)
+ out := new(DBMethodInflux)
in.DeepCopyInto(out)
return out
}
@@ -257,11 +257,6 @@ func (in *DeviceProperty) DeepCopyInto(out *DeviceProperty) {
*out = new(PushMethod)
(*in).DeepCopyInto(*out)
}
- if in.DBProvider != nil {
- in, out := &in.DBProvider, &out.DBProvider
- *out = new(DBProviderConfig)
- (*in).DeepCopyInto(*out)
- }
return
}
@@ -376,6 +371,11 @@ func (in *PushMethod) DeepCopyInto(out *PushMethod) {
*out = new(PushMethodMQTT)
**out = **in
}
+ if in.DBMethod != nil {
+ in, out := &in.DBMethod, &out.DBMethod
+ *out = new(DBMethodConfig)
+ (*in).DeepCopyInto(*out)
+ }
return
}
diff --git a/pkg/apis/dmi/v1beta1/api.pb.go b/pkg/apis/dmi/v1beta1/api.pb.go
index 301173bdb..80eeae108 100644
--- a/pkg/apis/dmi/v1beta1/api.pb.go
+++ b/pkg/apis/dmi/v1beta1/api.pb.go
@@ -625,7 +625,6 @@ type DeviceProperty struct {
ReportToCloud bool `protobuf:"varint,6,opt,name=reportToCloud,proto3" json:"reportToCloud,omitempty"`
// PushMethod represents the protocol used to push data,
PushMethod *PushMethod `protobuf:"bytes,7,opt,name=pushMethod,proto3" json:"pushMethod,omitempty"`
- DBProvider *DBProvider `protobuf:"bytes,8,opt,name=dbProvider,proto3" json:"dbProvider,omitempty"`
}
func (x *DeviceProperty) Reset() {
@@ -709,24 +708,20 @@ func (x *DeviceProperty) GetPushMethod() *PushMethod {
return nil
}
-func (x *DeviceProperty) GetBvider() *DBProvider {
- if x != nil {
- return x.DBProvider
- }
- return nil
-}
-
-type DBProvider struct {
+// ProtocolConfig is the specific config of the protocol to access to the device.
+type ProtocolConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // the config of database .
- Influx *DBProviderInflux `protobuf:"bytes,1,opt,name=influx,proto3" json:"influx,omitempty"`
+ // the name of the customized protocol.
+ ProtocolName string `protobuf:"bytes,1,opt,name=protocolName,proto3" json:"protocolName,omitempty"`
+ // the config data of the customized protocol.
+ ConfigData *CustomizedValue `protobuf:"bytes,2,opt,name=configData,proto3" json:"configData,omitempty"`
}
-func (x *DBProvider) Reset() {
- *x = DBProvider{}
+func (x *ProtocolConfig) Reset() {
+ *x = ProtocolConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -734,13 +729,13 @@ func (x *DBProvider) Reset() {
}
}
-func (x *DBProvider) String() string {
+func (x *ProtocolConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*DBProvider) ProtoMessage() {}
+func (*ProtocolConfig) ProtoMessage() {}
-func (x *DBProvider) ProtoReflect() protoreflect.Message {
+func (x *ProtocolConfig) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -752,30 +747,39 @@ func (x *DBProvider) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use DBProvider.ProtoReflect.Descriptor instead.
-func (*DBProvider) Descriptor() ([]byte, []int) {
+// Deprecated: Use ProtocolConfig.ProtoReflect.Descriptor instead.
+func (*ProtocolConfig) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{9}
}
-func (x *DBProvider) GetInflux() *DBProviderInflux {
+func (x *ProtocolConfig) GetProtocolName() string {
if x != nil {
- return x.Influx
+ return x.ProtocolName
+ }
+ return ""
+}
+
+func (x *ProtocolConfig) GetConfigData() *CustomizedValue {
+ if x != nil {
+ return x.ConfigData
}
return nil
}
-type DBProviderInflux struct {
+// the visitor to collect the properties of the device of customized protocol.
+type VisitorConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // the config of influx database.
- ConfigData *ConfigData `protobuf:"bytes,1,opt,name=configData,proto3" json:"configData,omitempty"`
- DataStandard *DataStandard `protobuf:"bytes,2,opt,name=dataStandard,proto3" json:"dataStandard,omitempty"`
+ // the name of the customized protocol.
+ ProtocolName string `protobuf:"bytes,1,opt,name=protocolName,proto3" json:"protocolName,omitempty"`
+ // the config data of the customized protocol.
+ ConfigData *CustomizedValue `protobuf:"bytes,2,opt,name=configData,proto3" json:"configData,omitempty"`
}
-func (x *DBProviderInflux) Reset() {
- *x = DBProviderInflux{}
+func (x *VisitorConfig) Reset() {
+ *x = VisitorConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -783,13 +787,13 @@ func (x *DBProviderInflux) Reset() {
}
}
-func (x *DBProviderInflux) String() string {
+func (x *VisitorConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*DBProviderInflux) ProtoMessage() {}
+func (*VisitorConfig) ProtoMessage() {}
-func (x *DBProviderInflux) ProtoReflect() protoreflect.Message {
+func (x *VisitorConfig) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -801,39 +805,37 @@ func (x *DBProviderInflux) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use DBProviderInflux.ProtoReflect.Descriptor instead.
-func (*DBProviderInflux) Descriptor() ([]byte, []int) {
+// Deprecated: Use VisitorConfig.ProtoReflect.Descriptor instead.
+func (*VisitorConfig) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{10}
}
-func (x *DBProviderInflux) GetConfigData() *ConfigData {
+func (x *VisitorConfig) GetProtocolName() string {
if x != nil {
- return x.ConfigData
+ return x.ProtocolName
}
- return nil
+ return ""
}
-func (x *DBProviderInflux) GetDataStandard() *DataStandard {
+func (x *VisitorConfig) GetConfigData() *CustomizedValue {
if x != nil {
- return x.DataStandard
+ return x.ConfigData
}
return nil
}
-type DataStandard struct {
+// CustomizedValue is the customized value for developers.
+type CustomizedValue struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // datastandard when push data to influx
- Measurement string `protobuf:"bytes,1,opt,name=measurement,proto3" json:"measurement,omitempty"`
- TagKey string `protobuf:"bytes,2,opt,name=tagKey,proto3" json:"tagKey,omitempty"`
- TagValue string `protobuf:"bytes,3,opt,name=tagValue,proto3" json:"tagValue,omitempty"`
- FieldKey string `protobuf:"bytes,4,opt,name=fieldKey,proto3" json:"fieldKey,omitempty"`
+ // data is the customized value and it can be any form.
+ Data map[string]*anypb.Any `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
-func (x *DataStandard) Reset() {
- *x = DataStandard{}
+func (x *CustomizedValue) Reset() {
+ *x = CustomizedValue{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -841,13 +843,13 @@ func (x *DataStandard) Reset() {
}
}
-func (x *DataStandard) String() string {
+func (x *CustomizedValue) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*DataStandard) ProtoMessage() {}
+func (*CustomizedValue) ProtoMessage() {}
-func (x *DataStandard) ProtoReflect() protoreflect.Message {
+func (x *CustomizedValue) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -859,54 +861,30 @@ func (x *DataStandard) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use DataStandard.ProtoReflect.Descriptor instead.
-func (*DataStandard) Descriptor() ([]byte, []int) {
+// Deprecated: Use CustomizedValue.ProtoReflect.Descriptor instead.
+func (*CustomizedValue) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{11}
}
-func (x *DataStandard) GetMeasurement() string {
- if x != nil {
- return x.Measurement
- }
- return ""
-}
-
-func (x *DataStandard) GetTagKey() string {
- if x != nil {
- return x.TagKey
- }
- return ""
-}
-
-func (x *DataStandard) GetTagValue() string {
- if x != nil {
- return x.TagValue
- }
- return ""
-}
-
-func (x *DataStandard) GetFieldKey() string {
+func (x *CustomizedValue) GetData() map[string]*anypb.Any {
if x != nil {
- return x.FieldKey
+ return x.Data
}
- return ""
+ return nil
}
-type ConfigData struct {
+type PushMethod struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // influx database url
- Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
- // usr org in influx database
- Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"`
- // usr bucket in influx database
- Bucket string `protobuf:"bytes,3,opt,name=bucket,proto3" json:"bucket,omitempty"`
+ Http *PushMethodHTTP `protobuf:"bytes,1,opt,name=http,proto3" json:"http,omitempty"`
+ Mqtt *PushMethodMQTT `protobuf:"bytes,2,opt,name=mqtt,proto3" json:"mqtt,omitempty"`
+ DBMethod *DBMethod `protobuf:"bytes,3,opt,name=dbMethod,proto3" json:"dbMethod,omitempty"`
}
-func (x *ConfigData) Reset() {
- *x = ConfigData{}
+func (x *PushMethod) Reset() {
+ *x = PushMethod{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -914,13 +892,13 @@ func (x *ConfigData) Reset() {
}
}
-func (x *ConfigData) String() string {
+func (x *PushMethod) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*ConfigData) ProtoMessage() {}
+func (*PushMethod) ProtoMessage() {}
-func (x *ConfigData) ProtoReflect() protoreflect.Message {
+func (x *PushMethod) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -932,46 +910,45 @@ func (x *ConfigData) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use ConfigData.ProtoReflect.Descriptor instead.
-func (*ConfigData) Descriptor() ([]byte, []int) {
+// Deprecated: Use PushMethod.ProtoReflect.Descriptor instead.
+func (*PushMethod) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{12}
}
-func (x *ConfigData) GetUrl() string {
+func (x *PushMethod) GetHttp() *PushMethodHTTP {
if x != nil {
- return x.Url
+ return x.Http
}
- return ""
+ return nil
}
-func (x *ConfigData) GetOrg() string {
+func (x *PushMethod) GetMqtt() *PushMethodMQTT {
if x != nil {
- return x.Org
+ return x.Mqtt
}
- return ""
+ return nil
}
-func (x *ConfigData) GetBucket() string {
+func (x *PushMethod) GetDBMethod() *DBMethod {
if x != nil {
- return x.Bucket
+ return x.DBMethod
}
- return ""
+ return nil
}
-// ProtocolConfig is the specific config of the protocol to access to the device.
-type ProtocolConfig struct {
+type PushMethodHTTP struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // the name of the customized protocol.
- ProtocolName string `protobuf:"bytes,1,opt,name=protocolName,proto3" json:"protocolName,omitempty"`
- // the config data of the customized protocol.
- ConfigData *CustomizedValue `protobuf:"bytes,2,opt,name=configData,proto3" json:"configData,omitempty"`
+ Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
+ Port int64 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
+ Requestpath string `protobuf:"bytes,3,opt,name=requestpath,proto3" json:"requestpath,omitempty"`
+ Timeout int64 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"`
}
-func (x *ProtocolConfig) Reset() {
- *x = ProtocolConfig{}
+func (x *PushMethodHTTP) Reset() {
+ *x = PushMethodHTTP{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -979,13 +956,13 @@ func (x *ProtocolConfig) Reset() {
}
}
-func (x *ProtocolConfig) String() string {
+func (x *PushMethodHTTP) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*ProtocolConfig) ProtoMessage() {}
+func (*PushMethodHTTP) ProtoMessage() {}
-func (x *ProtocolConfig) ProtoReflect() protoreflect.Message {
+func (x *PushMethodHTTP) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -997,39 +974,56 @@ func (x *ProtocolConfig) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use ProtocolConfig.ProtoReflect.Descriptor instead.
-func (*ProtocolConfig) Descriptor() ([]byte, []int) {
+// Deprecated: Use PushMethodHTTP.ProtoReflect.Descriptor instead.
+func (*PushMethodHTTP) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{13}
}
-func (x *ProtocolConfig) GetProtocolName() string {
+func (x *PushMethodHTTP) GetHostname() string {
if x != nil {
- return x.ProtocolName
+ return x.Hostname
}
return ""
}
-func (x *ProtocolConfig) GetConfigData() *CustomizedValue {
+func (x *PushMethodHTTP) GetPort() int64 {
if x != nil {
- return x.ConfigData
+ return x.Port
}
- return nil
+ return 0
}
-// the visitor to collect the properties of the device of customized protocol.
-type VisitorConfig struct {
+func (x *PushMethodHTTP) GetRequestpath() string {
+ if x != nil {
+ return x.Requestpath
+ }
+ return ""
+}
+
+func (x *PushMethodHTTP) GetTimeout() int64 {
+ if x != nil {
+ return x.Timeout
+ }
+ return 0
+}
+
+type PushMethodMQTT struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // the name of the customized protocol.
- ProtocolName string `protobuf:"bytes,1,opt,name=protocolName,proto3" json:"protocolName,omitempty"`
- // the config data of the customized protocol.
- ConfigData *CustomizedValue `protobuf:"bytes,2,opt,name=configData,proto3" json:"configData,omitempty"`
+ // broker address, like mqtt://127.0.0.1:1883
+ Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
+ // publish topic for mqtt
+ Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"`
+ // qos of mqtt publish param
+ Qos int32 `protobuf:"varint,3,opt,name=qos,proto3" json:"qos,omitempty"`
+ // Is the message retained
+ Retained bool `protobuf:"varint,4,opt,name=retained,proto3" json:"retained,omitempty"`
}
-func (x *VisitorConfig) Reset() {
- *x = VisitorConfig{}
+func (x *PushMethodMQTT) Reset() {
+ *x = PushMethodMQTT{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1037,13 +1031,13 @@ func (x *VisitorConfig) Reset() {
}
}
-func (x *VisitorConfig) String() string {
+func (x *PushMethodMQTT) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*VisitorConfig) ProtoMessage() {}
+func (*PushMethodMQTT) ProtoMessage() {}
-func (x *VisitorConfig) ProtoReflect() protoreflect.Message {
+func (x *PushMethodMQTT) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1055,37 +1049,50 @@ func (x *VisitorConfig) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use VisitorConfig.ProtoReflect.Descriptor instead.
-func (*VisitorConfig) Descriptor() ([]byte, []int) {
+// Deprecated: Use PushMethodMQTT.ProtoReflect.Descriptor instead.
+func (*PushMethodMQTT) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{14}
}
-func (x *VisitorConfig) GetProtocolName() string {
+func (x *PushMethodMQTT) GetAddress() string {
if x != nil {
- return x.ProtocolName
+ return x.Address
}
return ""
}
-func (x *VisitorConfig) GetConfigData() *CustomizedValue {
+func (x *PushMethodMQTT) GetTopic() string {
if x != nil {
- return x.ConfigData
+ return x.Topic
}
- return nil
+ return ""
}
-// CustomizedValue is the customized value for developers.
-type CustomizedValue struct {
+func (x *PushMethodMQTT) GetQos() int32 {
+ if x != nil {
+ return x.Qos
+ }
+ return 0
+}
+
+func (x *PushMethodMQTT) GetRetained() bool {
+ if x != nil {
+ return x.Retained
+ }
+ return false
+}
+
+type DBMethod struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // data is the customized value and it can be any form.
- Data map[string]*anypb.Any `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // the config of database .
+ Influx *DBMethodInflux `protobuf:"bytes,1,opt,name=influx,proto3" json:"influx,omitempty"`
}
-func (x *CustomizedValue) Reset() {
- *x = CustomizedValue{}
+func (x *DBMethod) Reset() {
+ *x = DBMethod{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1093,13 +1100,13 @@ func (x *CustomizedValue) Reset() {
}
}
-func (x *CustomizedValue) String() string {
+func (x *DBMethod) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*CustomizedValue) ProtoMessage() {}
+func (*DBMethod) ProtoMessage() {}
-func (x *CustomizedValue) ProtoReflect() protoreflect.Message {
+func (x *DBMethod) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1111,29 +1118,30 @@ func (x *CustomizedValue) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use CustomizedValue.ProtoReflect.Descriptor instead.
-func (*CustomizedValue) Descriptor() ([]byte, []int) {
+// Deprecated: Use DBMethod.ProtoReflect.Descriptor instead.
+func (*DBMethod) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{15}
}
-func (x *CustomizedValue) GetData() map[string]*anypb.Any {
+func (x *DBMethod) GetInflux() *DBMethodInflux {
if x != nil {
- return x.Data
+ return x.Influx
}
return nil
}
-type PushMethod struct {
+type DBMethodInflux struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Http *PushMethodHTTP `protobuf:"bytes,1,opt,name=http,proto3" json:"http,omitempty"`
- Mqtt *PushMethodMQTT `protobuf:"bytes,2,opt,name=mqtt,proto3" json:"mqtt,omitempty"`
+ // the config of influx database.
+ ConfigData *ConfigData `protobuf:"bytes,1,opt,name=configData,proto3" json:"configData,omitempty"`
+ DataStandard *DataStandard `protobuf:"bytes,2,opt,name=dataStandard,proto3" json:"dataStandard,omitempty"`
}
-func (x *PushMethod) Reset() {
- *x = PushMethod{}
+func (x *DBMethodInflux) Reset() {
+ *x = DBMethodInflux{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1141,13 +1149,13 @@ func (x *PushMethod) Reset() {
}
}
-func (x *PushMethod) String() string {
+func (x *DBMethodInflux) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PushMethod) ProtoMessage() {}
+func (*DBMethodInflux) ProtoMessage() {}
-func (x *PushMethod) ProtoReflect() protoreflect.Message {
+func (x *DBMethodInflux) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1159,38 +1167,39 @@ func (x *PushMethod) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PushMethod.ProtoReflect.Descriptor instead.
-func (*PushMethod) Descriptor() ([]byte, []int) {
+// Deprecated: Use DBMethodInflux.ProtoReflect.Descriptor instead.
+func (*DBMethodInflux) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{16}
}
-func (x *PushMethod) GetHttp() *PushMethodHTTP {
+func (x *DBMethodInflux) GetConfigData() *ConfigData {
if x != nil {
- return x.Http
+ return x.ConfigData
}
return nil
}
-func (x *PushMethod) GetMqtt() *PushMethodMQTT {
+func (x *DBMethodInflux) GetDataStandard() *DataStandard {
if x != nil {
- return x.Mqtt
+ return x.DataStandard
}
return nil
}
-type PushMethodHTTP struct {
+type DataStandard struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
- Port int64 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
- Requestpath string `protobuf:"bytes,3,opt,name=requestpath,proto3" json:"requestpath,omitempty"`
- Timeout int64 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"`
+ // datastandard when push data to influx
+ Measurement string `protobuf:"bytes,1,opt,name=measurement,proto3" json:"measurement,omitempty"`
+ TagKey string `protobuf:"bytes,2,opt,name=tagKey,proto3" json:"tagKey,omitempty"`
+ TagValue string `protobuf:"bytes,3,opt,name=tagValue,proto3" json:"tagValue,omitempty"`
+ FieldKey string `protobuf:"bytes,4,opt,name=fieldKey,proto3" json:"fieldKey,omitempty"`
}
-func (x *PushMethodHTTP) Reset() {
- *x = PushMethodHTTP{}
+func (x *DataStandard) Reset() {
+ *x = DataStandard{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1198,13 +1207,13 @@ func (x *PushMethodHTTP) Reset() {
}
}
-func (x *PushMethodHTTP) String() string {
+func (x *DataStandard) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PushMethodHTTP) ProtoMessage() {}
+func (*DataStandard) ProtoMessage() {}
-func (x *PushMethodHTTP) ProtoReflect() protoreflect.Message {
+func (x *DataStandard) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1216,56 +1225,54 @@ func (x *PushMethodHTTP) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PushMethodHTTP.ProtoReflect.Descriptor instead.
-func (*PushMethodHTTP) Descriptor() ([]byte, []int) {
+// Deprecated: Use DataStandard.ProtoReflect.Descriptor instead.
+func (*DataStandard) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{17}
}
-func (x *PushMethodHTTP) GetHostname() string {
+func (x *DataStandard) GetMeasurement() string {
if x != nil {
- return x.Hostname
+ return x.Measurement
}
return ""
}
-func (x *PushMethodHTTP) GetPort() int64 {
+func (x *DataStandard) GetTagKey() string {
if x != nil {
- return x.Port
+ return x.TagKey
}
- return 0
+ return ""
}
-func (x *PushMethodHTTP) GetRequestpath() string {
+func (x *DataStandard) GetTagValue() string {
if x != nil {
- return x.Requestpath
+ return x.TagValue
}
return ""
}
-func (x *PushMethodHTTP) GetTimeout() int64 {
+func (x *DataStandard) GetFieldKey() string {
if x != nil {
- return x.Timeout
+ return x.FieldKey
}
- return 0
+ return ""
}
-type PushMethodMQTT struct {
+type ConfigData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // broker address, like mqtt://127.0.0.1:1883
- Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
- // publish topic for mqtt
- Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"`
- // qos of mqtt publish param
- Qos int32 `protobuf:"varint,3,opt,name=qos,proto3" json:"qos,omitempty"`
- // Is the message retained
- Retained bool `protobuf:"varint,4,opt,name=retained,proto3" json:"retained,omitempty"`
+ // influx database url
+ Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
+ // usr org in influx database
+ Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"`
+ // usr bucket in influx database
+ Bucket string `protobuf:"bytes,3,opt,name=bucket,proto3" json:"bucket,omitempty"`
}
-func (x *PushMethodMQTT) Reset() {
- *x = PushMethodMQTT{}
+func (x *ConfigData) Reset() {
+ *x = ConfigData{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1273,13 +1280,13 @@ func (x *PushMethodMQTT) Reset() {
}
}
-func (x *PushMethodMQTT) String() string {
+func (x *ConfigData) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PushMethodMQTT) ProtoMessage() {}
+func (*ConfigData) ProtoMessage() {}
-func (x *PushMethodMQTT) ProtoReflect() protoreflect.Message {
+func (x *ConfigData) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1291,37 +1298,30 @@ func (x *PushMethodMQTT) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PushMethodMQTT.ProtoReflect.Descriptor instead.
-func (*PushMethodMQTT) Descriptor() ([]byte, []int) {
+// Deprecated: Use ConfigData.ProtoReflect.Descriptor instead.
+func (*ConfigData) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{18}
}
-func (x *PushMethodMQTT) GetAddress() string {
+func (x *ConfigData) GetUrl() string {
if x != nil {
- return x.Address
+ return x.Url
}
return ""
}
-func (x *PushMethodMQTT) GetTopic() string {
+func (x *ConfigData) GetOrg() string {
if x != nil {
- return x.Topic
+ return x.Org
}
return ""
}
-func (x *PushMethodMQTT) GetQos() int32 {
- if x != nil {
- return x.Qos
- }
- return 0
-}
-
-func (x *PushMethodMQTT) GetRetained() bool {
+func (x *ConfigData) GetBucket() string {
if x != nil {
- return x.Retained
+ return x.Bucket
}
- return false
+ return ""
}
// MapperInfo is the information of mapper.
@@ -2381,7 +2381,7 @@ var file_api_proto_rawDesc = []byte{
0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72,
- 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xdf, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xaa, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x2f, 0x0a, 0x07, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
@@ -2400,223 +2400,223 @@ var file_api_proto_rawDesc = []byte{
0x12, 0x33, 0x0a, 0x0a, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50,
0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0a, 0x70, 0x75, 0x73, 0x68, 0x4d,
- 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x33, 0x0a, 0x0a, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69,
- 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x62, 0x65,
- 0x74, 0x61, 0x31, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x0a,
- 0x64, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x0a, 0x44, 0x42,
- 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x69, 0x6e, 0x66, 0x6c,
- 0x75, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
- 0x61, 0x31, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66,
- 0x6c, 0x75, 0x78, 0x52, 0x06, 0x69, 0x6e, 0x66, 0x6c, 0x75, 0x78, 0x22, 0x82, 0x01, 0x0a, 0x10,
- 0x44, 0x42, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6c, 0x75, 0x78,
- 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43,
- 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61,
- 0x6e, 0x64, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31,
- 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61,
- 0x72, 0x64, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
- 0x22, 0x80, 0x01, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
- 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d,
- 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x67, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x74,
- 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74,
- 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64,
- 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64,
- 0x4b, 0x65, 0x79, 0x22, 0x48, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74,
- 0x61, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x6e, 0x0a,
- 0x0e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
- 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e,
- 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74,
- 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
- 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a,
- 0x0d, 0x56, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22,
- 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e, 0x61,
- 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
- 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0x98, 0x01, 0x0a,
- 0x0f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22,
+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x6e, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
+ 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x63, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x63,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x18, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d,
+ 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a, 0x0d, 0x56, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
+ 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69,
- 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x4d, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x18, 0x02, 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, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x66, 0x0a, 0x0a, 0x50, 0x75, 0x73, 0x68, 0x4d,
- 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x2b, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75,
- 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x54, 0x54, 0x50, 0x52, 0x04, 0x68, 0x74,
- 0x74, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6d, 0x71, 0x74, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x17, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x4d,
- 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4d, 0x51, 0x54, 0x54, 0x52, 0x04, 0x6d, 0x71, 0x74, 0x74, 0x22,
- 0x7c, 0x0a, 0x0e, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x54, 0x54,
- 0x50, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a,
- 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x6f, 0x72,
- 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x70,
- 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x6e, 0x0a,
- 0x0e, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4d, 0x51, 0x54, 0x54, 0x12,
- 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70,
- 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12,
- 0x10, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x71, 0x6f,
- 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x04, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x22, 0xa7, 0x01,
- 0x0a, 0x0a, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04,
- 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70,
- 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
- 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
- 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x7a, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6f, 0x72,
- 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61,
- 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
- 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64,
- 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76,
- 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x44, 0x65, 0x76,
- 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x0c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x05, 0x74, 0x77, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x77, 0x69,
- 0x6e, 0x52, 0x05, 0x74, 0x77, 0x69, 0x6e, 0x73, 0x22, 0x9e, 0x01, 0x0a, 0x04, 0x54, 0x77, 0x69,
- 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
- 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0f, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x64, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
- 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x72, 0x6f,
- 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0f, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x44,
- 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74,
- 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
- 0x61, 0x31, 0x2e, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52,
- 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x54, 0x77,
- 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x77, 0x69,
- 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
- 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
- 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1c,
- 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x0a, 0x15,
- 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
- 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x38,
- 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69,
- 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65,
- 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65,
- 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
- 0x22, 0x45, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
- 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a,
- 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f,
- 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76,
- 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e,
- 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x16,
- 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
- 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65,
- 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
- 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x0a,
- 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44,
- 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x16, 0x0a,
- 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44,
- 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x14, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
- 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x1b, 0x0a,
- 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64,
- 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x0a, 0x10, 0x47, 0x65,
- 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e,
- 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3c,
- 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65,
- 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x32, 0xcc, 0x01, 0x0a,
- 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x53, 0x65,
- 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52,
- 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
- 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
- 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x12, 0x52, 0x65,
- 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x12, 0x22, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72,
- 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52,
- 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xe8, 0x04, 0x0a, 0x13,
- 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44,
- 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
- 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
- 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f,
- 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
- 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
- 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74,
- 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
- 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
- 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x21, 0x2e, 0x76, 0x31,
- 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
- 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22,
- 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44,
+ 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x44, 0x61, 0x74, 0x61, 0x22, 0x98, 0x01, 0x0a, 0x0f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69,
+ 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
+ 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
+ 0x1a, 0x4d, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
+ 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
+ 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 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, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
+ 0x95, 0x01, 0x0a, 0x0a, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x2b,
+ 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76,
+ 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f,
+ 0x64, 0x48, 0x54, 0x54, 0x50, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6d,
+ 0x71, 0x74, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x62, 0x65,
+ 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4d, 0x51,
+ 0x54, 0x54, 0x52, 0x04, 0x6d, 0x71, 0x74, 0x74, 0x12, 0x2d, 0x0a, 0x08, 0x64, 0x62, 0x4d, 0x65,
+ 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x62,
+ 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x42, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x08, 0x64,
+ 0x62, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x7c, 0x0a, 0x0e, 0x50, 0x75, 0x73, 0x68, 0x4d,
+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x54, 0x54, 0x50, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73,
+ 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73,
+ 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
+ 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x74,
+ 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69,
+ 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x6e, 0x0a, 0x0e, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74,
+ 0x68, 0x6f, 0x64, 0x4d, 0x51, 0x54, 0x54, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
+ 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
+ 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x71, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x3b, 0x0a, 0x08, 0x44, 0x42, 0x4d, 0x65, 0x74, 0x68, 0x6f,
+ 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x69, 0x6e, 0x66, 0x6c, 0x75, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x42, 0x4d, 0x65,
+ 0x74, 0x68, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6c, 0x75, 0x78, 0x52, 0x06, 0x69, 0x6e, 0x66, 0x6c,
+ 0x75, 0x78, 0x22, 0x80, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x49,
+ 0x6e, 0x66, 0x6c, 0x75, 0x78, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44,
+ 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x62, 0x65,
+ 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a,
+ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x61,
+ 0x74, 0x61, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x15, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53,
+ 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61,
+ 0x6e, 0x64, 0x61, 0x72, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74,
+ 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72,
+ 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x61,
+ 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x67, 0x4b,
+ 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x67, 0x4b, 0x65, 0x79,
+ 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08,
+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x22, 0x48, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75,
+ 0x63, 0x6b, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b,
+ 0x65, 0x74, 0x22, 0xa7, 0x01, 0x0a, 0x0a, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x49, 0x6e, 0x66,
+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+ 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07,
+ 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61,
+ 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x7a, 0x0a, 0x19,
+ 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x72, 0x65, 0x70,
+ 0x6f, 0x72, 0x74, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74,
+ 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x0c, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x05, 0x74, 0x77, 0x69, 0x6e,
+ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
+ 0x31, 0x2e, 0x54, 0x77, 0x69, 0x6e, 0x52, 0x05, 0x74, 0x77, 0x69, 0x6e, 0x73, 0x22, 0x9e, 0x01,
+ 0x0a, 0x04, 0x54, 0x77, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0f, 0x6f, 0x62,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x77,
+ 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0f, 0x6f, 0x62, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x64, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x72,
+ 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
+ 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x22, 0xa2,
+ 0x01, 0x0a, 0x0c, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12,
+ 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+ 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
+ 0x31, 0x2e, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2e, 0x4d,
+ 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
+ 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+ 0x02, 0x38, 0x01, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x40, 0x0a, 0x15, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65,
+ 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x62,
+ 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x22, 0x38, 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a,
+ 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a,
+ 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64,
+ 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x6d, 0x6f, 0x64,
+ 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
+ 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05,
+ 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x45, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65,
- 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x21, 0x2e, 0x76, 0x31, 0x62, 0x65,
- 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
- 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76,
- 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76,
- 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
- 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x21, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
- 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f,
- 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x31, 0x62,
+ 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65,
+ 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x13,
+ 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e,
+ 0x61, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x0a, 0x18, 0x52,
+ 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
+ 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65,
+ 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x3e, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x62, 0x65,
+ 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x0a, 0x18, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
+ 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64,
+ 0x65, 0x6c, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x32, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e,
+ 0x61, 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
+ 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63,
+ 0x65, 0x32, 0xcc, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x4d, 0x61,
+ 0x70, 0x70, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x76,
+ 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52, 0x65, 0x67,
+ 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76,
+ 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52, 0x65, 0x67,
+ 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x5f, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
+ 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x62, 0x65,
+ 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x32, 0xe8, 0x04, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x65,
+ 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69,
+ 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x62,
+ 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x62,
+ 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a,
+ 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x2e,
+ 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65,
+ 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31,
+ 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x76,
+ 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63,
- 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
- 0x12, 0x44, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x19, 0x2e,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
+ 0x12, 0x21, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x52, 0x65, 0x6d,
+ 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x21,
+ 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f,
+ 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x21, 0x2e, 0x76,
+ 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x22, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74,
+ 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63,
- 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
- 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x3b, 0x76, 0x31, 0x62,
- 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0c, 0x5a, 0x0a, 0x2e,
+ 0x2f, 0x3b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x33,
}
var (
@@ -2642,16 +2642,16 @@ var file_api_proto_goTypes = []interface{}{
(*Device)(nil), // 6: v1beta1.Device
(*DeviceSpec)(nil), // 7: v1beta1.DeviceSpec
(*DeviceProperty)(nil), // 8: v1beta1.DeviceProperty
- (*DBProvider)(nil), // 9: v1beta1.DBProvider
- (*DBProviderInflux)(nil), // 10: v1beta1.DBProviderInflux
- (*DataStandard)(nil), // 11: v1beta1.DataStandard
- (*ConfigData)(nil), // 12: v1beta1.ConfigData
- (*ProtocolConfig)(nil), // 13: v1beta1.ProtocolConfig
- (*VisitorConfig)(nil), // 14: v1beta1.VisitorConfig
- (*CustomizedValue)(nil), // 15: v1beta1.CustomizedValue
- (*PushMethod)(nil), // 16: v1beta1.PushMethod
- (*PushMethodHTTP)(nil), // 17: v1beta1.PushMethodHTTP
- (*PushMethodMQTT)(nil), // 18: v1beta1.PushMethodMQTT
+ (*ProtocolConfig)(nil), // 9: v1beta1.ProtocolConfig
+ (*VisitorConfig)(nil), // 10: v1beta1.VisitorConfig
+ (*CustomizedValue)(nil), // 11: v1beta1.CustomizedValue
+ (*PushMethod)(nil), // 12: v1beta1.PushMethod
+ (*PushMethodHTTP)(nil), // 13: v1beta1.PushMethodHTTP
+ (*PushMethodMQTT)(nil), // 14: v1beta1.PushMethodMQTT
+ (*DBMethod)(nil), // 15: v1beta1.DBMethod
+ (*DBMethodInflux)(nil), // 16: v1beta1.DBMethodInflux
+ (*DataStandard)(nil), // 17: v1beta1.DataStandard
+ (*ConfigData)(nil), // 18: v1beta1.ConfigData
(*MapperInfo)(nil), // 19: v1beta1.MapperInfo
(*ReportDeviceStatusRequest)(nil), // 20: v1beta1.ReportDeviceStatusRequest
(*DeviceStatus)(nil), // 21: v1beta1.DeviceStatus
@@ -2685,20 +2685,20 @@ var file_api_proto_depIdxs = []int32{
5, // 5: v1beta1.DeviceModelSpec.commands:type_name -> v1beta1.DeviceCommand
7, // 6: v1beta1.Device.spec:type_name -> v1beta1.DeviceSpec
21, // 7: v1beta1.Device.status:type_name -> v1beta1.DeviceStatus
- 13, // 8: v1beta1.DeviceSpec.protocol:type_name -> v1beta1.ProtocolConfig
+ 9, // 8: v1beta1.DeviceSpec.protocol:type_name -> v1beta1.ProtocolConfig
8, // 9: v1beta1.DeviceSpec.properties:type_name -> v1beta1.DeviceProperty
23, // 10: v1beta1.DeviceProperty.desired:type_name -> v1beta1.TwinProperty
- 14, // 11: v1beta1.DeviceProperty.visitors:type_name -> v1beta1.VisitorConfig
- 16, // 12: v1beta1.DeviceProperty.pushMethod:type_name -> v1beta1.PushMethod
- 9, // 13: v1beta1.DeviceProperty.dbProvider:type_name -> v1beta1.DBProvider
- 10, // 14: v1beta1.DBProvider.influx:type_name -> v1beta1.DBProviderInflux
- 12, // 15: v1beta1.DBProviderInflux.configData:type_name -> v1beta1.ConfigData
- 11, // 16: v1beta1.DBProviderInflux.dataStandard:type_name -> v1beta1.DataStandard
- 15, // 17: v1beta1.ProtocolConfig.configData:type_name -> v1beta1.CustomizedValue
- 15, // 18: v1beta1.VisitorConfig.configData:type_name -> v1beta1.CustomizedValue
- 39, // 19: v1beta1.CustomizedValue.data:type_name -> v1beta1.CustomizedValue.DataEntry
- 17, // 20: v1beta1.PushMethod.http:type_name -> v1beta1.PushMethodHTTP
- 18, // 21: v1beta1.PushMethod.mqtt:type_name -> v1beta1.PushMethodMQTT
+ 10, // 11: v1beta1.DeviceProperty.visitors:type_name -> v1beta1.VisitorConfig
+ 12, // 12: v1beta1.DeviceProperty.pushMethod:type_name -> v1beta1.PushMethod
+ 11, // 13: v1beta1.ProtocolConfig.configData:type_name -> v1beta1.CustomizedValue
+ 11, // 14: v1beta1.VisitorConfig.configData:type_name -> v1beta1.CustomizedValue
+ 39, // 15: v1beta1.CustomizedValue.data:type_name -> v1beta1.CustomizedValue.DataEntry
+ 13, // 16: v1beta1.PushMethod.http:type_name -> v1beta1.PushMethodHTTP
+ 14, // 17: v1beta1.PushMethod.mqtt:type_name -> v1beta1.PushMethodMQTT
+ 15, // 18: v1beta1.PushMethod.dbMethod:type_name -> v1beta1.DBMethod
+ 16, // 19: v1beta1.DBMethod.influx:type_name -> v1beta1.DBMethodInflux
+ 18, // 20: v1beta1.DBMethodInflux.configData:type_name -> v1beta1.ConfigData
+ 17, // 21: v1beta1.DBMethodInflux.dataStandard:type_name -> v1beta1.DataStandard
21, // 22: v1beta1.ReportDeviceStatusRequest.reportedDevice:type_name -> v1beta1.DeviceStatus
22, // 23: v1beta1.DeviceStatus.twins:type_name -> v1beta1.Twin
23, // 24: v1beta1.Twin.observedDesired:type_name -> v1beta1.TwinProperty
@@ -2850,7 +2850,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DBProvider); i {
+ switch v := v.(*ProtocolConfig); i {
case 0:
return &v.state
case 1:
@@ -2862,7 +2862,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DBProviderInflux); i {
+ switch v := v.(*VisitorConfig); i {
case 0:
return &v.state
case 1:
@@ -2874,7 +2874,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DataStandard); i {
+ switch v := v.(*CustomizedValue); i {
case 0:
return &v.state
case 1:
@@ -2886,7 +2886,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ConfigData); i {
+ switch v := v.(*PushMethod); i {
case 0:
return &v.state
case 1:
@@ -2898,7 +2898,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ProtocolConfig); i {
+ switch v := v.(*PushMethodHTTP); i {
case 0:
return &v.state
case 1:
@@ -2910,7 +2910,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*VisitorConfig); i {
+ switch v := v.(*PushMethodMQTT); i {
case 0:
return &v.state
case 1:
@@ -2922,7 +2922,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CustomizedValue); i {
+ switch v := v.(*DBMethod); i {
case 0:
return &v.state
case 1:
@@ -2934,7 +2934,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PushMethod); i {
+ switch v := v.(*DBMethodInflux); i {
case 0:
return &v.state
case 1:
@@ -2946,7 +2946,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PushMethodHTTP); i {
+ switch v := v.(*DataStandard); i {
case 0:
return &v.state
case 1:
@@ -2958,7 +2958,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PushMethodMQTT); i {
+ switch v := v.(*ConfigData); i {
case 0:
return &v.state
case 1:
diff --git a/pkg/apis/dmi/v1beta1/api.proto b/pkg/apis/dmi/v1beta1/api.proto
index 6b426d1a4..dfac1e3ca 100644
--- a/pkg/apis/dmi/v1beta1/api.proto
+++ b/pkg/apis/dmi/v1beta1/api.proto
@@ -194,35 +194,6 @@ message DeviceProperty {
bool reportToCloud = 6;
// PushMethod represents the protocol used to push data,
PushMethod pushMethod = 7;
- DBProvider dbProvider = 8;
-}
-
-message DBProvider{
- // the config of database .
- DBProviderInflux influx = 1;
-}
-
-message DBProviderInflux{
- // the config of influx database.
- ConfigData configData = 1;
- DataStandard dataStandard = 2;
-}
-
-message DataStandard{
- // datastandard when push data to influx
- string measurement = 1;
- string tagKey = 2;
- string tagValue = 3;
- string fieldKey = 4;
-}
-
-message ConfigData{
- // influx database url
- string url = 1;
- // usr org in influx database
- string org = 2;
- // usr bucket in influx database
- string bucket = 3;
}
// ProtocolConfig is the specific config of the protocol to access to the device.
@@ -250,6 +221,7 @@ message CustomizedValue {
message PushMethod {
PushMethodHTTP http = 1;
PushMethodMQTT mqtt = 2;
+ DBMethod dbMethod = 3;
}
message PushMethodHTTP {
@@ -270,6 +242,34 @@ message PushMethodMQTT {
bool retained = 4;
}
+message DBMethod{
+ // the config of database .
+ DBMethodInflux influx = 1;
+}
+
+message DBMethodInflux{
+ // the config of influx database.
+ ConfigData configData = 1;
+ DataStandard dataStandard = 2;
+}
+
+message DataStandard{
+ // datastandard when push data to influx
+ string measurement = 1;
+ string tagKey = 2;
+ string tagValue = 3;
+ string fieldKey = 4;
+}
+
+message ConfigData{
+ // influx database url
+ string url = 1;
+ // usr org in influx database
+ string org = 2;
+ // usr bucket in influx database
+ string bucket = 3;
+}
+
// MapperInfo is the information of mapper.
message MapperInfo {
// name of the mapper.
diff --git a/staging/src/github.com/kubeedge/mapper-generator/README.md b/staging/src/github.com/kubeedge/mapper-generator/README.md
index ddc9c8fdf..97e2bfc5f 100644
--- a/staging/src/github.com/kubeedge/mapper-generator/README.md
+++ b/staging/src/github.com/kubeedge/mapper-generator/README.md
@@ -39,7 +39,7 @@ mapper
│ └── main.go ------------------ Almost need not change.
├── config.yaml ---------------- Configuration file including DMI's grpc settting
├── data ----------------------- Publish data and database implementation layer, almost need not change
-│ ├── dbprovider --------------- Provider implement database interfaces to save data and provide REST API
+│ ├── dbmethod ----------------- Provider implement database interfaces to save data and provide REST API
│ │ ├── influx ----------------- Implementation of Time Series Database(InfluxDB)
│ │ │ └── client.go ------------ WIP
│ │ └── redis ----------------- Implementation of K/V Database(Redis)
diff --git a/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/Dockerfile b/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/Dockerfile
index 3d4613604..643642db8 100644
--- a/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/Dockerfile
+++ b/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/Dockerfile
@@ -2,9 +2,7 @@ FROM ubuntu:16.04
RUN mkdir -p kubeedge
-COPY ./bin/Template kubeedge/
+COPY ./cmd/main kubeedge/
COPY ./config.yaml kubeedge/
WORKDIR kubeedge
-
-CMD ./Template
diff --git a/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/data/dbprovider/influx/client.go b/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/data/dbmethod/influx/client.go
index 258c2c020..258c2c020 100644
--- a/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/data/dbprovider/influx/client.go
+++ b/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/data/dbmethod/influx/client.go
diff --git a/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/data/dbprovider/redis/client.go b/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/data/dbmethod/redis/client.go
index 96ea8641c..96ea8641c 100644
--- a/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/data/dbprovider/redis/client.go
+++ b/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/data/dbmethod/redis/client.go
diff --git a/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/device/device.go b/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/device/device.go
index 3c07bb0b9..64b472e1a 100644
--- a/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/device/device.go
+++ b/staging/src/github.com/kubeedge/mapper-generator/_template/mapper/device/device.go
@@ -13,7 +13,7 @@ import (
"k8s.io/klog/v2"
- dbInflux "github.com/kubeedge/mapper-generator/Template/data/dbprovider/influx"
+ dbInflux "github.com/kubeedge/mapper-generator/Template/data/dbmethod/influx"
httpMethod "github.com/kubeedge/mapper-generator/Template/data/publish/http"
mqttMethod "github.com/kubeedge/mapper-generator/Template/data/publish/mqtt"
"github.com/kubeedge/mapper-generator/Template/driver"
@@ -145,7 +145,7 @@ func dataHandler(ctx context.Context, dev *driver.CustomizedDev) {
}
// handle database
- if twin.Property.DBProvider.DBProviderName != "" {
+ if twin.Property.PushMethod.DBMethod.DBMethodName != "" {
dataModel := common.NewDataModel(dev.Instance.Name, twin.Property.PropertyName, common.WithType(twin.ObservedDesired.Metadata.Type))
dbHandler(ctx, &twin, dev.CustomizedClient, &visitorConfig, dataModel)
}
@@ -204,9 +204,9 @@ func pushHandler(ctx context.Context, twin *common.Twin, client *driver.Customiz
// dbHandler start db client to save data
func dbHandler(ctx context.Context, twin *common.Twin, client *driver.CustomizedClient, visitorConfig *driver.VisitorConfig, dataModel *common.DataModel) {
- switch twin.Property.DBProvider.DBProviderName {
+ switch twin.Property.PushMethod.DBMethod.DBMethodName {
case "influx":
- dbConfig, err := dbInflux.NewDataBaseClient(twin.Property.DBProvider.ProviderConfig.ConfigData, twin.Property.DBProvider.ProviderConfig.DataStandard)
+ dbConfig, err := dbInflux.NewDataBaseClient(twin.Property.PushMethod.DBMethod.DBConfig.ConfigData, twin.Property.PushMethod.DBMethod.DBConfig.DataStandard)
if err != nil {
klog.Errorf("new database client error: %v", err)
return
diff --git a/staging/src/github.com/kubeedge/mapper-generator/pkg/common/configmaptype.go b/staging/src/github.com/kubeedge/mapper-generator/pkg/common/configmaptype.go
index 00293e152..0d2626ca6 100644
--- a/staging/src/github.com/kubeedge/mapper-generator/pkg/common/configmaptype.go
+++ b/staging/src/github.com/kubeedge/mapper-generator/pkg/common/configmaptype.go
@@ -80,7 +80,7 @@ type DeviceProperty struct {
CollectCycle int64 `json:"collectCycle"`
ReportCycle int64 `json:"reportCycle,omitempty"`
PushMethod PushMethodConfig `json:"pushMethod,omitempty"`
- DBProvider DBProviderConfig `json:"dbProvider,omitempty"`
+ //DBProvider DBProviderConfig `json:"dbProvider,omitempty"`
PProperty ModelProperty
}
@@ -89,17 +89,18 @@ type DeviceProperty struct {
type PushMethodConfig struct {
MethodName string `json:"MethodName"`
MethodConfig json.RawMessage `json:"MethodConfig"`
+ DBMethod DBMethodConfig `json:"dbMethod,omitempty"`
}
-type DBProviderConfig struct {
- DBProviderName string `json:"dbProviderName"`
- ProviderConfig ProviderConfig `json:"providerConfig"`
+type DBMethodConfig struct {
+ DBMethodName string `json:"dbMethodName"`
+ DBConfig DBConfig `json:"dbConfig"`
}
-type ProviderConfig struct {
+type DBConfig struct {
ConfigData json.RawMessage `json:"configData"`
DataStandard json.RawMessage `json:"dataStandard"`
- RedisConfigData json.RawMessage `json:" redisConfigData"`
+ RedisConfigData json.RawMessage `json:"redisConfigData"`
}
// Metadata is the metadata for data.
diff --git a/staging/src/github.com/kubeedge/mapper-generator/pkg/temp/api.pb.go b/staging/src/github.com/kubeedge/mapper-generator/pkg/temp/api.pb.go
index 33e86ce28..80eeae108 100644
--- a/staging/src/github.com/kubeedge/mapper-generator/pkg/temp/api.pb.go
+++ b/staging/src/github.com/kubeedge/mapper-generator/pkg/temp/api.pb.go
@@ -1,5 +1,5 @@
/*
-Copyright 2023 The KubeEdge Authors.
+Copyright 2022 The KubeEdge Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -625,7 +625,6 @@ type DeviceProperty struct {
ReportToCloud bool `protobuf:"varint,6,opt,name=reportToCloud,proto3" json:"reportToCloud,omitempty"`
// PushMethod represents the protocol used to push data,
PushMethod *PushMethod `protobuf:"bytes,7,opt,name=pushMethod,proto3" json:"pushMethod,omitempty"`
- DBProvider *DBProvider `protobuf:"bytes,8,opt,name=dbProvider,proto3" json:"dbProvider,omitempty"`
}
func (x *DeviceProperty) Reset() {
@@ -709,24 +708,20 @@ func (x *DeviceProperty) GetPushMethod() *PushMethod {
return nil
}
-func (x *DeviceProperty) GetBvider() *DBProvider {
- if x != nil {
- return x.DBProvider
- }
- return nil
-}
-
-type DBProvider struct {
+// ProtocolConfig is the specific config of the protocol to access to the device.
+type ProtocolConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // the config of database .
- Influx *DBProviderInflux `protobuf:"bytes,1,opt,name=influx,proto3" json:"influx,omitempty"`
+ // the name of the customized protocol.
+ ProtocolName string `protobuf:"bytes,1,opt,name=protocolName,proto3" json:"protocolName,omitempty"`
+ // the config data of the customized protocol.
+ ConfigData *CustomizedValue `protobuf:"bytes,2,opt,name=configData,proto3" json:"configData,omitempty"`
}
-func (x *DBProvider) Reset() {
- *x = DBProvider{}
+func (x *ProtocolConfig) Reset() {
+ *x = ProtocolConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -734,13 +729,13 @@ func (x *DBProvider) Reset() {
}
}
-func (x *DBProvider) String() string {
+func (x *ProtocolConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*DBProvider) ProtoMessage() {}
+func (*ProtocolConfig) ProtoMessage() {}
-func (x *DBProvider) ProtoReflect() protoreflect.Message {
+func (x *ProtocolConfig) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -752,30 +747,39 @@ func (x *DBProvider) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use DBProvider.ProtoReflect.Descriptor instead.
-func (*DBProvider) Descriptor() ([]byte, []int) {
+// Deprecated: Use ProtocolConfig.ProtoReflect.Descriptor instead.
+func (*ProtocolConfig) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{9}
}
-func (x *DBProvider) GetInflux() *DBProviderInflux {
+func (x *ProtocolConfig) GetProtocolName() string {
if x != nil {
- return x.Influx
+ return x.ProtocolName
+ }
+ return ""
+}
+
+func (x *ProtocolConfig) GetConfigData() *CustomizedValue {
+ if x != nil {
+ return x.ConfigData
}
return nil
}
-type DBProviderInflux struct {
+// the visitor to collect the properties of the device of customized protocol.
+type VisitorConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // the config of influx database.
- ConfigData *ConfigData `protobuf:"bytes,1,opt,name=configData,proto3" json:"configData,omitempty"`
- DataStandard *DataStandard `protobuf:"bytes,2,opt,name=dataStandard,proto3" json:"dataStandard,omitempty"`
+ // the name of the customized protocol.
+ ProtocolName string `protobuf:"bytes,1,opt,name=protocolName,proto3" json:"protocolName,omitempty"`
+ // the config data of the customized protocol.
+ ConfigData *CustomizedValue `protobuf:"bytes,2,opt,name=configData,proto3" json:"configData,omitempty"`
}
-func (x *DBProviderInflux) Reset() {
- *x = DBProviderInflux{}
+func (x *VisitorConfig) Reset() {
+ *x = VisitorConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -783,13 +787,13 @@ func (x *DBProviderInflux) Reset() {
}
}
-func (x *DBProviderInflux) String() string {
+func (x *VisitorConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*DBProviderInflux) ProtoMessage() {}
+func (*VisitorConfig) ProtoMessage() {}
-func (x *DBProviderInflux) ProtoReflect() protoreflect.Message {
+func (x *VisitorConfig) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -801,39 +805,37 @@ func (x *DBProviderInflux) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use DBProviderInflux.ProtoReflect.Descriptor instead.
-func (*DBProviderInflux) Descriptor() ([]byte, []int) {
+// Deprecated: Use VisitorConfig.ProtoReflect.Descriptor instead.
+func (*VisitorConfig) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{10}
}
-func (x *DBProviderInflux) GetConfigData() *ConfigData {
+func (x *VisitorConfig) GetProtocolName() string {
if x != nil {
- return x.ConfigData
+ return x.ProtocolName
}
- return nil
+ return ""
}
-func (x *DBProviderInflux) GetDataStandard() *DataStandard {
+func (x *VisitorConfig) GetConfigData() *CustomizedValue {
if x != nil {
- return x.DataStandard
+ return x.ConfigData
}
return nil
}
-type DataStandard struct {
+// CustomizedValue is the customized value for developers.
+type CustomizedValue struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // datastandard when push data to influx
- Measurement string `protobuf:"bytes,1,opt,name=measurement,proto3" json:"measurement,omitempty"`
- TagKey string `protobuf:"bytes,2,opt,name=tagKey,proto3" json:"tagKey,omitempty"`
- TagValue string `protobuf:"bytes,3,opt,name=tagValue,proto3" json:"tagValue,omitempty"`
- FieldKey string `protobuf:"bytes,4,opt,name=fieldKey,proto3" json:"fieldKey,omitempty"`
+ // data is the customized value and it can be any form.
+ Data map[string]*anypb.Any `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
-func (x *DataStandard) Reset() {
- *x = DataStandard{}
+func (x *CustomizedValue) Reset() {
+ *x = CustomizedValue{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -841,13 +843,13 @@ func (x *DataStandard) Reset() {
}
}
-func (x *DataStandard) String() string {
+func (x *CustomizedValue) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*DataStandard) ProtoMessage() {}
+func (*CustomizedValue) ProtoMessage() {}
-func (x *DataStandard) ProtoReflect() protoreflect.Message {
+func (x *CustomizedValue) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -859,54 +861,30 @@ func (x *DataStandard) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use DataStandard.ProtoReflect.Descriptor instead.
-func (*DataStandard) Descriptor() ([]byte, []int) {
+// Deprecated: Use CustomizedValue.ProtoReflect.Descriptor instead.
+func (*CustomizedValue) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{11}
}
-func (x *DataStandard) GetMeasurement() string {
- if x != nil {
- return x.Measurement
- }
- return ""
-}
-
-func (x *DataStandard) GetTagKey() string {
- if x != nil {
- return x.TagKey
- }
- return ""
-}
-
-func (x *DataStandard) GetTagValue() string {
- if x != nil {
- return x.TagValue
- }
- return ""
-}
-
-func (x *DataStandard) GetFieldKey() string {
+func (x *CustomizedValue) GetData() map[string]*anypb.Any {
if x != nil {
- return x.FieldKey
+ return x.Data
}
- return ""
+ return nil
}
-type ConfigData struct {
+type PushMethod struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // influx database url
- Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
- // usr org in influx database
- Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"`
- // usr bucket in influx database
- Bucket string `protobuf:"bytes,3,opt,name=bucket,proto3" json:"bucket,omitempty"`
+ Http *PushMethodHTTP `protobuf:"bytes,1,opt,name=http,proto3" json:"http,omitempty"`
+ Mqtt *PushMethodMQTT `protobuf:"bytes,2,opt,name=mqtt,proto3" json:"mqtt,omitempty"`
+ DBMethod *DBMethod `protobuf:"bytes,3,opt,name=dbMethod,proto3" json:"dbMethod,omitempty"`
}
-func (x *ConfigData) Reset() {
- *x = ConfigData{}
+func (x *PushMethod) Reset() {
+ *x = PushMethod{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -914,13 +892,13 @@ func (x *ConfigData) Reset() {
}
}
-func (x *ConfigData) String() string {
+func (x *PushMethod) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*ConfigData) ProtoMessage() {}
+func (*PushMethod) ProtoMessage() {}
-func (x *ConfigData) ProtoReflect() protoreflect.Message {
+func (x *PushMethod) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -932,46 +910,45 @@ func (x *ConfigData) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use ConfigData.ProtoReflect.Descriptor instead.
-func (*ConfigData) Descriptor() ([]byte, []int) {
+// Deprecated: Use PushMethod.ProtoReflect.Descriptor instead.
+func (*PushMethod) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{12}
}
-func (x *ConfigData) GetUrl() string {
+func (x *PushMethod) GetHttp() *PushMethodHTTP {
if x != nil {
- return x.Url
+ return x.Http
}
- return ""
+ return nil
}
-func (x *ConfigData) GetOrg() string {
+func (x *PushMethod) GetMqtt() *PushMethodMQTT {
if x != nil {
- return x.Org
+ return x.Mqtt
}
- return ""
+ return nil
}
-func (x *ConfigData) GetBucket() string {
+func (x *PushMethod) GetDBMethod() *DBMethod {
if x != nil {
- return x.Bucket
+ return x.DBMethod
}
- return ""
+ return nil
}
-// ProtocolConfig is the specific config of the protocol to access to the device.
-type ProtocolConfig struct {
+type PushMethodHTTP struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // the name of the customized protocol.
- ProtocolName string `protobuf:"bytes,1,opt,name=protocolName,proto3" json:"protocolName,omitempty"`
- // the config data of the customized protocol.
- ConfigData *CustomizedValue `protobuf:"bytes,2,opt,name=configData,proto3" json:"configData,omitempty"`
+ Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
+ Port int64 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
+ Requestpath string `protobuf:"bytes,3,opt,name=requestpath,proto3" json:"requestpath,omitempty"`
+ Timeout int64 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"`
}
-func (x *ProtocolConfig) Reset() {
- *x = ProtocolConfig{}
+func (x *PushMethodHTTP) Reset() {
+ *x = PushMethodHTTP{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -979,13 +956,13 @@ func (x *ProtocolConfig) Reset() {
}
}
-func (x *ProtocolConfig) String() string {
+func (x *PushMethodHTTP) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*ProtocolConfig) ProtoMessage() {}
+func (*PushMethodHTTP) ProtoMessage() {}
-func (x *ProtocolConfig) ProtoReflect() protoreflect.Message {
+func (x *PushMethodHTTP) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -997,39 +974,56 @@ func (x *ProtocolConfig) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use ProtocolConfig.ProtoReflect.Descriptor instead.
-func (*ProtocolConfig) Descriptor() ([]byte, []int) {
+// Deprecated: Use PushMethodHTTP.ProtoReflect.Descriptor instead.
+func (*PushMethodHTTP) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{13}
}
-func (x *ProtocolConfig) GetProtocolName() string {
+func (x *PushMethodHTTP) GetHostname() string {
if x != nil {
- return x.ProtocolName
+ return x.Hostname
}
return ""
}
-func (x *ProtocolConfig) GetConfigData() *CustomizedValue {
+func (x *PushMethodHTTP) GetPort() int64 {
if x != nil {
- return x.ConfigData
+ return x.Port
}
- return nil
+ return 0
}
-// the visitor to collect the properties of the device of customized protocol.
-type VisitorConfig struct {
+func (x *PushMethodHTTP) GetRequestpath() string {
+ if x != nil {
+ return x.Requestpath
+ }
+ return ""
+}
+
+func (x *PushMethodHTTP) GetTimeout() int64 {
+ if x != nil {
+ return x.Timeout
+ }
+ return 0
+}
+
+type PushMethodMQTT struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // the name of the customized protocol.
- ProtocolName string `protobuf:"bytes,1,opt,name=protocolName,proto3" json:"protocolName,omitempty"`
- // the config data of the customized protocol.
- ConfigData *CustomizedValue `protobuf:"bytes,2,opt,name=configData,proto3" json:"configData,omitempty"`
+ // broker address, like mqtt://127.0.0.1:1883
+ Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
+ // publish topic for mqtt
+ Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"`
+ // qos of mqtt publish param
+ Qos int32 `protobuf:"varint,3,opt,name=qos,proto3" json:"qos,omitempty"`
+ // Is the message retained
+ Retained bool `protobuf:"varint,4,opt,name=retained,proto3" json:"retained,omitempty"`
}
-func (x *VisitorConfig) Reset() {
- *x = VisitorConfig{}
+func (x *PushMethodMQTT) Reset() {
+ *x = PushMethodMQTT{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1037,13 +1031,13 @@ func (x *VisitorConfig) Reset() {
}
}
-func (x *VisitorConfig) String() string {
+func (x *PushMethodMQTT) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*VisitorConfig) ProtoMessage() {}
+func (*PushMethodMQTT) ProtoMessage() {}
-func (x *VisitorConfig) ProtoReflect() protoreflect.Message {
+func (x *PushMethodMQTT) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1055,37 +1049,50 @@ func (x *VisitorConfig) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use VisitorConfig.ProtoReflect.Descriptor instead.
-func (*VisitorConfig) Descriptor() ([]byte, []int) {
+// Deprecated: Use PushMethodMQTT.ProtoReflect.Descriptor instead.
+func (*PushMethodMQTT) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{14}
}
-func (x *VisitorConfig) GetProtocolName() string {
+func (x *PushMethodMQTT) GetAddress() string {
if x != nil {
- return x.ProtocolName
+ return x.Address
}
return ""
}
-func (x *VisitorConfig) GetConfigData() *CustomizedValue {
+func (x *PushMethodMQTT) GetTopic() string {
if x != nil {
- return x.ConfigData
+ return x.Topic
}
- return nil
+ return ""
}
-// CustomizedValue is the customized value for developers.
-type CustomizedValue struct {
+func (x *PushMethodMQTT) GetQos() int32 {
+ if x != nil {
+ return x.Qos
+ }
+ return 0
+}
+
+func (x *PushMethodMQTT) GetRetained() bool {
+ if x != nil {
+ return x.Retained
+ }
+ return false
+}
+
+type DBMethod struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // data is the customized value and it can be any form.
- Data map[string]*anypb.Any `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // the config of database .
+ Influx *DBMethodInflux `protobuf:"bytes,1,opt,name=influx,proto3" json:"influx,omitempty"`
}
-func (x *CustomizedValue) Reset() {
- *x = CustomizedValue{}
+func (x *DBMethod) Reset() {
+ *x = DBMethod{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1093,13 +1100,13 @@ func (x *CustomizedValue) Reset() {
}
}
-func (x *CustomizedValue) String() string {
+func (x *DBMethod) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*CustomizedValue) ProtoMessage() {}
+func (*DBMethod) ProtoMessage() {}
-func (x *CustomizedValue) ProtoReflect() protoreflect.Message {
+func (x *DBMethod) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1111,29 +1118,30 @@ func (x *CustomizedValue) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use CustomizedValue.ProtoReflect.Descriptor instead.
-func (*CustomizedValue) Descriptor() ([]byte, []int) {
+// Deprecated: Use DBMethod.ProtoReflect.Descriptor instead.
+func (*DBMethod) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{15}
}
-func (x *CustomizedValue) GetData() map[string]*anypb.Any {
+func (x *DBMethod) GetInflux() *DBMethodInflux {
if x != nil {
- return x.Data
+ return x.Influx
}
return nil
}
-type PushMethod struct {
+type DBMethodInflux struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Http *PushMethodHTTP `protobuf:"bytes,1,opt,name=http,proto3" json:"http,omitempty"`
- Mqtt *PushMethodMQTT `protobuf:"bytes,2,opt,name=mqtt,proto3" json:"mqtt,omitempty"`
+ // the config of influx database.
+ ConfigData *ConfigData `protobuf:"bytes,1,opt,name=configData,proto3" json:"configData,omitempty"`
+ DataStandard *DataStandard `protobuf:"bytes,2,opt,name=dataStandard,proto3" json:"dataStandard,omitempty"`
}
-func (x *PushMethod) Reset() {
- *x = PushMethod{}
+func (x *DBMethodInflux) Reset() {
+ *x = DBMethodInflux{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1141,13 +1149,13 @@ func (x *PushMethod) Reset() {
}
}
-func (x *PushMethod) String() string {
+func (x *DBMethodInflux) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PushMethod) ProtoMessage() {}
+func (*DBMethodInflux) ProtoMessage() {}
-func (x *PushMethod) ProtoReflect() protoreflect.Message {
+func (x *DBMethodInflux) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1159,38 +1167,39 @@ func (x *PushMethod) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PushMethod.ProtoReflect.Descriptor instead.
-func (*PushMethod) Descriptor() ([]byte, []int) {
+// Deprecated: Use DBMethodInflux.ProtoReflect.Descriptor instead.
+func (*DBMethodInflux) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{16}
}
-func (x *PushMethod) GetHttp() *PushMethodHTTP {
+func (x *DBMethodInflux) GetConfigData() *ConfigData {
if x != nil {
- return x.Http
+ return x.ConfigData
}
return nil
}
-func (x *PushMethod) GetMqtt() *PushMethodMQTT {
+func (x *DBMethodInflux) GetDataStandard() *DataStandard {
if x != nil {
- return x.Mqtt
+ return x.DataStandard
}
return nil
}
-type PushMethodHTTP struct {
+type DataStandard struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
- Port int64 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
- Requestpath string `protobuf:"bytes,3,opt,name=requestpath,proto3" json:"requestpath,omitempty"`
- Timeout int64 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"`
+ // datastandard when push data to influx
+ Measurement string `protobuf:"bytes,1,opt,name=measurement,proto3" json:"measurement,omitempty"`
+ TagKey string `protobuf:"bytes,2,opt,name=tagKey,proto3" json:"tagKey,omitempty"`
+ TagValue string `protobuf:"bytes,3,opt,name=tagValue,proto3" json:"tagValue,omitempty"`
+ FieldKey string `protobuf:"bytes,4,opt,name=fieldKey,proto3" json:"fieldKey,omitempty"`
}
-func (x *PushMethodHTTP) Reset() {
- *x = PushMethodHTTP{}
+func (x *DataStandard) Reset() {
+ *x = DataStandard{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1198,13 +1207,13 @@ func (x *PushMethodHTTP) Reset() {
}
}
-func (x *PushMethodHTTP) String() string {
+func (x *DataStandard) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PushMethodHTTP) ProtoMessage() {}
+func (*DataStandard) ProtoMessage() {}
-func (x *PushMethodHTTP) ProtoReflect() protoreflect.Message {
+func (x *DataStandard) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1216,56 +1225,54 @@ func (x *PushMethodHTTP) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PushMethodHTTP.ProtoReflect.Descriptor instead.
-func (*PushMethodHTTP) Descriptor() ([]byte, []int) {
+// Deprecated: Use DataStandard.ProtoReflect.Descriptor instead.
+func (*DataStandard) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{17}
}
-func (x *PushMethodHTTP) GetHostname() string {
+func (x *DataStandard) GetMeasurement() string {
if x != nil {
- return x.Hostname
+ return x.Measurement
}
return ""
}
-func (x *PushMethodHTTP) GetPort() int64 {
+func (x *DataStandard) GetTagKey() string {
if x != nil {
- return x.Port
+ return x.TagKey
}
- return 0
+ return ""
}
-func (x *PushMethodHTTP) GetRequestpath() string {
+func (x *DataStandard) GetTagValue() string {
if x != nil {
- return x.Requestpath
+ return x.TagValue
}
return ""
}
-func (x *PushMethodHTTP) GetTimeout() int64 {
+func (x *DataStandard) GetFieldKey() string {
if x != nil {
- return x.Timeout
+ return x.FieldKey
}
- return 0
+ return ""
}
-type PushMethodMQTT struct {
+type ConfigData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- // broker address, like mqtt://127.0.0.1:1883
- Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
- // publish topic for mqtt
- Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"`
- // qos of mqtt publish param
- Qos int32 `protobuf:"varint,3,opt,name=qos,proto3" json:"qos,omitempty"`
- // Is the message retained
- Retained bool `protobuf:"varint,4,opt,name=retained,proto3" json:"retained,omitempty"`
+ // influx database url
+ Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
+ // usr org in influx database
+ Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"`
+ // usr bucket in influx database
+ Bucket string `protobuf:"bytes,3,opt,name=bucket,proto3" json:"bucket,omitempty"`
}
-func (x *PushMethodMQTT) Reset() {
- *x = PushMethodMQTT{}
+func (x *ConfigData) Reset() {
+ *x = ConfigData{}
if protoimpl.UnsafeEnabled {
mi := &file_api_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1273,13 +1280,13 @@ func (x *PushMethodMQTT) Reset() {
}
}
-func (x *PushMethodMQTT) String() string {
+func (x *ConfigData) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PushMethodMQTT) ProtoMessage() {}
+func (*ConfigData) ProtoMessage() {}
-func (x *PushMethodMQTT) ProtoReflect() protoreflect.Message {
+func (x *ConfigData) ProtoReflect() protoreflect.Message {
mi := &file_api_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1291,37 +1298,30 @@ func (x *PushMethodMQTT) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PushMethodMQTT.ProtoReflect.Descriptor instead.
-func (*PushMethodMQTT) Descriptor() ([]byte, []int) {
+// Deprecated: Use ConfigData.ProtoReflect.Descriptor instead.
+func (*ConfigData) Descriptor() ([]byte, []int) {
return file_api_proto_rawDescGZIP(), []int{18}
}
-func (x *PushMethodMQTT) GetAddress() string {
+func (x *ConfigData) GetUrl() string {
if x != nil {
- return x.Address
+ return x.Url
}
return ""
}
-func (x *PushMethodMQTT) GetTopic() string {
+func (x *ConfigData) GetOrg() string {
if x != nil {
- return x.Topic
+ return x.Org
}
return ""
}
-func (x *PushMethodMQTT) GetQos() int32 {
- if x != nil {
- return x.Qos
- }
- return 0
-}
-
-func (x *PushMethodMQTT) GetRetained() bool {
+func (x *ConfigData) GetBucket() string {
if x != nil {
- return x.Retained
+ return x.Bucket
}
- return false
+ return ""
}
// MapperInfo is the information of mapper.
@@ -2381,7 +2381,7 @@ var file_api_proto_rawDesc = []byte{
0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72,
- 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xdf, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xaa, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x2f, 0x0a, 0x07, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
@@ -2400,223 +2400,223 @@ var file_api_proto_rawDesc = []byte{
0x12, 0x33, 0x0a, 0x0a, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50,
0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0a, 0x70, 0x75, 0x73, 0x68, 0x4d,
- 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x33, 0x0a, 0x0a, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69,
- 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x62, 0x65,
- 0x74, 0x61, 0x31, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x0a,
- 0x64, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x0a, 0x44, 0x42,
- 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x69, 0x6e, 0x66, 0x6c,
- 0x75, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
- 0x61, 0x31, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66,
- 0x6c, 0x75, 0x78, 0x52, 0x06, 0x69, 0x6e, 0x66, 0x6c, 0x75, 0x78, 0x22, 0x82, 0x01, 0x0a, 0x10,
- 0x44, 0x42, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6c, 0x75, 0x78,
- 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43,
- 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61,
- 0x6e, 0x64, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31,
- 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61,
- 0x72, 0x64, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
- 0x22, 0x80, 0x01, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
- 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d,
- 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x67, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x74,
- 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74,
- 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64,
- 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64,
- 0x4b, 0x65, 0x79, 0x22, 0x48, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74,
- 0x61, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x6e, 0x0a,
- 0x0e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
- 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e,
- 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74,
- 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
- 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a,
- 0x0d, 0x56, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22,
- 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e, 0x61,
- 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
- 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0x98, 0x01, 0x0a,
- 0x0f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22,
+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x6e, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
+ 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x63, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x63,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x18, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d,
+ 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a, 0x0d, 0x56, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
+ 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69,
- 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x4d, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x18, 0x02, 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, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x66, 0x0a, 0x0a, 0x50, 0x75, 0x73, 0x68, 0x4d,
- 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x2b, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75,
- 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x54, 0x54, 0x50, 0x52, 0x04, 0x68, 0x74,
- 0x74, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6d, 0x71, 0x74, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x17, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x4d,
- 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4d, 0x51, 0x54, 0x54, 0x52, 0x04, 0x6d, 0x71, 0x74, 0x74, 0x22,
- 0x7c, 0x0a, 0x0e, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x54, 0x54,
- 0x50, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a,
- 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x6f, 0x72,
- 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x70,
- 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x6e, 0x0a,
- 0x0e, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4d, 0x51, 0x54, 0x54, 0x12,
- 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70,
- 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12,
- 0x10, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x71, 0x6f,
- 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x04, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x22, 0xa7, 0x01,
- 0x0a, 0x0a, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04,
- 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70,
- 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
- 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
- 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x7a, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6f, 0x72,
- 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61,
- 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
- 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64,
- 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76,
- 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x44, 0x65, 0x76,
- 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x0c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x05, 0x74, 0x77, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x77, 0x69,
- 0x6e, 0x52, 0x05, 0x74, 0x77, 0x69, 0x6e, 0x73, 0x22, 0x9e, 0x01, 0x0a, 0x04, 0x54, 0x77, 0x69,
- 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
- 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0f, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x64, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
- 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x72, 0x6f,
- 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0f, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x44,
- 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74,
- 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
- 0x61, 0x31, 0x2e, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52,
- 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x54, 0x77,
- 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x77, 0x69,
- 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
- 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
- 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1c,
- 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x0a, 0x15,
- 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
- 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x38,
- 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69,
- 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65,
- 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65,
- 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
- 0x22, 0x45, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
- 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a,
- 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f,
- 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76,
- 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e,
- 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x16,
- 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
- 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65,
- 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
- 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x0a,
- 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44,
- 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x16, 0x0a,
- 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44,
- 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x14, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
- 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x1b, 0x0a,
- 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64,
- 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x0a, 0x10, 0x47, 0x65,
- 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e,
- 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3c,
- 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65,
- 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x32, 0xcc, 0x01, 0x0a,
- 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x53, 0x65,
- 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52,
- 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
- 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
- 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x12, 0x52, 0x65,
- 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x12, 0x22, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72,
- 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52,
- 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xe8, 0x04, 0x0a, 0x13,
- 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44,
- 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
- 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
- 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f,
- 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
- 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
- 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74,
- 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
- 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
- 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x21, 0x2e, 0x76, 0x31,
- 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
- 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22,
- 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44,
+ 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x44, 0x61, 0x74, 0x61, 0x22, 0x98, 0x01, 0x0a, 0x0f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69,
+ 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
+ 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
+ 0x1a, 0x4d, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
+ 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
+ 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 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, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
+ 0x95, 0x01, 0x0a, 0x0a, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x2b,
+ 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76,
+ 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f,
+ 0x64, 0x48, 0x54, 0x54, 0x50, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6d,
+ 0x71, 0x74, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x62, 0x65,
+ 0x74, 0x61, 0x31, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4d, 0x51,
+ 0x54, 0x54, 0x52, 0x04, 0x6d, 0x71, 0x74, 0x74, 0x12, 0x2d, 0x0a, 0x08, 0x64, 0x62, 0x4d, 0x65,
+ 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x62,
+ 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x42, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x08, 0x64,
+ 0x62, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x7c, 0x0a, 0x0e, 0x50, 0x75, 0x73, 0x68, 0x4d,
+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x54, 0x54, 0x50, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73,
+ 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73,
+ 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
+ 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x70, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x74,
+ 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69,
+ 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x6e, 0x0a, 0x0e, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74,
+ 0x68, 0x6f, 0x64, 0x4d, 0x51, 0x54, 0x54, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
+ 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
+ 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x71, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x3b, 0x0a, 0x08, 0x44, 0x42, 0x4d, 0x65, 0x74, 0x68, 0x6f,
+ 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x69, 0x6e, 0x66, 0x6c, 0x75, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x42, 0x4d, 0x65,
+ 0x74, 0x68, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6c, 0x75, 0x78, 0x52, 0x06, 0x69, 0x6e, 0x66, 0x6c,
+ 0x75, 0x78, 0x22, 0x80, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x49,
+ 0x6e, 0x66, 0x6c, 0x75, 0x78, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44,
+ 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x62, 0x65,
+ 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a,
+ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x61,
+ 0x74, 0x61, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x15, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53,
+ 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61,
+ 0x6e, 0x64, 0x61, 0x72, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74,
+ 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72,
+ 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x61,
+ 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x67, 0x4b,
+ 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x67, 0x4b, 0x65, 0x79,
+ 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08,
+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x22, 0x48, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75,
+ 0x63, 0x6b, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b,
+ 0x65, 0x74, 0x22, 0xa7, 0x01, 0x0a, 0x0a, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x49, 0x6e, 0x66,
+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+ 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07,
+ 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61,
+ 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x7a, 0x0a, 0x19,
+ 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x72, 0x65, 0x70,
+ 0x6f, 0x72, 0x74, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74,
+ 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x0c, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x05, 0x74, 0x77, 0x69, 0x6e,
+ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
+ 0x31, 0x2e, 0x54, 0x77, 0x69, 0x6e, 0x52, 0x05, 0x74, 0x77, 0x69, 0x6e, 0x73, 0x22, 0x9e, 0x01,
+ 0x0a, 0x04, 0x54, 0x77, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
+ 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0f, 0x6f, 0x62,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x77,
+ 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0f, 0x6f, 0x62, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x64, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x72,
+ 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
+ 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x22, 0xa2,
+ 0x01, 0x0a, 0x0c, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12,
+ 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+ 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
+ 0x31, 0x2e, 0x54, 0x77, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2e, 0x4d,
+ 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
+ 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+ 0x02, 0x38, 0x01, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x40, 0x0a, 0x15, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65,
+ 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x62,
+ 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x22, 0x38, 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a,
+ 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a,
+ 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64,
+ 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x6d, 0x6f, 0x64,
+ 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
+ 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05,
+ 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x45, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65,
- 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x21, 0x2e, 0x76, 0x31, 0x62, 0x65,
- 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
- 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76,
- 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76,
- 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
- 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x21, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
- 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f,
- 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x31, 0x62,
+ 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65,
+ 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x13,
+ 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e,
+ 0x61, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x0a, 0x18, 0x52,
+ 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
+ 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65,
+ 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x3e, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x62, 0x65,
+ 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x0a, 0x18, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
+ 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64,
+ 0x65, 0x6c, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x32, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e,
+ 0x61, 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
+ 0x61, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63,
+ 0x65, 0x32, 0xcc, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x4d, 0x61,
+ 0x70, 0x70, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x76,
+ 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52, 0x65, 0x67,
+ 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76,
+ 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52, 0x65, 0x67,
+ 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x5f, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
+ 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x62, 0x65,
+ 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x32, 0xe8, 0x04, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x65,
+ 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69,
+ 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x62,
+ 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x62,
+ 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a,
+ 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x2e,
+ 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65,
+ 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31,
+ 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x76,
+ 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63,
- 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
- 0x12, 0x44, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x19, 0x2e,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
+ 0x12, 0x21, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x52, 0x65, 0x6d,
+ 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x21,
+ 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f,
+ 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x21, 0x2e, 0x76,
+ 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x22, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74,
+ 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63,
- 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
- 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x3b, 0x76, 0x31, 0x62,
- 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0c, 0x5a, 0x0a, 0x2e,
+ 0x2f, 0x3b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x33,
}
var (
@@ -2642,16 +2642,16 @@ var file_api_proto_goTypes = []interface{}{
(*Device)(nil), // 6: v1beta1.Device
(*DeviceSpec)(nil), // 7: v1beta1.DeviceSpec
(*DeviceProperty)(nil), // 8: v1beta1.DeviceProperty
- (*DBProvider)(nil), // 9: v1beta1.DBProvider
- (*DBProviderInflux)(nil), // 10: v1beta1.DBProviderInflux
- (*DataStandard)(nil), // 11: v1beta1.DataStandard
- (*ConfigData)(nil), // 12: v1beta1.ConfigData
- (*ProtocolConfig)(nil), // 13: v1beta1.ProtocolConfig
- (*VisitorConfig)(nil), // 14: v1beta1.VisitorConfig
- (*CustomizedValue)(nil), // 15: v1beta1.CustomizedValue
- (*PushMethod)(nil), // 16: v1beta1.PushMethod
- (*PushMethodHTTP)(nil), // 17: v1beta1.PushMethodHTTP
- (*PushMethodMQTT)(nil), // 18: v1beta1.PushMethodMQTT
+ (*ProtocolConfig)(nil), // 9: v1beta1.ProtocolConfig
+ (*VisitorConfig)(nil), // 10: v1beta1.VisitorConfig
+ (*CustomizedValue)(nil), // 11: v1beta1.CustomizedValue
+ (*PushMethod)(nil), // 12: v1beta1.PushMethod
+ (*PushMethodHTTP)(nil), // 13: v1beta1.PushMethodHTTP
+ (*PushMethodMQTT)(nil), // 14: v1beta1.PushMethodMQTT
+ (*DBMethod)(nil), // 15: v1beta1.DBMethod
+ (*DBMethodInflux)(nil), // 16: v1beta1.DBMethodInflux
+ (*DataStandard)(nil), // 17: v1beta1.DataStandard
+ (*ConfigData)(nil), // 18: v1beta1.ConfigData
(*MapperInfo)(nil), // 19: v1beta1.MapperInfo
(*ReportDeviceStatusRequest)(nil), // 20: v1beta1.ReportDeviceStatusRequest
(*DeviceStatus)(nil), // 21: v1beta1.DeviceStatus
@@ -2685,20 +2685,20 @@ var file_api_proto_depIdxs = []int32{
5, // 5: v1beta1.DeviceModelSpec.commands:type_name -> v1beta1.DeviceCommand
7, // 6: v1beta1.Device.spec:type_name -> v1beta1.DeviceSpec
21, // 7: v1beta1.Device.status:type_name -> v1beta1.DeviceStatus
- 13, // 8: v1beta1.DeviceSpec.protocol:type_name -> v1beta1.ProtocolConfig
+ 9, // 8: v1beta1.DeviceSpec.protocol:type_name -> v1beta1.ProtocolConfig
8, // 9: v1beta1.DeviceSpec.properties:type_name -> v1beta1.DeviceProperty
23, // 10: v1beta1.DeviceProperty.desired:type_name -> v1beta1.TwinProperty
- 14, // 11: v1beta1.DeviceProperty.visitors:type_name -> v1beta1.VisitorConfig
- 16, // 12: v1beta1.DeviceProperty.pushMethod:type_name -> v1beta1.PushMethod
- 9, // 13: v1beta1.DeviceProperty.dbProvider:type_name -> v1beta1.DBProvider
- 10, // 14: v1beta1.DBProvider.influx:type_name -> v1beta1.DBProviderInflux
- 12, // 15: v1beta1.DBProviderInflux.configData:type_name -> v1beta1.ConfigData
- 11, // 16: v1beta1.DBProviderInflux.dataStandard:type_name -> v1beta1.DataStandard
- 15, // 17: v1beta1.ProtocolConfig.configData:type_name -> v1beta1.CustomizedValue
- 15, // 18: v1beta1.VisitorConfig.configData:type_name -> v1beta1.CustomizedValue
- 39, // 19: v1beta1.CustomizedValue.data:type_name -> v1beta1.CustomizedValue.DataEntry
- 17, // 20: v1beta1.PushMethod.http:type_name -> v1beta1.PushMethodHTTP
- 18, // 21: v1beta1.PushMethod.mqtt:type_name -> v1beta1.PushMethodMQTT
+ 10, // 11: v1beta1.DeviceProperty.visitors:type_name -> v1beta1.VisitorConfig
+ 12, // 12: v1beta1.DeviceProperty.pushMethod:type_name -> v1beta1.PushMethod
+ 11, // 13: v1beta1.ProtocolConfig.configData:type_name -> v1beta1.CustomizedValue
+ 11, // 14: v1beta1.VisitorConfig.configData:type_name -> v1beta1.CustomizedValue
+ 39, // 15: v1beta1.CustomizedValue.data:type_name -> v1beta1.CustomizedValue.DataEntry
+ 13, // 16: v1beta1.PushMethod.http:type_name -> v1beta1.PushMethodHTTP
+ 14, // 17: v1beta1.PushMethod.mqtt:type_name -> v1beta1.PushMethodMQTT
+ 15, // 18: v1beta1.PushMethod.dbMethod:type_name -> v1beta1.DBMethod
+ 16, // 19: v1beta1.DBMethod.influx:type_name -> v1beta1.DBMethodInflux
+ 18, // 20: v1beta1.DBMethodInflux.configData:type_name -> v1beta1.ConfigData
+ 17, // 21: v1beta1.DBMethodInflux.dataStandard:type_name -> v1beta1.DataStandard
21, // 22: v1beta1.ReportDeviceStatusRequest.reportedDevice:type_name -> v1beta1.DeviceStatus
22, // 23: v1beta1.DeviceStatus.twins:type_name -> v1beta1.Twin
23, // 24: v1beta1.Twin.observedDesired:type_name -> v1beta1.TwinProperty
@@ -2850,7 +2850,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DBProvider); i {
+ switch v := v.(*ProtocolConfig); i {
case 0:
return &v.state
case 1:
@@ -2862,7 +2862,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DBProviderInflux); i {
+ switch v := v.(*VisitorConfig); i {
case 0:
return &v.state
case 1:
@@ -2874,7 +2874,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DataStandard); i {
+ switch v := v.(*CustomizedValue); i {
case 0:
return &v.state
case 1:
@@ -2886,7 +2886,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ConfigData); i {
+ switch v := v.(*PushMethod); i {
case 0:
return &v.state
case 1:
@@ -2898,7 +2898,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ProtocolConfig); i {
+ switch v := v.(*PushMethodHTTP); i {
case 0:
return &v.state
case 1:
@@ -2910,7 +2910,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*VisitorConfig); i {
+ switch v := v.(*PushMethodMQTT); i {
case 0:
return &v.state
case 1:
@@ -2922,7 +2922,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CustomizedValue); i {
+ switch v := v.(*DBMethod); i {
case 0:
return &v.state
case 1:
@@ -2934,7 +2934,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PushMethod); i {
+ switch v := v.(*DBMethodInflux); i {
case 0:
return &v.state
case 1:
@@ -2946,7 +2946,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PushMethodHTTP); i {
+ switch v := v.(*DataStandard); i {
case 0:
return &v.state
case 1:
@@ -2958,7 +2958,7 @@ func file_api_proto_init() {
}
}
file_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PushMethodMQTT); i {
+ switch v := v.(*ConfigData); i {
case 0:
return &v.state
case 1:
diff --git a/staging/src/github.com/kubeedge/mapper-generator/pkg/temp/api.proto b/staging/src/github.com/kubeedge/mapper-generator/pkg/temp/api.proto
index 6b426d1a4..dfac1e3ca 100644
--- a/staging/src/github.com/kubeedge/mapper-generator/pkg/temp/api.proto
+++ b/staging/src/github.com/kubeedge/mapper-generator/pkg/temp/api.proto
@@ -194,35 +194,6 @@ message DeviceProperty {
bool reportToCloud = 6;
// PushMethod represents the protocol used to push data,
PushMethod pushMethod = 7;
- DBProvider dbProvider = 8;
-}
-
-message DBProvider{
- // the config of database .
- DBProviderInflux influx = 1;
-}
-
-message DBProviderInflux{
- // the config of influx database.
- ConfigData configData = 1;
- DataStandard dataStandard = 2;
-}
-
-message DataStandard{
- // datastandard when push data to influx
- string measurement = 1;
- string tagKey = 2;
- string tagValue = 3;
- string fieldKey = 4;
-}
-
-message ConfigData{
- // influx database url
- string url = 1;
- // usr org in influx database
- string org = 2;
- // usr bucket in influx database
- string bucket = 3;
}
// ProtocolConfig is the specific config of the protocol to access to the device.
@@ -250,6 +221,7 @@ message CustomizedValue {
message PushMethod {
PushMethodHTTP http = 1;
PushMethodMQTT mqtt = 2;
+ DBMethod dbMethod = 3;
}
message PushMethodHTTP {
@@ -270,6 +242,34 @@ message PushMethodMQTT {
bool retained = 4;
}
+message DBMethod{
+ // the config of database .
+ DBMethodInflux influx = 1;
+}
+
+message DBMethodInflux{
+ // the config of influx database.
+ ConfigData configData = 1;
+ DataStandard dataStandard = 2;
+}
+
+message DataStandard{
+ // datastandard when push data to influx
+ string measurement = 1;
+ string tagKey = 2;
+ string tagValue = 3;
+ string fieldKey = 4;
+}
+
+message ConfigData{
+ // influx database url
+ string url = 1;
+ // usr org in influx database
+ string org = 2;
+ // usr bucket in influx database
+ string bucket = 3;
+}
+
// MapperInfo is the information of mapper.
message MapperInfo {
// name of the mapper.
diff --git a/staging/src/github.com/kubeedge/mapper-generator/pkg/util/parse/grpc.go b/staging/src/github.com/kubeedge/mapper-generator/pkg/util/parse/grpc.go
index ac343e18a..a9fdc61cf 100644
--- a/staging/src/github.com/kubeedge/mapper-generator/pkg/util/parse/grpc.go
+++ b/staging/src/github.com/kubeedge/mapper-generator/pkg/util/parse/grpc.go
@@ -31,12 +31,12 @@ func getPushMethodFromGrpc(visitor *dmiapi.DeviceProperty) (string, error) {
return "", errors.New("can not parse publish method")
}
-func getDBProviderFromGrpc(visitor *dmiapi.DeviceProperty) (string, error) {
- // TODO add more dbProvider
- if visitor.DBProvider.Influx != nil {
+func getDBMethodFromGrpc(visitor *dmiapi.DeviceProperty) (string, error) {
+ // TODO add more dbMethod
+ if visitor.PushMethod.DBMethod.Influx != nil {
return "influx", nil
}
- return "", errors.New("can not parse dbProvider")
+ return "", errors.New("can not parse dbMethod")
}
func BuildProtocolFromGrpc(device *dmiapi.Device) (common.ProtocolConfig, error) {
@@ -131,28 +131,28 @@ func buildPropertiesFromGrpc(device *dmiapi.Device) []common.DeviceProperty {
return nil
}
- // get dbProvider filed by grpc device instance
- var dbProviderName string
- var dbProvider common.ProviderConfig
- if pptv.DBProvider != nil {
- dbProviderName, err = getDBProviderFromGrpc(pptv)
+ // get dbMethod filed by grpc device instance
+ var dbMethodName string
+ var dbconfig common.DBConfig
+ if pptv.PushMethod.DBMethod != nil {
+ dbMethodName, err = getDBMethodFromGrpc(pptv)
if err != nil {
klog.Errorf("err: %+v", err)
return nil
}
- switch dbProviderName {
+ switch dbMethodName {
case "influx":
- configdata, err := json.Marshal(pptv.DBProvider.Influx.ConfigData)
+ configdata, err := json.Marshal(pptv.PushMethod.DBMethod.Influx.ConfigData)
if err != nil {
klog.Errorf("err: %+v", err)
return nil
}
- datastandard, err := json.Marshal(pptv.DBProvider.Influx.DataStandard)
+ datastandard, err := json.Marshal(pptv.PushMethod.DBMethod.Influx.DataStandard)
if err != nil {
klog.Errorf("err: %+v", err)
return nil
}
- dbProvider = common.ProviderConfig{
+ dbconfig = common.DBConfig{
ConfigData: configdata,
DataStandard: datastandard,
}
@@ -193,10 +193,10 @@ func buildPropertiesFromGrpc(device *dmiapi.Device) []common.DeviceProperty {
PushMethod: common.PushMethodConfig{
MethodName: pushMethodName,
MethodConfig: pushMethod,
- },
- DBProvider: common.DBProviderConfig{
- DBProviderName: dbProviderName,
- ProviderConfig: dbProvider,
+ DBMethod: common.DBMethodConfig{
+ DBMethodName: dbMethodName,
+ DBConfig: dbconfig,
+ },
},
}
res = append(res, cur)