-
Notifications
You must be signed in to change notification settings - Fork 0
/
service.proto
101 lines (79 loc) · 1.88 KB
/
service.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
syntax = "proto3";
package webDev;
import "google/api/annotations.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/duration.proto";
option go_package = "github.com/sharif-web/assignment4-fall2021/proto/build";
service WebDev {
rpc Monitoring (google.protobuf.Empty) returns (stream MonitoringLogStreamResponse) {
}
rpc GetRules (google.protobuf.Empty) returns (GetRulesResponse) {
option (google.api.http) = {
get: "/api/fraud/rules"
};
}
rpc UpdateRules (UpdateRulesRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
put: "/api/fraud/rules"
body: "*"
};
}
rpc GetReport (GetReportRequest) returns (GetReportResponse) {
option (google.api.http) = {
get: "/api/fraud/report"
};
}
}
message VehicleLog {
int64 code = 1;
int64 speed = 2;
Location location = 3 ;
bool is_off = 4;
float temperature = 5;
google.protobuf.Timestamp time = 6 ;
}
message Location {
float latitude = 1;
float longitude = 2;
}
message GetReportRequest {
int64 vehicle_code = 1 ;
int64 start_date_unix = 2;
int64 end_date_unix = 3;
}
message GetReportResponse {
google.protobuf.Duration driving_time = 1;
float covered_distance_km = 2;
repeated FraudDetectedEvent frauds = 3;
}
message TemperatureRule {
int32 min = 1 ;
int32 max = 2;
}
message GetRulesResponse {
Rules rules = 1;
}
message Rules {
TemperatureRule temperature_rule = 1;
uint32 max_speed = 2;
}
message UpdateRulesRequest {
Rules rules = 1;
}
message MonitoringLogStreamResponse {
VehicleLog vehicle_log = 1 ;
}
message FraudDetectedEvent {
int64 vehicle_code = 1;
RuleType type = 2;
google.protobuf.Timestamp time = 6 ;
}
enum RuleType {
Non = 0 ;
Speed = 1;
Temperature = 2 ;
}
message MonitoringFraudDetectNotificationResponse {
FraudDetectedEvent event = 2;
}