-
Notifications
You must be signed in to change notification settings - Fork 0
/
copper.proto
133 lines (106 loc) · 2.14 KB
/
copper.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
121
122
123
124
125
126
127
128
129
130
131
132
133
syntax = "proto3";
package protocol;
message Endpoint {
string network = 1;
string address = 2;
sint64 target_id = 3;
}
message SubscribeOption {
string service = 1;
uint32 min_distance = 2;
uint32 max_distance = 3;
}
message PublishSettings {
uint32 priority = 1;
uint32 max_distance = 2;
uint32 concurrency = 3;
uint32 queue_size = 4;
}
message Route {
repeated SubscribeOption options = 1;
uint32 weight = 2;
}
message ServiceChange {
sint64 target_id = 1;
string name = 2;
PublishSettings settings = 3;
}
message SubscribeRequest {
repeated SubscribeOption options = 1;
bool disable_routes = 2;
}
message SubscribeResponse {
sint64 target_id = 1;
}
message GetEndpointsRequest {
sint64 target_id = 1;
}
message GetEndpointsResponse {
repeated Endpoint endpoints = 1;
}
message StreamEndpointsRequest {
sint64 target_id = 1;
}
message StreamEndpointsResponse {
repeated Endpoint added = 1;
repeated Endpoint removed = 2;
}
message UnsubscribeRequest {
sint64 target_id = 1;
}
message UnsubscribeResponse {
// nothing yet
}
message PublishRequest {
sint64 target_id = 1;
string name = 2;
PublishSettings settings = 3;
}
message PublishResponse {
// nothing yet
}
message UnpublishRequest {
sint64 target_id = 1;
}
message UnpublishResponse {
// nothing yet
}
message SetRouteRequest {
string name = 1;
repeated Route routes = 2;
}
message SetRouteResponse {
// nothing yet
}
message ListRoutesRequest {
// nothing yet
}
message ListRoutesResponse {
repeated string names = 1;
}
message LookupRouteRequest {
string name = 1;
}
message LookupRouteResponse {
repeated Route routes = 1;
}
message StreamServicesRequest {
// nothing yet
}
message StreamServicesResponse {
repeated sint64 removed = 1 [packed=true];
repeated ServiceChange changed = 2;
}
enum RequestType {
NewStream = 0;
Subscribe = 1;
GetEndpoints = 2;
StreamEndpoints = 3;
Unsubscribe = 4;
Publish = 5;
Unpublish = 6;
SetRoute = 7;
ListRoutes = 8;
LookupRoute = 9;
StreamServices = 10;
}