346 lines
7.7 KiB
Protocol Buffer
Raw Normal View History

2019-10-28 12:13:01 +02:00
/**
* Copyright © 2016-2020 The Thingsboard Authors
2019-10-28 12:13:01 +02:00
*
* 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";
2020-06-16 16:49:27 +03:00
import "queue.proto";
2019-10-28 12:13:01 +02:00
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;
DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg = 2;
RuleChainUpdateMsg ruleChainUpdateMsg = 3;
RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = 4;
DashboardUpdateMsg dashboardUpdateMsg = 5;
AssetUpdateMsg assetUpdateMsg = 6;
EntityViewUpdateMsg entityViewUpdateMsg = 7;
AlarmUpdateMsg alarmUpdateMsg = 8;
UserUpdateMsg userUpdateMsg = 9;
UserCredentialsUpdateMsg userCredentialsUpdateMsg = 10;
CustomerUpdateMsg customerUpdateMsg = 11;
RelationUpdateMsg relationUpdateMsg = 12;
2020-07-30 18:58:04 +03:00
WidgetsBundleUpdateMsg widgetsBundleUpdateMsg = 13;
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 {
int64 edgeIdMSB = 1;
int64 edgeIdLSB = 2;
int64 tenantIdMSB = 3;
int64 tenantIdLSB = 4;
string name = 5;
string routingKey = 6;
string type = 7;
string cloudType = 8;
2019-10-29 19:21:53 +02:00
}
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;
2020-06-16 16:49:27 +03:00
DEVICE_CONFLICT_RPC_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 {
2020-06-18 13:30:45 +03:00
int64 entityIdMSB = 1;
int64 entityIdLSB = 2;
string entityType = 3;
2020-06-16 16:49:27 +03:00
transport.PostTelemetryMsg postTelemetryMsg = 4;
transport.PostAttributeMsg postAttributesMsg = 5;
2020-07-14 19:22:31 +03:00
string postAttributeScope = 6;
AttributeDeleteMsg attributeDeleteMsg = 7;
2020-06-16 16:49:27 +03:00
// transport.ToDeviceRpcRequestMsg ???
}
message AttributeDeleteMsg {
string scope = 1;
repeated string attributeNames = 2;
}
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;
2020-06-11 20:28:06 +03:00
repeated RuleNodeProto nodes = 5;
repeated NodeConnectionInfoProto connections = 6;
repeated RuleChainConnectionInfoProto ruleChainConnections = 7;
}
message RuleNodeProto {
2020-02-06 19:29:49 +02:00
int64 idMSB = 1;
int64 idLSB = 2;
string type = 3;
string name = 4;
bool debugMode = 5;
string configuration = 6;
string additionalInfo = 7;
}
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;
2019-12-11 11:02:25 +02:00
string title = 4;
string configuration = 5;
}
message DeviceUpdateMsg {
UpdateMsgType msgType = 1;
2020-06-10 15:34:10 +03:00
int64 idMSB = 2;
int64 idLSB = 3;
string name = 4;
string type = 5;
string label = 6;
}
message DeviceCredentialsUpdateMsg {
int64 deviceIdMSB = 1;
int64 deviceIdLSB = 2;
string credentialsType = 3;
string credentialsId = 4;
string credentialsValue = 5;
}
message AssetUpdateMsg {
UpdateMsgType msgType = 1;
2020-06-10 15:34:10 +03:00
int64 idMSB = 2;
int64 idLSB = 3;
string name = 4;
string type = 5;
string label = 6;
}
message EntityViewUpdateMsg {
UpdateMsgType msgType = 1;
2020-06-10 15:34:10 +03:00
int64 idMSB = 2;
int64 idLSB = 3;
string name = 4;
string type = 5;
int64 entityIdMSB = 6;
int64 entityIdLSB = 7;
EdgeEntityType entityType = 8;
}
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;
}
2019-12-11 11:02:25 +02:00
message CustomerUpdateMsg {
UpdateMsgType msgType = 1;
int64 idMSB = 2;
int64 idLSB = 3;
string title = 4;
string country = 5;
string state = 6;
string city = 7;
string address = 8;
string address2 = 9;
string zip = 10;
string phone = 11;
string email = 12;
string additionalInfo = 13;
}
message RelationUpdateMsg {
UpdateMsgType msgType = 1;
int64 fromIdMSB = 2;
int64 fromIdLSB = 3;
string fromEntityType = 4;
int64 toIdMSB = 5;
int64 toIdLSB = 6;
string toEntityType = 7;
string type = 8;
string typeGroup = 9;
string additionalInfo = 10;
}
2019-12-11 11:02:25 +02:00
message UserUpdateMsg {
UpdateMsgType msgType = 1;
2020-06-10 15:34:10 +03:00
int64 idMSB = 2;
int64 idLSB = 3;
string email = 4;
string authority = 5;
string firstName = 6;
string lastName = 7;
string additionalInfo = 8;
}
2020-07-30 18:58:04 +03:00
message WidgetsBundleUpdateMsg {
UpdateMsgType msgType = 1;
int64 idMSB = 2;
int64 idLSB = 3;
string title = 4;
string alias = 5;
bytes image = 6;
}
message UserCredentialsUpdateMsg {
int64 userIdMSB = 1;
int64 userIdLSB = 2;
bool enabled = 3;
string password = 4;
2019-12-11 11:02:25 +02:00
}
message RuleChainMetadataRequestMsg {
int64 ruleChainIdMSB = 1;
int64 ruleChainIdLSB = 2;
}
message AttributesRequestMsg {
int64 entityIdMSB = 1;
int64 entityIdLSB = 2;
string entityType = 3;
}
message RelationRequestMsg {
int64 entityIdMSB = 1;
int64 entityIdLSB = 2;
string entityType = 3;
}
message UserCredentialsRequestMsg {
int64 userIdMSB = 1;
int64 userIdLSB = 2;
}
message DeviceCredentialsRequestMsg {
int64 deviceIdMSB = 1;
int64 deviceIdLSB = 2;
}
2020-05-22 18:52:44 +03:00
enum EdgeEntityType {
2020-06-11 20:28:06 +03:00
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 DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg = 4;
repeated AlarmUpdateMsg alarmUpdateMsg = 5;
repeated RuleChainMetadataRequestMsg ruleChainMetadataRequestMsg = 6;
repeated AttributesRequestMsg attributesRequestMsg = 7;
repeated RelationRequestMsg relationRequestMsg = 8;
repeated UserCredentialsRequestMsg userCredentialsRequestMsg = 9;
repeated DeviceCredentialsRequestMsg deviceCredentialsRequestMsg = 10;
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;
repeated DeviceCredentialsRequestMsg deviceCredentialsRequestMsg = 3;
2019-10-29 19:21:53 +02:00
}