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); } 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; }