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

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // versions:
     3  // 	protoc-gen-go v1.27.1
     4  // 	protoc        v3.17.3
     5  // source: api.proto
     6  
     7  package service
     8  
     9  import (
    10  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    11  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    12  	reflect "reflect"
    13  	sync "sync"
    14  )
    15  
    16  const (
    17  	// Verify that this generated code is sufficiently up-to-date.
    18  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    19  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    20  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    21  )
    22  
    23  type SetUsersRequest_Operation int32
    24  
    25  const (
    26  	SetUsersRequest_Add    SetUsersRequest_Operation = 0
    27  	SetUsersRequest_Delete SetUsersRequest_Operation = 1
    28  	SetUsersRequest_Modify SetUsersRequest_Operation = 2
    29  )
    30  
    31  // Enum value maps for SetUsersRequest_Operation.
    32  var (
    33  	SetUsersRequest_Operation_name = map[int32]string{
    34  		0: "Add",
    35  		1: "Delete",
    36  		2: "Modify",
    37  	}
    38  	SetUsersRequest_Operation_value = map[string]int32{
    39  		"Add":    0,
    40  		"Delete": 1,
    41  		"Modify": 2,
    42  	}
    43  )
    44  
    45  func (x SetUsersRequest_Operation) Enum() *SetUsersRequest_Operation {
    46  	p := new(SetUsersRequest_Operation)
    47  	*p = x
    48  	return p
    49  }
    50  
    51  func (x SetUsersRequest_Operation) String() string {
    52  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    53  }
    54  
    55  func (SetUsersRequest_Operation) Descriptor() protoreflect.EnumDescriptor {
    56  	return file_api_proto_enumTypes[0].Descriptor()
    57  }
    58  
    59  func (SetUsersRequest_Operation) Type() protoreflect.EnumType {
    60  	return &file_api_proto_enumTypes[0]
    61  }
    62  
    63  func (x SetUsersRequest_Operation) Number() protoreflect.EnumNumber {
    64  	return protoreflect.EnumNumber(x)
    65  }
    66  
    67  // Deprecated: Use SetUsersRequest_Operation.Descriptor instead.
    68  func (SetUsersRequest_Operation) EnumDescriptor() ([]byte, []int) {
    69  	return file_api_proto_rawDescGZIP(), []int{10, 0}
    70  }
    71  
    72  type Traffic struct {
    73  	state         protoimpl.MessageState
    74  	sizeCache     protoimpl.SizeCache
    75  	unknownFields protoimpl.UnknownFields
    76  
    77  	UploadTraffic   uint64 `protobuf:"varint,1,opt,name=upload_traffic,json=uploadTraffic,proto3" json:"upload_traffic,omitempty"`
    78  	DownloadTraffic uint64 `protobuf:"varint,2,opt,name=download_traffic,json=downloadTraffic,proto3" json:"download_traffic,omitempty"`
    79  }
    80  
    81  func (x *Traffic) Reset() {
    82  	*x = Traffic{}
    83  	if protoimpl.UnsafeEnabled {
    84  		mi := &file_api_proto_msgTypes[0]
    85  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    86  		ms.StoreMessageInfo(mi)
    87  	}
    88  }
    89  
    90  func (x *Traffic) String() string {
    91  	return protoimpl.X.MessageStringOf(x)
    92  }
    93  
    94  func (*Traffic) ProtoMessage() {}
    95  
    96  func (x *Traffic) ProtoReflect() protoreflect.Message {
    97  	mi := &file_api_proto_msgTypes[0]
    98  	if protoimpl.UnsafeEnabled && x != nil {
    99  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   100  		if ms.LoadMessageInfo() == nil {
   101  			ms.StoreMessageInfo(mi)
   102  		}
   103  		return ms
   104  	}
   105  	return mi.MessageOf(x)
   106  }
   107  
   108  // Deprecated: Use Traffic.ProtoReflect.Descriptor instead.
   109  func (*Traffic) Descriptor() ([]byte, []int) {
   110  	return file_api_proto_rawDescGZIP(), []int{0}
   111  }
   112  
   113  func (x *Traffic) GetUploadTraffic() uint64 {
   114  	if x != nil {
   115  		return x.UploadTraffic
   116  	}
   117  	return 0
   118  }
   119  
   120  func (x *Traffic) GetDownloadTraffic() uint64 {
   121  	if x != nil {
   122  		return x.DownloadTraffic
   123  	}
   124  	return 0
   125  }
   126  
   127  type Speed struct {
   128  	state         protoimpl.MessageState
   129  	sizeCache     protoimpl.SizeCache
   130  	unknownFields protoimpl.UnknownFields
   131  
   132  	UploadSpeed   uint64 `protobuf:"varint,1,opt,name=upload_speed,json=uploadSpeed,proto3" json:"upload_speed,omitempty"`
   133  	DownloadSpeed uint64 `protobuf:"varint,2,opt,name=download_speed,json=downloadSpeed,proto3" json:"download_speed,omitempty"`
   134  }
   135  
   136  func (x *Speed) Reset() {
   137  	*x = Speed{}
   138  	if protoimpl.UnsafeEnabled {
   139  		mi := &file_api_proto_msgTypes[1]
   140  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   141  		ms.StoreMessageInfo(mi)
   142  	}
   143  }
   144  
   145  func (x *Speed) String() string {
   146  	return protoimpl.X.MessageStringOf(x)
   147  }
   148  
   149  func (*Speed) ProtoMessage() {}
   150  
   151  func (x *Speed) ProtoReflect() protoreflect.Message {
   152  	mi := &file_api_proto_msgTypes[1]
   153  	if protoimpl.UnsafeEnabled && x != nil {
   154  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   155  		if ms.LoadMessageInfo() == nil {
   156  			ms.StoreMessageInfo(mi)
   157  		}
   158  		return ms
   159  	}
   160  	return mi.MessageOf(x)
   161  }
   162  
   163  // Deprecated: Use Speed.ProtoReflect.Descriptor instead.
   164  func (*Speed) Descriptor() ([]byte, []int) {
   165  	return file_api_proto_rawDescGZIP(), []int{1}
   166  }
   167  
   168  func (x *Speed) GetUploadSpeed() uint64 {
   169  	if x != nil {
   170  		return x.UploadSpeed
   171  	}
   172  	return 0
   173  }
   174  
   175  func (x *Speed) GetDownloadSpeed() uint64 {
   176  	if x != nil {
   177  		return x.DownloadSpeed
   178  	}
   179  	return 0
   180  }
   181  
   182  type User struct {
   183  	state         protoimpl.MessageState
   184  	sizeCache     protoimpl.SizeCache
   185  	unknownFields protoimpl.UnknownFields
   186  
   187  	Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"`
   188  	Hash     string `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
   189  }
   190  
   191  func (x *User) Reset() {
   192  	*x = User{}
   193  	if protoimpl.UnsafeEnabled {
   194  		mi := &file_api_proto_msgTypes[2]
   195  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   196  		ms.StoreMessageInfo(mi)
   197  	}
   198  }
   199  
   200  func (x *User) String() string {
   201  	return protoimpl.X.MessageStringOf(x)
   202  }
   203  
   204  func (*User) ProtoMessage() {}
   205  
   206  func (x *User) ProtoReflect() protoreflect.Message {
   207  	mi := &file_api_proto_msgTypes[2]
   208  	if protoimpl.UnsafeEnabled && x != nil {
   209  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   210  		if ms.LoadMessageInfo() == nil {
   211  			ms.StoreMessageInfo(mi)
   212  		}
   213  		return ms
   214  	}
   215  	return mi.MessageOf(x)
   216  }
   217  
   218  // Deprecated: Use User.ProtoReflect.Descriptor instead.
   219  func (*User) Descriptor() ([]byte, []int) {
   220  	return file_api_proto_rawDescGZIP(), []int{2}
   221  }
   222  
   223  func (x *User) GetPassword() string {
   224  	if x != nil {
   225  		return x.Password
   226  	}
   227  	return ""
   228  }
   229  
   230  func (x *User) GetHash() string {
   231  	if x != nil {
   232  		return x.Hash
   233  	}
   234  	return ""
   235  }
   236  
   237  type UserStatus struct {
   238  	state         protoimpl.MessageState
   239  	sizeCache     protoimpl.SizeCache
   240  	unknownFields protoimpl.UnknownFields
   241  
   242  	User         *User    `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
   243  	TrafficTotal *Traffic `protobuf:"bytes,2,opt,name=traffic_total,json=trafficTotal,proto3" json:"traffic_total,omitempty"`
   244  	SpeedCurrent *Speed   `protobuf:"bytes,3,opt,name=speed_current,json=speedCurrent,proto3" json:"speed_current,omitempty"`
   245  	SpeedLimit   *Speed   `protobuf:"bytes,4,opt,name=speed_limit,json=speedLimit,proto3" json:"speed_limit,omitempty"`
   246  	IpCurrent    int32    `protobuf:"varint,5,opt,name=ip_current,json=ipCurrent,proto3" json:"ip_current,omitempty"`
   247  	IpLimit      int32    `protobuf:"varint,6,opt,name=ip_limit,json=ipLimit,proto3" json:"ip_limit,omitempty"`
   248  }
   249  
   250  func (x *UserStatus) Reset() {
   251  	*x = UserStatus{}
   252  	if protoimpl.UnsafeEnabled {
   253  		mi := &file_api_proto_msgTypes[3]
   254  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   255  		ms.StoreMessageInfo(mi)
   256  	}
   257  }
   258  
   259  func (x *UserStatus) String() string {
   260  	return protoimpl.X.MessageStringOf(x)
   261  }
   262  
   263  func (*UserStatus) ProtoMessage() {}
   264  
   265  func (x *UserStatus) ProtoReflect() protoreflect.Message {
   266  	mi := &file_api_proto_msgTypes[3]
   267  	if protoimpl.UnsafeEnabled && x != nil {
   268  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   269  		if ms.LoadMessageInfo() == nil {
   270  			ms.StoreMessageInfo(mi)
   271  		}
   272  		return ms
   273  	}
   274  	return mi.MessageOf(x)
   275  }
   276  
   277  // Deprecated: Use UserStatus.ProtoReflect.Descriptor instead.
   278  func (*UserStatus) Descriptor() ([]byte, []int) {
   279  	return file_api_proto_rawDescGZIP(), []int{3}
   280  }
   281  
   282  func (x *UserStatus) GetUser() *User {
   283  	if x != nil {
   284  		return x.User
   285  	}
   286  	return nil
   287  }
   288  
   289  func (x *UserStatus) GetTrafficTotal() *Traffic {
   290  	if x != nil {
   291  		return x.TrafficTotal
   292  	}
   293  	return nil
   294  }
   295  
   296  func (x *UserStatus) GetSpeedCurrent() *Speed {
   297  	if x != nil {
   298  		return x.SpeedCurrent
   299  	}
   300  	return nil
   301  }
   302  
   303  func (x *UserStatus) GetSpeedLimit() *Speed {
   304  	if x != nil {
   305  		return x.SpeedLimit
   306  	}
   307  	return nil
   308  }
   309  
   310  func (x *UserStatus) GetIpCurrent() int32 {
   311  	if x != nil {
   312  		return x.IpCurrent
   313  	}
   314  	return 0
   315  }
   316  
   317  func (x *UserStatus) GetIpLimit() int32 {
   318  	if x != nil {
   319  		return x.IpLimit
   320  	}
   321  	return 0
   322  }
   323  
   324  type GetTrafficRequest struct {
   325  	state         protoimpl.MessageState
   326  	sizeCache     protoimpl.SizeCache
   327  	unknownFields protoimpl.UnknownFields
   328  
   329  	User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
   330  }
   331  
   332  func (x *GetTrafficRequest) Reset() {
   333  	*x = GetTrafficRequest{}
   334  	if protoimpl.UnsafeEnabled {
   335  		mi := &file_api_proto_msgTypes[4]
   336  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   337  		ms.StoreMessageInfo(mi)
   338  	}
   339  }
   340  
   341  func (x *GetTrafficRequest) String() string {
   342  	return protoimpl.X.MessageStringOf(x)
   343  }
   344  
   345  func (*GetTrafficRequest) ProtoMessage() {}
   346  
   347  func (x *GetTrafficRequest) ProtoReflect() protoreflect.Message {
   348  	mi := &file_api_proto_msgTypes[4]
   349  	if protoimpl.UnsafeEnabled && x != nil {
   350  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   351  		if ms.LoadMessageInfo() == nil {
   352  			ms.StoreMessageInfo(mi)
   353  		}
   354  		return ms
   355  	}
   356  	return mi.MessageOf(x)
   357  }
   358  
   359  // Deprecated: Use GetTrafficRequest.ProtoReflect.Descriptor instead.
   360  func (*GetTrafficRequest) Descriptor() ([]byte, []int) {
   361  	return file_api_proto_rawDescGZIP(), []int{4}
   362  }
   363  
   364  func (x *GetTrafficRequest) GetUser() *User {
   365  	if x != nil {
   366  		return x.User
   367  	}
   368  	return nil
   369  }
   370  
   371  type GetTrafficResponse struct {
   372  	state         protoimpl.MessageState
   373  	sizeCache     protoimpl.SizeCache
   374  	unknownFields protoimpl.UnknownFields
   375  
   376  	Success      bool     `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
   377  	Info         string   `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"`
   378  	TrafficTotal *Traffic `protobuf:"bytes,3,opt,name=traffic_total,json=trafficTotal,proto3" json:"traffic_total,omitempty"`
   379  	SpeedCurrent *Speed   `protobuf:"bytes,4,opt,name=speed_current,json=speedCurrent,proto3" json:"speed_current,omitempty"`
   380  }
   381  
   382  func (x *GetTrafficResponse) Reset() {
   383  	*x = GetTrafficResponse{}
   384  	if protoimpl.UnsafeEnabled {
   385  		mi := &file_api_proto_msgTypes[5]
   386  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   387  		ms.StoreMessageInfo(mi)
   388  	}
   389  }
   390  
   391  func (x *GetTrafficResponse) String() string {
   392  	return protoimpl.X.MessageStringOf(x)
   393  }
   394  
   395  func (*GetTrafficResponse) ProtoMessage() {}
   396  
   397  func (x *GetTrafficResponse) ProtoReflect() protoreflect.Message {
   398  	mi := &file_api_proto_msgTypes[5]
   399  	if protoimpl.UnsafeEnabled && x != nil {
   400  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   401  		if ms.LoadMessageInfo() == nil {
   402  			ms.StoreMessageInfo(mi)
   403  		}
   404  		return ms
   405  	}
   406  	return mi.MessageOf(x)
   407  }
   408  
   409  // Deprecated: Use GetTrafficResponse.ProtoReflect.Descriptor instead.
   410  func (*GetTrafficResponse) Descriptor() ([]byte, []int) {
   411  	return file_api_proto_rawDescGZIP(), []int{5}
   412  }
   413  
   414  func (x *GetTrafficResponse) GetSuccess() bool {
   415  	if x != nil {
   416  		return x.Success
   417  	}
   418  	return false
   419  }
   420  
   421  func (x *GetTrafficResponse) GetInfo() string {
   422  	if x != nil {
   423  		return x.Info
   424  	}
   425  	return ""
   426  }
   427  
   428  func (x *GetTrafficResponse) GetTrafficTotal() *Traffic {
   429  	if x != nil {
   430  		return x.TrafficTotal
   431  	}
   432  	return nil
   433  }
   434  
   435  func (x *GetTrafficResponse) GetSpeedCurrent() *Speed {
   436  	if x != nil {
   437  		return x.SpeedCurrent
   438  	}
   439  	return nil
   440  }
   441  
   442  type ListUsersRequest struct {
   443  	state         protoimpl.MessageState
   444  	sizeCache     protoimpl.SizeCache
   445  	unknownFields protoimpl.UnknownFields
   446  }
   447  
   448  func (x *ListUsersRequest) Reset() {
   449  	*x = ListUsersRequest{}
   450  	if protoimpl.UnsafeEnabled {
   451  		mi := &file_api_proto_msgTypes[6]
   452  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   453  		ms.StoreMessageInfo(mi)
   454  	}
   455  }
   456  
   457  func (x *ListUsersRequest) String() string {
   458  	return protoimpl.X.MessageStringOf(x)
   459  }
   460  
   461  func (*ListUsersRequest) ProtoMessage() {}
   462  
   463  func (x *ListUsersRequest) ProtoReflect() protoreflect.Message {
   464  	mi := &file_api_proto_msgTypes[6]
   465  	if protoimpl.UnsafeEnabled && x != nil {
   466  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   467  		if ms.LoadMessageInfo() == nil {
   468  			ms.StoreMessageInfo(mi)
   469  		}
   470  		return ms
   471  	}
   472  	return mi.MessageOf(x)
   473  }
   474  
   475  // Deprecated: Use ListUsersRequest.ProtoReflect.Descriptor instead.
   476  func (*ListUsersRequest) Descriptor() ([]byte, []int) {
   477  	return file_api_proto_rawDescGZIP(), []int{6}
   478  }
   479  
   480  type ListUsersResponse struct {
   481  	state         protoimpl.MessageState
   482  	sizeCache     protoimpl.SizeCache
   483  	unknownFields protoimpl.UnknownFields
   484  
   485  	Status *UserStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
   486  }
   487  
   488  func (x *ListUsersResponse) Reset() {
   489  	*x = ListUsersResponse{}
   490  	if protoimpl.UnsafeEnabled {
   491  		mi := &file_api_proto_msgTypes[7]
   492  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   493  		ms.StoreMessageInfo(mi)
   494  	}
   495  }
   496  
   497  func (x *ListUsersResponse) String() string {
   498  	return protoimpl.X.MessageStringOf(x)
   499  }
   500  
   501  func (*ListUsersResponse) ProtoMessage() {}
   502  
   503  func (x *ListUsersResponse) ProtoReflect() protoreflect.Message {
   504  	mi := &file_api_proto_msgTypes[7]
   505  	if protoimpl.UnsafeEnabled && x != nil {
   506  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   507  		if ms.LoadMessageInfo() == nil {
   508  			ms.StoreMessageInfo(mi)
   509  		}
   510  		return ms
   511  	}
   512  	return mi.MessageOf(x)
   513  }
   514  
   515  // Deprecated: Use ListUsersResponse.ProtoReflect.Descriptor instead.
   516  func (*ListUsersResponse) Descriptor() ([]byte, []int) {
   517  	return file_api_proto_rawDescGZIP(), []int{7}
   518  }
   519  
   520  func (x *ListUsersResponse) GetStatus() *UserStatus {
   521  	if x != nil {
   522  		return x.Status
   523  	}
   524  	return nil
   525  }
   526  
   527  type GetUsersRequest struct {
   528  	state         protoimpl.MessageState
   529  	sizeCache     protoimpl.SizeCache
   530  	unknownFields protoimpl.UnknownFields
   531  
   532  	User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
   533  }
   534  
   535  func (x *GetUsersRequest) Reset() {
   536  	*x = GetUsersRequest{}
   537  	if protoimpl.UnsafeEnabled {
   538  		mi := &file_api_proto_msgTypes[8]
   539  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   540  		ms.StoreMessageInfo(mi)
   541  	}
   542  }
   543  
   544  func (x *GetUsersRequest) String() string {
   545  	return protoimpl.X.MessageStringOf(x)
   546  }
   547  
   548  func (*GetUsersRequest) ProtoMessage() {}
   549  
   550  func (x *GetUsersRequest) ProtoReflect() protoreflect.Message {
   551  	mi := &file_api_proto_msgTypes[8]
   552  	if protoimpl.UnsafeEnabled && x != nil {
   553  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   554  		if ms.LoadMessageInfo() == nil {
   555  			ms.StoreMessageInfo(mi)
   556  		}
   557  		return ms
   558  	}
   559  	return mi.MessageOf(x)
   560  }
   561  
   562  // Deprecated: Use GetUsersRequest.ProtoReflect.Descriptor instead.
   563  func (*GetUsersRequest) Descriptor() ([]byte, []int) {
   564  	return file_api_proto_rawDescGZIP(), []int{8}
   565  }
   566  
   567  func (x *GetUsersRequest) GetUser() *User {
   568  	if x != nil {
   569  		return x.User
   570  	}
   571  	return nil
   572  }
   573  
   574  type GetUsersResponse struct {
   575  	state         protoimpl.MessageState
   576  	sizeCache     protoimpl.SizeCache
   577  	unknownFields protoimpl.UnknownFields
   578  
   579  	Success bool        `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
   580  	Info    string      `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"`
   581  	Status  *UserStatus `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
   582  }
   583  
   584  func (x *GetUsersResponse) Reset() {
   585  	*x = GetUsersResponse{}
   586  	if protoimpl.UnsafeEnabled {
   587  		mi := &file_api_proto_msgTypes[9]
   588  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   589  		ms.StoreMessageInfo(mi)
   590  	}
   591  }
   592  
   593  func (x *GetUsersResponse) String() string {
   594  	return protoimpl.X.MessageStringOf(x)
   595  }
   596  
   597  func (*GetUsersResponse) ProtoMessage() {}
   598  
   599  func (x *GetUsersResponse) ProtoReflect() protoreflect.Message {
   600  	mi := &file_api_proto_msgTypes[9]
   601  	if protoimpl.UnsafeEnabled && x != nil {
   602  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   603  		if ms.LoadMessageInfo() == nil {
   604  			ms.StoreMessageInfo(mi)
   605  		}
   606  		return ms
   607  	}
   608  	return mi.MessageOf(x)
   609  }
   610  
   611  // Deprecated: Use GetUsersResponse.ProtoReflect.Descriptor instead.
   612  func (*GetUsersResponse) Descriptor() ([]byte, []int) {
   613  	return file_api_proto_rawDescGZIP(), []int{9}
   614  }
   615  
   616  func (x *GetUsersResponse) GetSuccess() bool {
   617  	if x != nil {
   618  		return x.Success
   619  	}
   620  	return false
   621  }
   622  
   623  func (x *GetUsersResponse) GetInfo() string {
   624  	if x != nil {
   625  		return x.Info
   626  	}
   627  	return ""
   628  }
   629  
   630  func (x *GetUsersResponse) GetStatus() *UserStatus {
   631  	if x != nil {
   632  		return x.Status
   633  	}
   634  	return nil
   635  }
   636  
   637  type SetUsersRequest struct {
   638  	state         protoimpl.MessageState
   639  	sizeCache     protoimpl.SizeCache
   640  	unknownFields protoimpl.UnknownFields
   641  
   642  	Status    *UserStatus               `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
   643  	Operation SetUsersRequest_Operation `protobuf:"varint,2,opt,name=operation,proto3,enum=trojan.api.SetUsersRequest_Operation" json:"operation,omitempty"`
   644  }
   645  
   646  func (x *SetUsersRequest) Reset() {
   647  	*x = SetUsersRequest{}
   648  	if protoimpl.UnsafeEnabled {
   649  		mi := &file_api_proto_msgTypes[10]
   650  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   651  		ms.StoreMessageInfo(mi)
   652  	}
   653  }
   654  
   655  func (x *SetUsersRequest) String() string {
   656  	return protoimpl.X.MessageStringOf(x)
   657  }
   658  
   659  func (*SetUsersRequest) ProtoMessage() {}
   660  
   661  func (x *SetUsersRequest) ProtoReflect() protoreflect.Message {
   662  	mi := &file_api_proto_msgTypes[10]
   663  	if protoimpl.UnsafeEnabled && x != nil {
   664  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   665  		if ms.LoadMessageInfo() == nil {
   666  			ms.StoreMessageInfo(mi)
   667  		}
   668  		return ms
   669  	}
   670  	return mi.MessageOf(x)
   671  }
   672  
   673  // Deprecated: Use SetUsersRequest.ProtoReflect.Descriptor instead.
   674  func (*SetUsersRequest) Descriptor() ([]byte, []int) {
   675  	return file_api_proto_rawDescGZIP(), []int{10}
   676  }
   677  
   678  func (x *SetUsersRequest) GetStatus() *UserStatus {
   679  	if x != nil {
   680  		return x.Status
   681  	}
   682  	return nil
   683  }
   684  
   685  func (x *SetUsersRequest) GetOperation() SetUsersRequest_Operation {
   686  	if x != nil {
   687  		return x.Operation
   688  	}
   689  	return SetUsersRequest_Add
   690  }
   691  
   692  type SetUsersResponse struct {
   693  	state         protoimpl.MessageState
   694  	sizeCache     protoimpl.SizeCache
   695  	unknownFields protoimpl.UnknownFields
   696  
   697  	Success bool   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
   698  	Info    string `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"`
   699  }
   700  
   701  func (x *SetUsersResponse) Reset() {
   702  	*x = SetUsersResponse{}
   703  	if protoimpl.UnsafeEnabled {
   704  		mi := &file_api_proto_msgTypes[11]
   705  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   706  		ms.StoreMessageInfo(mi)
   707  	}
   708  }
   709  
   710  func (x *SetUsersResponse) String() string {
   711  	return protoimpl.X.MessageStringOf(x)
   712  }
   713  
   714  func (*SetUsersResponse) ProtoMessage() {}
   715  
   716  func (x *SetUsersResponse) ProtoReflect() protoreflect.Message {
   717  	mi := &file_api_proto_msgTypes[11]
   718  	if protoimpl.UnsafeEnabled && x != nil {
   719  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   720  		if ms.LoadMessageInfo() == nil {
   721  			ms.StoreMessageInfo(mi)
   722  		}
   723  		return ms
   724  	}
   725  	return mi.MessageOf(x)
   726  }
   727  
   728  // Deprecated: Use SetUsersResponse.ProtoReflect.Descriptor instead.
   729  func (*SetUsersResponse) Descriptor() ([]byte, []int) {
   730  	return file_api_proto_rawDescGZIP(), []int{11}
   731  }
   732  
   733  func (x *SetUsersResponse) GetSuccess() bool {
   734  	if x != nil {
   735  		return x.Success
   736  	}
   737  	return false
   738  }
   739  
   740  func (x *SetUsersResponse) GetInfo() string {
   741  	if x != nil {
   742  		return x.Info
   743  	}
   744  	return ""
   745  }
   746  
   747  var File_api_proto protoreflect.FileDescriptor
   748  
   749  var file_api_proto_rawDesc = []byte{
   750  	0x0a, 0x09, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x74, 0x72, 0x6f,
   751  	0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x22, 0x5b, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x66, 0x66,
   752  	0x69, 0x63, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x72, 0x61,
   753  	0x66, 0x66, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x75, 0x70, 0x6c, 0x6f,
   754  	0x61, 0x64, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x6f, 0x77,
   755  	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x02, 0x20,
   756  	0x01, 0x28, 0x04, 0x52, 0x0f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x72, 0x61,
   757  	0x66, 0x66, 0x69, 0x63, 0x22, 0x51, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x21, 0x0a,
   758  	0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x01, 0x20,
   759  	0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64,
   760  	0x12, 0x25, 0x0a, 0x0e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x70, 0x65,
   761  	0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
   762  	0x61, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x22, 0x36, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12,
   763  	0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
   764  	0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68,
   765  	0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22,
   766  	0x92, 0x02, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24,
   767  	0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74,
   768  	0x72, 0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04,
   769  	0x75, 0x73, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f,
   770  	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72,
   771  	0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63,
   772  	0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x36,
   773  	0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18,
   774  	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61,
   775  	0x70, 0x69, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x0c, 0x73, 0x70, 0x65, 0x65, 0x64, 0x43,
   776  	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f,
   777  	0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72,
   778  	0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x0a,
   779  	0x73, 0x70, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70,
   780  	0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
   781  	0x69, 0x70, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x70, 0x5f,
   782  	0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x70, 0x4c,
   783  	0x69, 0x6d, 0x69, 0x74, 0x22, 0x39, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66,
   784  	0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x75, 0x73, 0x65,
   785  	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61, 0x6e,
   786  	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22,
   787  	0xb4, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65,
   788  	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73,
   789  	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
   790  	0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
   791  	0x69, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f,
   792  	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72,
   793  	0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63,
   794  	0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x36,
   795  	0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18,
   796  	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61,
   797  	0x70, 0x69, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x0c, 0x73, 0x70, 0x65, 0x65, 0x64, 0x43,
   798  	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73,
   799  	0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x11, 0x4c, 0x69,
   800  	0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
   801  	0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
   802  	0x16, 0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65,
   803  	0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
   804  	0x37, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
   805  	0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
   806  	0x32, 0x10, 0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x73,
   807  	0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55,
   808  	0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07,
   809  	0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73,
   810  	0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02,
   811  	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74,
   812  	0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x72, 0x6f,
   813  	0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
   814  	0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x0f, 0x53,
   815  	0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e,
   816  	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
   817  	0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x73, 0x65, 0x72,
   818  	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x43,
   819  	0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
   820  	0x0e, 0x32, 0x25, 0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53,
   821  	0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f,
   822  	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
   823  	0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
   824  	0x12, 0x07, 0x0a, 0x03, 0x41, 0x64, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x65, 0x6c,
   825  	0x65, 0x74, 0x65, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x10,
   826  	0x02, 0x22, 0x40, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73,
   827  	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
   828  	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12,
   829  	0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69,
   830  	0x6e, 0x66, 0x6f, 0x32, 0x64, 0x0a, 0x13, 0x54, 0x72, 0x6f, 0x6a, 0x61, 0x6e, 0x43, 0x6c, 0x69,
   831  	0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x47, 0x65,
   832  	0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x1d, 0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61,
   833  	0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63,
   834  	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61, 0x6e,
   835  	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52,
   836  	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xfd, 0x01, 0x0a, 0x13, 0x54, 0x72,
   837  	0x6f, 0x6a, 0x61, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
   838  	0x65, 0x12, 0x4c, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1c,
   839  	0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74,
   840  	0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74,
   841  	0x72, 0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73,
   842  	0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12,
   843  	0x4b, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x2e, 0x74, 0x72,
   844  	0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
   845  	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61,
   846  	0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65,
   847  	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x08,
   848  	0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61,
   849  	0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65,
   850  	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x74, 0x72, 0x6f, 0x6a, 0x61, 0x6e, 0x2e, 0x61,
   851  	0x70, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
   852  	0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74,
   853  	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x34, 0x67, 0x65, 0x66, 0x61, 0x75, 0x31,
   854  	0x74, 0x2f, 0x74, 0x72, 0x6f, 0x6a, 0x61, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f,
   855  	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
   856  }
   857  
   858  var (
   859  	file_api_proto_rawDescOnce sync.Once
   860  	file_api_proto_rawDescData = file_api_proto_rawDesc
   861  )
   862  
   863  func file_api_proto_rawDescGZIP() []byte {
   864  	file_api_proto_rawDescOnce.Do(func() {
   865  		file_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_proto_rawDescData)
   866  	})
   867  	return file_api_proto_rawDescData
   868  }
   869  
   870  var file_api_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
   871  var file_api_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
   872  var file_api_proto_goTypes = []interface{}{
   873  	(SetUsersRequest_Operation)(0), // 0: trojan.api.SetUsersRequest.Operation
   874  	(*Traffic)(nil),                // 1: trojan.api.Traffic
   875  	(*Speed)(nil),                  // 2: trojan.api.Speed
   876  	(*User)(nil),                   // 3: trojan.api.User
   877  	(*UserStatus)(nil),             // 4: trojan.api.UserStatus
   878  	(*GetTrafficRequest)(nil),      // 5: trojan.api.GetTrafficRequest
   879  	(*GetTrafficResponse)(nil),     // 6: trojan.api.GetTrafficResponse
   880  	(*ListUsersRequest)(nil),       // 7: trojan.api.ListUsersRequest
   881  	(*ListUsersResponse)(nil),      // 8: trojan.api.ListUsersResponse
   882  	(*GetUsersRequest)(nil),        // 9: trojan.api.GetUsersRequest
   883  	(*GetUsersResponse)(nil),       // 10: trojan.api.GetUsersResponse
   884  	(*SetUsersRequest)(nil),        // 11: trojan.api.SetUsersRequest
   885  	(*SetUsersResponse)(nil),       // 12: trojan.api.SetUsersResponse
   886  }
   887  var file_api_proto_depIdxs = []int32{
   888  	3,  // 0: trojan.api.UserStatus.user:type_name -> trojan.api.User
   889  	1,  // 1: trojan.api.UserStatus.traffic_total:type_name -> trojan.api.Traffic
   890  	2,  // 2: trojan.api.UserStatus.speed_current:type_name -> trojan.api.Speed
   891  	2,  // 3: trojan.api.UserStatus.speed_limit:type_name -> trojan.api.Speed
   892  	3,  // 4: trojan.api.GetTrafficRequest.user:type_name -> trojan.api.User
   893  	1,  // 5: trojan.api.GetTrafficResponse.traffic_total:type_name -> trojan.api.Traffic
   894  	2,  // 6: trojan.api.GetTrafficResponse.speed_current:type_name -> trojan.api.Speed
   895  	4,  // 7: trojan.api.ListUsersResponse.status:type_name -> trojan.api.UserStatus
   896  	3,  // 8: trojan.api.GetUsersRequest.user:type_name -> trojan.api.User
   897  	4,  // 9: trojan.api.GetUsersResponse.status:type_name -> trojan.api.UserStatus
   898  	4,  // 10: trojan.api.SetUsersRequest.status:type_name -> trojan.api.UserStatus
   899  	0,  // 11: trojan.api.SetUsersRequest.operation:type_name -> trojan.api.SetUsersRequest.Operation
   900  	5,  // 12: trojan.api.TrojanClientService.GetTraffic:input_type -> trojan.api.GetTrafficRequest
   901  	7,  // 13: trojan.api.TrojanServerService.ListUsers:input_type -> trojan.api.ListUsersRequest
   902  	9,  // 14: trojan.api.TrojanServerService.GetUsers:input_type -> trojan.api.GetUsersRequest
   903  	11, // 15: trojan.api.TrojanServerService.SetUsers:input_type -> trojan.api.SetUsersRequest
   904  	6,  // 16: trojan.api.TrojanClientService.GetTraffic:output_type -> trojan.api.GetTrafficResponse
   905  	8,  // 17: trojan.api.TrojanServerService.ListUsers:output_type -> trojan.api.ListUsersResponse
   906  	10, // 18: trojan.api.TrojanServerService.GetUsers:output_type -> trojan.api.GetUsersResponse
   907  	12, // 19: trojan.api.TrojanServerService.SetUsers:output_type -> trojan.api.SetUsersResponse
   908  	16, // [16:20] is the sub-list for method output_type
   909  	12, // [12:16] is the sub-list for method input_type
   910  	12, // [12:12] is the sub-list for extension type_name
   911  	12, // [12:12] is the sub-list for extension extendee
   912  	0,  // [0:12] is the sub-list for field type_name
   913  }
   914  
   915  func init() { file_api_proto_init() }
   916  func file_api_proto_init() {
   917  	if File_api_proto != nil {
   918  		return
   919  	}
   920  	if !protoimpl.UnsafeEnabled {
   921  		file_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   922  			switch v := v.(*Traffic); i {
   923  			case 0:
   924  				return &v.state
   925  			case 1:
   926  				return &v.sizeCache
   927  			case 2:
   928  				return &v.unknownFields
   929  			default:
   930  				return nil
   931  			}
   932  		}
   933  		file_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   934  			switch v := v.(*Speed); i {
   935  			case 0:
   936  				return &v.state
   937  			case 1:
   938  				return &v.sizeCache
   939  			case 2:
   940  				return &v.unknownFields
   941  			default:
   942  				return nil
   943  			}
   944  		}
   945  		file_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
   946  			switch v := v.(*User); i {
   947  			case 0:
   948  				return &v.state
   949  			case 1:
   950  				return &v.sizeCache
   951  			case 2:
   952  				return &v.unknownFields
   953  			default:
   954  				return nil
   955  			}
   956  		}
   957  		file_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
   958  			switch v := v.(*UserStatus); i {
   959  			case 0:
   960  				return &v.state
   961  			case 1:
   962  				return &v.sizeCache
   963  			case 2:
   964  				return &v.unknownFields
   965  			default:
   966  				return nil
   967  			}
   968  		}
   969  		file_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
   970  			switch v := v.(*GetTrafficRequest); i {
   971  			case 0:
   972  				return &v.state
   973  			case 1:
   974  				return &v.sizeCache
   975  			case 2:
   976  				return &v.unknownFields
   977  			default:
   978  				return nil
   979  			}
   980  		}
   981  		file_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
   982  			switch v := v.(*GetTrafficResponse); i {
   983  			case 0:
   984  				return &v.state
   985  			case 1:
   986  				return &v.sizeCache
   987  			case 2:
   988  				return &v.unknownFields
   989  			default:
   990  				return nil
   991  			}
   992  		}
   993  		file_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
   994  			switch v := v.(*ListUsersRequest); i {
   995  			case 0:
   996  				return &v.state
   997  			case 1:
   998  				return &v.sizeCache
   999  			case 2:
  1000  				return &v.unknownFields
  1001  			default:
  1002  				return nil
  1003  			}
  1004  		}
  1005  		file_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  1006  			switch v := v.(*ListUsersResponse); i {
  1007  			case 0:
  1008  				return &v.state
  1009  			case 1:
  1010  				return &v.sizeCache
  1011  			case 2:
  1012  				return &v.unknownFields
  1013  			default:
  1014  				return nil
  1015  			}
  1016  		}
  1017  		file_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  1018  			switch v := v.(*GetUsersRequest); i {
  1019  			case 0:
  1020  				return &v.state
  1021  			case 1:
  1022  				return &v.sizeCache
  1023  			case 2:
  1024  				return &v.unknownFields
  1025  			default:
  1026  				return nil
  1027  			}
  1028  		}
  1029  		file_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  1030  			switch v := v.(*GetUsersResponse); i {
  1031  			case 0:
  1032  				return &v.state
  1033  			case 1:
  1034  				return &v.sizeCache
  1035  			case 2:
  1036  				return &v.unknownFields
  1037  			default:
  1038  				return nil
  1039  			}
  1040  		}
  1041  		file_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  1042  			switch v := v.(*SetUsersRequest); i {
  1043  			case 0:
  1044  				return &v.state
  1045  			case 1:
  1046  				return &v.sizeCache
  1047  			case 2:
  1048  				return &v.unknownFields
  1049  			default:
  1050  				return nil
  1051  			}
  1052  		}
  1053  		file_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  1054  			switch v := v.(*SetUsersResponse); i {
  1055  			case 0:
  1056  				return &v.state
  1057  			case 1:
  1058  				return &v.sizeCache
  1059  			case 2:
  1060  				return &v.unknownFields
  1061  			default:
  1062  				return nil
  1063  			}
  1064  		}
  1065  	}
  1066  	type x struct{}
  1067  	out := protoimpl.TypeBuilder{
  1068  		File: protoimpl.DescBuilder{
  1069  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1070  			RawDescriptor: file_api_proto_rawDesc,
  1071  			NumEnums:      1,
  1072  			NumMessages:   12,
  1073  			NumExtensions: 0,
  1074  			NumServices:   2,
  1075  		},
  1076  		GoTypes:           file_api_proto_goTypes,
  1077  		DependencyIndexes: file_api_proto_depIdxs,
  1078  		EnumInfos:         file_api_proto_enumTypes,
  1079  		MessageInfos:      file_api_proto_msgTypes,
  1080  	}.Build()
  1081  	File_api_proto = out.File
  1082  	file_api_proto_rawDesc = nil
  1083  	file_api_proto_goTypes = nil
  1084  	file_api_proto_depIdxs = nil
  1085  }