216 lines
4.6 KiB
Protocol Buffer
Raw Normal View History

2019-10-28 12:13:01 +02:00
/**
* Copyright © 2016-2019 The Thingsboard Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
syntax = "proto3";
2019-10-29 19:21:53 +02:00
option java_package = "org.thingsboard.server.gen.edge";
option java_multiple_files = true;
2019-10-28 12:13:01 +02:00
option java_outer_classname = "EdgeProtos";
package edge;
2019-10-29 19:21:53 +02:00
// Interface exported by the ThingsBoard Edge Transport.
2019-10-28 12:13:01 +02:00
service EdgeRpcService {
2019-10-29 19:21:53 +02:00
rpc handleMsgs(stream RequestMsg) returns (stream ResponseMsg) {}
2019-10-28 12:13:01 +02:00
}
/**
* Data Structures;
*/
2019-10-29 19:21:53 +02:00
message RequestMsg {
RequestMsgType msgType = 1;
ConnectRequestMsg connectRequestMsg = 2;
2019-11-18 19:37:16 +02:00
UplinkMsg uplinkMsg = 3;
2019-10-28 12:13:01 +02:00
}
2019-10-29 19:21:53 +02:00
message ResponseMsg {
ConnectResponseMsg connectResponseMsg = 1;
UplinkResponseMsg uplinkResponseMsg = 2;
2019-11-18 19:37:16 +02:00
EntityUpdateMsg entityUpdateMsg = 3;
DownlinkMsg downlinkMsg = 4;
}
message EntityUpdateMsg {
DeviceUpdateMsg deviceUpdateMsg = 1;
RuleChainUpdateMsg ruleChainUpdateMsg = 2;
RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = 3;
DashboardUpdateMsg dashboardUpdateMsg = 4;
AssetUpdateMsg assetUpdateMsg = 5;
EntityViewUpdateMsg entityViewUpdateMsg = 6;
AlarmUpdateMsg alarmUpdateMsg = 7;
2019-10-29 19:21:53 +02:00
}
enum RequestMsgType {
CONNECT_RPC_MESSAGE = 0;
UPLINK_RPC_MESSAGE = 1;
}
message ConnectRequestMsg {
string edgeRoutingKey = 1;
string edgeSecret = 2;
}
enum ConnectResponseCode {
ACCEPTED = 0;
BAD_CREDENTIALS = 1;
SERVER_UNAVAILABLE = 2;
2019-10-28 12:13:01 +02:00
}
2019-10-29 19:21:53 +02:00
message ConnectResponseMsg {
ConnectResponseCode responseCode = 1;
string errorMsg = 2;
EdgeConfiguration configuration = 3;
2019-10-28 12:13:01 +02:00
}
message EdgeConfiguration {
2019-10-29 19:21:53 +02:00
int64 tenantIdMSB = 1;
int64 tenantIdLSB = 2;
string name = 5;
string routingKey = 6;
string type = 7;
}
enum UpdateMsgType {
ENTITY_CREATED_RPC_MESSAGE = 0;
ENTITY_UPDATED_RPC_MESSAGE = 1;
ENTITY_DELETED_RPC_MESSAGE = 2;
2019-11-18 19:37:16 +02:00
ALARM_ACK_RPC_MESSAGE = 3;
2019-11-19 19:43:27 +02:00
ALARM_CLEAR_RPC_MESSAGE = 4;
2019-11-18 19:37:16 +02:00
RULE_CHAIN_CUSTOM_MESSAGE = 5;
2019-10-28 12:13:01 +02:00
}
2019-10-29 19:21:53 +02:00
2019-11-15 18:38:14 +02:00
message EntityDataProto {
string entityName = 1;
string entityType = 2;
bytes tbMsg = 3;
}
message RuleChainUpdateMsg {
UpdateMsgType msgType = 1;
int64 idMSB = 2;
int64 idLSB = 3;
string name = 4;
int64 firstRuleNodeIdMSB = 5;
int64 firstRuleNodeIdLSB = 6;
bool root = 7;
bool debugMode = 8;
string configuration = 9;
}
message RuleChainMetadataUpdateMsg {
UpdateMsgType msgType = 1;
int64 ruleChainIdMSB = 2;
int64 ruleChainIdLSB = 3;
int32 firstNodeIndex = 4;
repeated RuleNodeProto nodes = 5;
repeated NodeConnectionInfoProto connections = 6;
repeated RuleChainConnectionInfoProto ruleChainConnections = 7;
}
message RuleNodeProto {
string type = 1;
string name = 2;
bool debugMode = 3;
string configuration = 4;
string additionalInfo = 5;
}
message NodeConnectionInfoProto {
int32 fromIndex = 1;
int32 toIndex = 2;
string type = 3;
}
message RuleChainConnectionInfoProto {
int32 fromIndex = 1;
int64 targetRuleChainIdMSB = 2;
int64 targetRuleChainIdLSB = 3;
string type = 4;
string additionalInfo = 5;
}
message DashboardUpdateMsg {
UpdateMsgType msgType = 1;
int64 idMSB = 2;
int64 idLSB = 3;
string name = 4;
}
message DeviceUpdateMsg {
UpdateMsgType msgType = 1;
string name = 2;
string type = 3;
}
message AssetUpdateMsg {
UpdateMsgType msgType = 1;
string name = 2;
string type = 3;
}
message EntityViewUpdateMsg {
UpdateMsgType msgType = 1;
string name = 2;
string type = 3;
string relatedName = 4;
string relatedType = 5;
EntityType relatedEntityType = 6;
}
2019-11-18 19:37:16 +02:00
message AlarmUpdateMsg {
UpdateMsgType msgType = 1;
string name = 2;
string type = 3;
string originatorType = 4;
string originatorName = 5;
string severity = 6;
string status = 7;
int64 startTs = 8;
int64 endTs = 9;
int64 ackTs = 10;
int64 clearTs = 11;
string details = 12;
bool propagate = 13;
}
enum EntityType {
DEVICE = 0;
ASSET = 1;
}
2019-10-29 19:21:53 +02:00
/**
* Main Messages;
*/
message UplinkMsg {
int32 uplinkMsgId = 1;
2019-11-15 18:38:14 +02:00
repeated EntityDataProto entityData = 2;
2019-11-18 19:37:16 +02:00
repeated DeviceUpdateMsg deviceUpdateMsg = 3;
repeated AlarmUpdateMsg alarmUpdatemsg = 4;
2019-10-29 19:21:53 +02:00
}
message UplinkResponseMsg {
bool success = 1;
string errorMsg = 2;
}
message DownlinkMsg {
int32 downlinkMsgId = 1;
2019-11-15 18:38:14 +02:00
repeated EntityDataProto entityData = 2;
2019-10-29 19:21:53 +02:00
}