github.com/ipfans/trojan-go@v0.11.0/api/service/api.proto (about)

     1  syntax = "proto3";
     2  
     3  package trojan.api;
     4  option go_package = "github.com/ipfans/trojan-go/api/service";
     5  
     6  message Traffic {
     7      uint64 upload_traffic = 1;
     8      uint64 download_traffic = 2;
     9  }
    10  
    11  message Speed {
    12      uint64 upload_speed = 1;
    13      uint64 download_speed = 2;
    14  }
    15  
    16  message User {
    17      string password = 1;
    18      string hash = 2;
    19  }
    20  
    21  message UserStatus {
    22      User user = 1;
    23      Traffic traffic_total = 2;
    24      Speed speed_current = 3;
    25      Speed speed_limit = 4;
    26      int32 ip_current = 5;
    27      int32 ip_limit = 6;
    28  }
    29  
    30  message GetTrafficRequest {
    31      User user = 1;
    32  }
    33  
    34  message GetTrafficResponse {
    35      bool success = 1;
    36      string info = 2;
    37      Traffic traffic_total = 3;
    38      Speed speed_current = 4;
    39  }
    40  
    41  message ListUsersRequest {
    42  
    43  }
    44  
    45  message ListUsersResponse {
    46      UserStatus status = 1;
    47  }
    48  
    49  message GetUsersRequest {
    50      User user = 1;
    51  }
    52  
    53  message GetUsersResponse {
    54      bool success = 1;
    55      string info = 2;
    56      UserStatus status = 3;
    57  }
    58  
    59  message SetUsersRequest {
    60      enum Operation {
    61          Add = 0;
    62          Delete = 1;
    63          Modify = 2;
    64      }
    65      UserStatus status = 1;
    66      Operation operation = 2;
    67  }
    68  
    69  message SetUsersResponse {
    70      bool success = 1;
    71      string info = 2;
    72  }
    73  
    74  service TrojanClientService {
    75      rpc GetTraffic(GetTrafficRequest) returns(GetTrafficResponse){}
    76  }
    77  
    78  service TrojanServerService {
    79      // list all users
    80      rpc ListUsers(ListUsersRequest) returns(stream ListUsersResponse){}
    81      // obtain specified user's info
    82      rpc GetUsers(stream GetUsersRequest) returns(stream GetUsersResponse){}
    83      // setup existing users' config
    84      rpc SetUsers(stream SetUsersRequest) returns(stream SetUsersResponse){}
    85  }