forked from mailgun/gubernator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
peers.proto
57 lines (43 loc) · 1.78 KB
/
peers.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
/*
Copyright 2018-2022 Mailgun Technologies Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
syntax = "proto3";
option go_package = "github.com/mailgun/gubernator";
option cc_generic_services = true;
package pb.gubernator;
import "gubernator.proto";
// NOTE: For use by gubernator peers only
service PeersV1 {
// Used by peers to relay batches of requests to an authoritative peer
rpc GetPeerRateLimits (GetPeerRateLimitsReq) returns (GetPeerRateLimitsResp) {}
// Used by peers send global rate limit updates to other peers
rpc UpdatePeerGlobals (UpdatePeerGlobalsReq) returns (UpdatePeerGlobalsResp) {}
}
message GetPeerRateLimitsReq {
// Must specify at least one RateLimit. The peer that recives this request MUST be authoritative for
// each rate_limit[x].unique_key provided, as the peer will not forward the request to any other peers
repeated RateLimitReq requests = 1;
}
message GetPeerRateLimitsResp {
// Responses are in the same order as they appeared in the PeerRateLimitRequests
repeated RateLimitResp rate_limits = 1;
}
message UpdatePeerGlobalsReq {
// Must specify at least one RateLimit
repeated UpdatePeerGlobal globals = 1;
}
message UpdatePeerGlobal {
string key = 1;
RateLimitResp status = 2;
Algorithm algorithm = 3;
}
message UpdatePeerGlobalsResp {}