Files
grpccanary/lib/grpc/basic/protoapi.proto
T

80 lines
1.5 KiB
Protocol Buffer

syntax = "proto3";
option go_package = "./protoapi/;protoapi";
service IoTService {
rpc GetDate (RequestDateTime) returns (DateTime);
rpc UpdateSensingData (SensingData) returns (SensingResponse);
rpc GetRandomPass (RequestPass) returns (RandomPass);
rpc UploadFile (stream FileChunk) returns (UploadStatus);
rpc ListFiles (EmptyRequest) returns (FileList);
rpc DownloadFile (DownloadRequest) returns (stream FileChunk);
rpc SubscribeAlerts (AlertSubscription) returns (stream AlertMessage);
}
message FileChunk {
string FileName = 1;
bytes Content = 2;
}
message UploadStatus {
bool Success = 1;
string Message = 2;
int64 BytesUploaded = 3;
}
message SensingData {
string DeviceId = 1;
double Temperature = 2;
double Humidity = 3;
}
message SensingResponse {
bool Success = 1;
string Message = 2;
}
message DateTime {
string Value = 1;
}
message RequestDateTime {
string Value = 2;
}
message RequestPass {
int64 Seed = 1;
int64 Length = 8;
}
message RandomPass {
string Password = 1;
}
message EmptyRequest {}
message FileMetadata {
string FileName = 1;
int64 FileSize = 2;
int64 UploadedAt = 3;
}
message FileList {
repeated FileMetadata Files = 1;
}
message DownloadRequest {
string FileName = 1;
}
message AlertSubscription {
string ClientId = 1;
string Topic = 2;
}
message AlertMessage {
string AlertId = 1;
string DeviceId = 2;
string Message = 3;
int64 Timestamp = 4;
}