transport.proto
Home
/
common /
transport /
src /
main /
proto /
transport.proto
/**
* Copyright © 2016-2018 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";
package transport;
option java_package = "org.thingsboard.server.gen.transport";
option java_outer_classname = "TransportProtos";
/**
* Data Structures;
*/
message SessionInfoProto {
int64 sessionIdMSB = 1;
int64 sessionIdLSB = 2;
int64 tenantIdMSB = 3;
int64 tenantIdLSB = 4;
int64 deviceIdMSB = 5;
int64 deviceIdLSB = 6;
}
enum SessionEvent {
OPEN = 0;
CLOSED = 1;
}
enum SessionType {
SYNC = 0;
ASYNC = 1;
}
enum KeyValueType {
BOOLEAN_V = 0;
LONG_V = 1;
DOUBLE_V = 2;
STRING_V = 3;
}
message KeyValueProto {
string key = 1;
KeyValueType type = 2;
bool bool_v = 3;
int64 long_v = 4;
double double_v = 5;
string string_v = 6;
}
message TsKvListProto {
int64 ts = 1;
repeated KeyValueProto kv = 2;
}
message DeviceInfoProto {
int64 tenantIdMSB = 1;
int64 tenantIdLSB = 2;
int64 deviceIdMSB = 3;
int64 deviceIdLSB = 4;
string deviceName = 5;
string deviceType = 6;
string additionalInfo = 7;
}
/**
* Messages that use Data Structures;
*/
message SessionEventMsg {
string nodeId = 1;
SessionType sessionType = 2;
SessionEvent event = 3;
}
message PostTelemetryMsg {
repeated TsKvListProto tsKvList = 1;
}
message PostAttributeMsg {
repeated KeyValueProto kv = 1;
}
message GetAttributeRequestMsg {
repeated string clientAttributeNames = 1;
repeated string sharedAttributeNames = 2;
}
message GetAttributeResponseMsg {
repeated TsKvListProto clientAttributeList = 1;
repeated TsKvListProto sharedAttributeList = 2;
repeated string deletedAttributeKeys = 3;
}
message ValidateDeviceTokenRequestMsg {
string token = 1;
}
message ValidateDeviceX509CertRequestMsg {
string hash = 1;
}
message ValidateDeviceCredentialsResponseMsg {
DeviceInfoProto deviceInfo = 1;
}
message SessionCloseNotificationProto {
string message = 1;
}
message TransportToDeviceActorMsg {
SessionInfoProto sessionInfo = 1;
SessionEventMsg sessionEvent = 2;
PostTelemetryMsg postTelemetry = 3;
PostAttributeMsg postAttributes = 4;
GetAttributeRequestMsg getAttributes = 5;
}
message DeviceActorToTransportMsg {
int64 sessionIdMSB = 1;
int64 sessionIdLSB = 2;
SessionCloseNotificationProto sessionCloseNotification = 3;
GetAttributeResponseMsg getAttributesResponse = 4;
}
/**
* Main messages;
*/
message ToRuleEngineMsg {
TransportToDeviceActorMsg toDeviceActorMsg = 1;
}
message ToTransportMsg {
DeviceActorToTransportMsg toDeviceSessionMsg = 1;
}
message TransportApiRequestMsg {
ValidateDeviceTokenRequestMsg validateTokenRequestMsg = 1;
ValidateDeviceX509CertRequestMsg validateX509CertRequestMsg = 2;
}
message TransportApiResponseMsg {
ValidateDeviceCredentialsResponseMsg validateTokenResponseMsg = 1;
}