https://dev.kronoz.win/r/marzneshin.git
1syntax = "proto3";
2
3package marznode;
4
5message Empty {}
6
7enum ConfigFormat {
8 PLAIN = 0;
9 JSON = 1;
10 YAML = 2;
11}
12
13message Backend {
14 string name = 1;
15 optional string type = 2;
16 optional string version = 3;
17 repeated Inbound inbounds = 4;
18}
19
20message BackendsResponse {
21 repeated Backend backends = 1;
22}
23
24message Inbound {
25 string tag = 1;
26 optional string config = 2;
27}
28
29message User {
30 uint32 id = 1;
31 string username = 2;
32 string key = 3;
33}
34
35message UserData {
36 User user = 1;
37 repeated Inbound inbounds = 2;
38}
39
40message UsersData {
41 repeated UserData users_data = 1;
42}
43
44message UsersStats {
45 message UserStats {
46 uint32 uid = 1;
47 uint64 usage = 2;
48 }
49 repeated UserStats users_stats = 1;
50}
51
52message LogLine {
53 string line = 1;
54}
55
56message BackendConfig {
57 string configuration = 1;
58 ConfigFormat config_format = 2;
59}
60
61message BackendLogsRequest {
62 string backend_name = 1;
63 bool include_buffer = 2;
64}
65
66message RestartBackendRequest {
67 string backend_name = 1;
68 optional BackendConfig config = 2;
69}
70
71message BackendStats {
72 bool running = 1;
73}
74
75service MarzService {
76 rpc SyncUsers(stream UserData) returns (Empty);
77 rpc RepopulateUsers(UsersData) returns (Empty);
78 rpc FetchBackends(Empty) returns (BackendsResponse);
79 rpc FetchUsersStats(Empty) returns (UsersStats);
80 rpc FetchBackendConfig(Backend) returns (BackendConfig);
81 rpc RestartBackend(RestartBackendRequest) returns (Empty);
82 rpc StreamBackendLogs(BackendLogsRequest) returns (stream LogLine);
83 rpc GetBackendStats(Backend) returns (BackendStats);
84}