-
Notifications
You must be signed in to change notification settings - Fork 0
/
proto.proto
120 lines (93 loc) · 2.01 KB
/
proto.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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
syntax = "proto3";
package api;
import "google/protobuf/timestamp.proto";
import "google/protobuf/empty.proto";
option go_package = "go/api";
enum Character {
unknownCharacter = 0;
director = 1;
actor = 2;
operator = 3;
master = 4;
}
enum Method {
unknownMethod = 0;
get = 1;
getAll = 2;
put = 3;
delete = 4;
deleteAll = 5;
watch = 6;
setUserStatus = 10;
getActors = 20;
putResult = 21;
imReady = 30;
ping = 31;
}
enum Status {
unknownStatus = 0;
unknown = 1;
running = 2;
succeeded = 3;
failed = 4;
};
message Report {
string name = 1;
Status status = 2;
}
message User {
string name = 1;
Character character = 3;
string role = 4;
bool readiness = 5;
Status status = 6;
}
message Result {
message Score {
string name = 1;
string definition = 2;
string score = 3;
}
enum Status {
unknown = 0;
success = 1;
failed = 2;
}
string id = 1;
Status status = 2;
string msg = 3;
repeated Score scores = 4;
}
message Key {
string type = 1;
string name = 2;
string namespace = 3;
}
message Meta {
User owner = 1;
google.protobuf.Timestamp creationTime = 2;
}
message Message {
string content = 1;
Key key = 2;
Meta meta = 3;
}
service MessageAPI {
rpc Get(Key) returns (Message);
rpc GetAll(Key) returns (stream Message);
rpc Put(Message) returns (google.protobuf.Empty);
rpc Delete(Key) returns (google.protobuf.Empty);
rpc DeleteAll(Key) returns (google.protobuf.Empty);
rpc Watch(Key) returns (stream Message);
}
service DirectorAPI {
rpc GetActors(google.protobuf.Empty) returns (stream User);
rpc PutResult(Result) returns (google.protobuf.Empty);
}
service OperatorAPI {
rpc SetUserStatus(Report) returns (google.protobuf.Empty);
}
service UserAPI {
rpc ImReady(google.protobuf.Empty) returns (google.protobuf.Empty);
rpc Ping (google.protobuf.Empty) returns (google.protobuf.Empty);
}