mirror of
https://github.com/shtorm-7/sing-box-extended.git
synced 2026-05-14 00:51:12 +03:00
156 lines
2.9 KiB
Protocol Buffer
156 lines
2.9 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
option go_package = "github.com/sagernet/sing-box/service/node_manager_api/manager";
|
|
|
|
package node_manager_api.v1;
|
|
|
|
service Manager {
|
|
rpc AddNode (Node) returns (stream NodeData);
|
|
rpc AcquireLock(AcquireLockRequest) returns (LockData);
|
|
rpc RefreshLock(LockData) returns (Empty);
|
|
rpc ReleaseLock(LockData) returns (Empty);
|
|
rpc AddTrafficUsage(TrafficUsageRequest) returns (TrafficUsageReply);
|
|
}
|
|
|
|
message Node {
|
|
string uuid = 1;
|
|
}
|
|
|
|
enum OpType {
|
|
updateUsers = 0;
|
|
updateUser = 1;
|
|
deleteUser = 2;
|
|
|
|
updateBandwidthLimiters = 3;
|
|
updateBandwidthLimiter = 4;
|
|
deleteBandwidthLimiter = 5;
|
|
|
|
updateConnectionLimiters = 6;
|
|
updateConnectionLimiter = 7;
|
|
deleteConnectionLimiter = 8;
|
|
|
|
updateTrafficLimiters = 9;
|
|
updateTrafficLimiter = 10;
|
|
deleteTrafficLimiter = 11;
|
|
|
|
updateRateLimiters = 12;
|
|
updateRateLimiter = 13;
|
|
deleteRateLimiter = 14;
|
|
}
|
|
|
|
message User {
|
|
int32 id = 1;
|
|
string username = 2;
|
|
string inbound = 3;
|
|
string type = 4;
|
|
string uuid = 5;
|
|
string password = 6;
|
|
string secret = 7;
|
|
string flow = 8;
|
|
int32 alter_id = 9;
|
|
}
|
|
|
|
message UserList {
|
|
repeated User values = 1;
|
|
}
|
|
|
|
message BandwidthLimiter {
|
|
int32 id = 1;
|
|
string username = 2;
|
|
string outbound = 3;
|
|
string strategy = 4;
|
|
string connection_type = 5;
|
|
string mode = 6;
|
|
repeated string flow_keys = 7;
|
|
string speed = 8;
|
|
uint64 raw_speed = 9;
|
|
}
|
|
|
|
message BandwidthLimiterList {
|
|
repeated BandwidthLimiter values = 1;
|
|
}
|
|
|
|
message ConnectionLimiter {
|
|
int32 id = 1;
|
|
string username = 2;
|
|
string outbound = 3;
|
|
string strategy = 4;
|
|
string connection_type = 5;
|
|
string lock_type = 6;
|
|
uint32 count = 7;
|
|
}
|
|
|
|
message ConnectionLimiterList {
|
|
repeated ConnectionLimiter values = 1;
|
|
}
|
|
|
|
message TrafficLimiter {
|
|
int32 id = 1;
|
|
string username = 2;
|
|
string outbound = 3;
|
|
string strategy = 4;
|
|
string mode = 5;
|
|
uint64 raw_used = 6;
|
|
string quota = 7;
|
|
uint64 raw_quota = 8;
|
|
}
|
|
|
|
message TrafficLimiterList {
|
|
repeated TrafficLimiter values = 1;
|
|
}
|
|
|
|
message RateLimiter {
|
|
int32 id = 1;
|
|
string username = 2;
|
|
string outbound = 3;
|
|
string strategy = 4;
|
|
string connection_type = 5;
|
|
uint32 count = 6;
|
|
string interval = 7;
|
|
}
|
|
|
|
message RateLimiterList {
|
|
repeated RateLimiter values = 1;
|
|
}
|
|
|
|
message NodeData {
|
|
|
|
OpType op = 1;
|
|
|
|
oneof data {
|
|
UserList users = 2;
|
|
User user = 3;
|
|
BandwidthLimiterList bandwidth_limiters = 4;
|
|
BandwidthLimiter bandwidth_limiter = 5;
|
|
ConnectionLimiterList connection_limiters = 6;
|
|
ConnectionLimiter connection_limiter = 7;
|
|
TrafficLimiterList traffic_limiters = 8;
|
|
TrafficLimiter traffic_limiter = 9;
|
|
RateLimiterList rate_limiters = 10;
|
|
RateLimiter rate_limiter = 11;
|
|
}
|
|
|
|
}
|
|
|
|
message AcquireLockRequest {
|
|
int32 limiter_id = 1;
|
|
string id = 2;
|
|
}
|
|
|
|
message LockData {
|
|
int32 limiter_id = 1;
|
|
string id = 2;
|
|
string handleId = 3;
|
|
}
|
|
|
|
message TrafficUsageRequest {
|
|
int32 limiter_id = 1;
|
|
uint64 n = 2;
|
|
}
|
|
|
|
message TrafficUsageReply {
|
|
uint64 remaining = 1;
|
|
}
|
|
|
|
message Empty {}
|