vpn.proto 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474
  1. syntax = "proto3";
  2. package gorpc;
  3. option go_package = "code.clickto.dev/nomo-server/go-service-pb/client";
  4. import "pb/common.proto";
  5. // VpnTag
  6. message VpnTagVo {
  7. int64 id = 1;
  8. string productCode = 2;
  9. string type = 3;
  10. string name = 4;
  11. int64 sort = 5;
  12. Status status = 6;
  13. string remark = 7;
  14. int64 createTime = 8;
  15. int64 updateTime = 9;
  16. string otherConfig = 10;
  17. }
  18. message VpnTagGetReq { VpnTagVo vo = 1; }
  19. message VpnTagListReq {
  20. Page page = 1;
  21. VpnTagVo vo = 2;
  22. repeated string productCodes = 3;
  23. repeated int64 excludeIds = 4;
  24. }
  25. message VpnTagListResp {
  26. int64 total = 1;
  27. repeated VpnTagVo list = 2;
  28. }
  29. message VpnTagBatchAddReq { repeated VpnTagVo list = 1; }
  30. message VpnTagBatchAddResp { repeated VpnTagVo list = 1; }
  31. message VpnTagBatchUpdateReq { repeated VpnTagVo list = 1; }
  32. message VpnTagBatchUpdateResp { repeated VpnTagVo list = 1; }
  33. message VpnTagBatchDelReq { repeated int64 ids = 1; }
  34. // VpnTag
  35. message VpnGroupVo {
  36. int64 id = 1;
  37. string productCode = 2;
  38. string name = 3;
  39. string icon = 4;
  40. int64 sort = 5;
  41. Status status = 6;
  42. string remark = 7;
  43. int64 createTime = 8;
  44. int64 updateTime = 9;
  45. string version = 10;
  46. string otherConfig = 11;
  47. }
  48. message VpnGroupExVo {
  49. VpnGroupVo vo = 1;
  50. repeated int64 tagIds = 2;
  51. }
  52. message VpnGroupAddReq {
  53. VpnGroupVo vo = 1;
  54. repeated int64 tagIds = 2;
  55. }
  56. message VpnGroupGetReq { VpnGroupVo vo = 1; }
  57. message VpnGroupListReq {
  58. Page page = 1;
  59. VpnGroupVo vo = 2;
  60. repeated string productCodes = 3;
  61. repeated int64 excludeIds = 4;
  62. }
  63. message VpnGroupListResp {
  64. int64 total = 1;
  65. repeated VpnGroupVo list = 2;
  66. }
  67. message VpnGroupBatchAddReq { repeated VpnGroupExVo list = 1; }
  68. message VpnGroupBatchAddResp { repeated VpnGroupExVo list = 1; }
  69. message VpnGroupBatchUpdateReq { repeated VpnGroupExVo list = 1; }
  70. message VpnGroupBatchUpdateResp { repeated VpnGroupExVo list = 1; }
  71. message VpnGroupBatchDelReq { repeated int64 ids = 1; }
  72. // VpnGroupTag
  73. message VpnGroupTagVo {
  74. int64 id = 1;
  75. int64 groupId = 2;
  76. int64 tagId = 3;
  77. int64 createTime = 4;
  78. int64 updateTime = 5;
  79. }
  80. message VpnGroupTagListReq {
  81. Page page = 1;
  82. VpnGroupTagVo vo = 2;
  83. repeated int64 groupIds = 3;
  84. repeated int64 tagIds = 4;
  85. }
  86. message VpnGroupTagListResp {
  87. int64 total = 1;
  88. repeated VpnGroupTagVo list = 2;
  89. }
  90. // VpnLocation
  91. message VpnLocationVo {
  92. int64 id = 1;
  93. int64 groupId = 2;
  94. string name = 3;
  95. string code = 4;
  96. string icon = 5;
  97. int64 type = 6;
  98. string displayPolicyConfig = 7;
  99. string routePolicyConfig = 8;
  100. int64 sort = 9;
  101. Status status = 10;
  102. string remark = 11;
  103. int64 createTime = 12;
  104. int64 updateTime = 13;
  105. string version = 14;
  106. string otherConfig = 15;
  107. }
  108. message VpnLocationExVo {
  109. VpnLocationVo vo = 1;
  110. string productCode = 2;
  111. }
  112. message VpnLocationGetReq { VpnLocationVo vo = 1; }
  113. message VpnLocationListReq {
  114. Page page = 1;
  115. VpnLocationExVo vo = 2;
  116. repeated int64 groupIds = 3;
  117. repeated int64 excludeIds = 4;
  118. repeated string productCodes = 5;
  119. }
  120. message VpnLocationListResp {
  121. int64 total = 1;
  122. repeated VpnLocationExVo list = 2;
  123. }
  124. message VpnLocationBatchAddReq { repeated VpnLocationVo list = 1; }
  125. message VpnLocationBatchAddResp { repeated VpnLocationExVo list = 1; }
  126. message VpnLocationBatchUpdateReq { repeated VpnLocationVo list = 1; }
  127. message VpnLocationBatchUpdateResp { repeated VpnLocationExVo list = 1; }
  128. message VpnLocationBatchDelReq { repeated int64 ids = 1; }
  129. // VpnServer
  130. message VpnServerVo {
  131. int64 id = 1;
  132. int64 instanceId = 2;
  133. string name = 3;
  134. string ip = 4;
  135. int64 port = 5;
  136. int64 pingPort = 6;
  137. string netConfig = 7;
  138. string routePolicyConfig = 8;
  139. string serverInfo = 9;
  140. Status status = 10;
  141. string remark = 11;
  142. int64 createTime = 12;
  143. int64 updateTime = 13;
  144. string version = 14;
  145. string otherInfo = 15;
  146. int64 monitorPort = 16;
  147. }
  148. message VpnServerExVo {
  149. VpnServerVo vo = 1;
  150. repeated int64 locationIds = 2;
  151. }
  152. message VpnServerListReq {
  153. Page page = 1;
  154. VpnServerVo vo = 2;
  155. repeated int64 excludeIds = 3; // 排除的ID
  156. repeated string productCodes = 4;
  157. repeated int64 locationIds = 5;
  158. repeated int64 instanceIds = 6;
  159. }
  160. message VpnServerListResp {
  161. int64 total = 1;
  162. repeated VpnServerVo list = 2;
  163. }
  164. message VpnServerExListResp {
  165. int64 total = 1;
  166. repeated VpnServerExVo list = 2;
  167. }
  168. message VpnServerAddReq {
  169. VpnServerVo vo = 1;
  170. repeated int64 locationIds = 2;
  171. }
  172. message VpnServerBatchAddReq { repeated VpnServerExVo list = 1; }
  173. message VpnServerBatchAddResp { repeated VpnServerExVo list = 1; }
  174. message VpnServerBatchUpdateReq { repeated VpnServerExVo list = 1; }
  175. message VpnServerBatchUpdateResp { repeated VpnServerExVo list = 1; }
  176. message VpnServerBatchDelReq { repeated int64 ids = 1; }
  177. message VpnServerLocationVo {
  178. int64 id = 1;
  179. int64 serverId = 2;
  180. int64 locationId = 3;
  181. int64 createTime = 4;
  182. int64 updateTime = 5;
  183. Status status = 6;
  184. }
  185. message VpnServerLocationListReq {
  186. Page page = 1;
  187. VpnServerLocationVo vo = 2;
  188. repeated int64 serverIds = 3;
  189. repeated int64 locationIds = 4;
  190. }
  191. message VpnServerLocationListResp {
  192. int64 total = 1;
  193. repeated VpnServerLocationVo list = 2;
  194. }
  195. message VpnLocationServerCountVo {
  196. int64 locationId = 1;
  197. int64 serverCount = 2;
  198. }
  199. message VpnLocationServerCountReq {
  200. Page page = 1;
  201. Status status = 2;
  202. repeated int64 serverIds = 3;
  203. repeated int64 locationIds = 4;
  204. }
  205. message VpnLocationServerCountResp {
  206. int64 total = 1;
  207. repeated VpnLocationServerCountVo list = 2;
  208. }
  209. message VpnProbeTaskVo {
  210. int64 id = 1;
  211. string taskId = 2;
  212. string filter = 3; // 筛选条件
  213. string type = 4; // 类型
  214. string uploadDomain = 5; // 配置
  215. string params = 6;
  216. int64 answer = 7;
  217. float percentage = 8; // 进度百分比
  218. string result = 9; // 结果
  219. int64 userId = 10;
  220. int64 createTime = 11;
  221. int64 updateTime = 12;
  222. }
  223. message VpnProbeTaskListReq {
  224. Page page = 1;
  225. VpnProbeTaskVo vo = 2;
  226. }
  227. message VpnProbeTaskListResp {
  228. int64 total = 1;
  229. repeated VpnProbeTaskVo list = 2;
  230. }
  231. message VpnConfigTemplatePlanVo {
  232. int64 id = 1; // id
  233. string productCode = 2; // 产品Code
  234. string name = 3; // 配置名称
  235. string config = 4; // 保留字段,用于扩展配置
  236. int64 sort = 5; // 排序
  237. Status status = 6; // 状态
  238. string remark = 7; // 备注
  239. int64 createTime = 8; // 创建时间
  240. int64 createAt = 9; // 创建者Id
  241. int64 updateTime = 10; // 更新时间
  242. int64 updateAt = 11; // 更新者Id
  243. string version = 12; // 数据版本
  244. }
  245. message VpnConfigTemplatePlanDetailVo {
  246. int64 id = 1; // id
  247. int64 planId = 2; // 配置模板主表id
  248. string core = 3; // 内核
  249. string name = 4; // 名称
  250. string envs = 5; // 环境变量
  251. string serverConfig = 6; // 服务端配置
  252. string clientConfig = 7; // 客户端配置
  253. string policyConfig = 8; // 策略配置
  254. int64 sort = 9; // 排序
  255. Status status = 10; // 状态
  256. string remark = 11; // 备注
  257. int64 createTime = 12; // 创建时间
  258. int64 createAt = 13; // 创建者Id
  259. int64 updateTime = 14; // 更新时间
  260. int64 updateAt = 15; // 更新者Id
  261. string version = 16; // 数据版本
  262. }
  263. message VpnConfigTemplatePlanAddReq {
  264. VpnConfigTemplatePlanVo plan = 1;
  265. repeated VpnConfigTemplatePlanDetailVo details = 2;
  266. }
  267. message VpnConfigTemplatePlanAddResp {
  268. VpnConfigTemplatePlanVo plan = 1;
  269. repeated VpnConfigTemplatePlanDetailVo details = 2;
  270. }
  271. message VpnConfigTemplatePlanUpdateReq { VpnConfigTemplatePlanVo vo = 1; }
  272. message VpnConfigTemplatePlanUpdateResp { VpnConfigTemplatePlanVo vo = 1; }
  273. message VpnConfigTemplatePlanDelReq { repeated int64 ids = 1; }
  274. message VpnConfigTemplatePlanGetReq { VpnConfigTemplatePlanVo vo = 1; }
  275. message VpnConfigTemplatePlanGetResp {
  276. VpnConfigTemplatePlanVo plan = 1;
  277. repeated VpnConfigTemplatePlanDetailVo details = 2;
  278. }
  279. message VpnConfigTemplatePlanListReq {
  280. Page page = 1;
  281. VpnConfigTemplatePlanVo vo = 2;
  282. repeated int64 excludeIds = 3;
  283. repeated string productCodes = 4;
  284. }
  285. message VpnConfigTemplatePlanListResp {
  286. int64 total = 1;
  287. repeated VpnConfigTemplatePlanGetResp list = 2;
  288. }
  289. message VpnConfigTemplatePlanDetailAddReq {
  290. VpnConfigTemplatePlanDetailVo vo = 1;
  291. }
  292. message VpnConfigTemplatePlanDetailAddResp {
  293. VpnConfigTemplatePlanDetailVo vo = 1;
  294. }
  295. message VpnConfigTemplatePlanDetailUpdateReq {
  296. VpnConfigTemplatePlanDetailVo vo = 1;
  297. }
  298. message VpnConfigTemplatePlanDetailUpdateResp {
  299. VpnConfigTemplatePlanDetailVo vo = 1;
  300. }
  301. message VpnConfigTemplatePlanDetailDelReq { repeated int64 ids = 1; }
  302. message VpnConfigTemplatePlanDetailGetReq {
  303. VpnConfigTemplatePlanDetailVo vo = 1;
  304. }
  305. message VpnConfigTemplatePlanDetailGetResp {
  306. VpnConfigTemplatePlanDetailVo vo = 1;
  307. }
  308. message VpnConfigTemplatePlanDetailListReq {
  309. Page page = 1;
  310. VpnConfigTemplatePlanDetailVo vo = 2;
  311. repeated int64 planIds = 3;
  312. repeated int64 excludeIds = 4;
  313. repeated string productCodes = 5;
  314. }
  315. message VpnConfigTemplatePlanDetailListResp {
  316. int64 total = 1;
  317. repeated VpnConfigTemplatePlanDetailVo list = 2;
  318. }
  319. // govpn 模块,VPN相关服务
  320. service GoVpnClient {
  321. rpc Ping(Request) returns (Response);
  322. // 表的事务操作
  323. rpc Transaction(TransactionReq) returns (Empty);
  324. // VpnTag
  325. rpc VpnTagAdd(VpnTagVo) returns (VpnTagVo);
  326. rpc VpnTagUpdate(VpnTagVo) returns (VpnTagVo);
  327. rpc VpnTagDel(Ids) returns (Empty);
  328. rpc VpnTagGet(VpnTagGetReq) returns (VpnTagVo);
  329. rpc VpnTagList(VpnTagListReq) returns (VpnTagListResp);
  330. rpc VpnTagBatchAdd(VpnTagBatchAddReq) returns (VpnTagBatchAddResp);
  331. rpc VpnTagBatchUpdate(VpnTagBatchUpdateReq) returns (VpnTagBatchUpdateResp);
  332. // VpnGroup
  333. rpc VpnGroupAdd(VpnGroupAddReq) returns (VpnGroupVo);
  334. rpc VpnGroupUpdate(VpnGroupAddReq) returns (Empty);
  335. rpc VpnGroupDel(Ids) returns (Empty);
  336. rpc VpnGroupGet(VpnGroupGetReq) returns (VpnGroupVo);
  337. rpc VpnGroupList(VpnGroupListReq) returns (VpnGroupListResp);
  338. rpc VpnGroupBatchAdd(VpnGroupBatchAddReq) returns (VpnGroupBatchAddResp);
  339. rpc VpnGroupBatchUpdate(VpnGroupBatchUpdateReq)
  340. returns (VpnGroupBatchUpdateResp);
  341. // VpnGroupTag
  342. rpc VpnGroupTagAdd(VpnGroupTagVo) returns (VpnGroupTagVo);
  343. rpc VpnGroupTagUpdate(VpnGroupTagVo) returns (VpnGroupTagVo);
  344. rpc VpnGroupTagDel(Ids) returns (Empty);
  345. rpc VpnGroupTagGet(VpnGroupTagVo) returns (VpnGroupTagVo);
  346. rpc VpnGroupTagList(VpnGroupTagListReq) returns (VpnGroupTagListResp);
  347. // VpnLocation
  348. rpc VpnLocationAdd(VpnLocationVo) returns (VpnLocationVo);
  349. rpc VpnLocationUpdate(VpnLocationVo) returns (Empty);
  350. rpc VpnLocationDel(Ids) returns (Empty);
  351. rpc VpnLocationGet(VpnLocationGetReq) returns (VpnLocationVo);
  352. rpc VpnLocationList(VpnLocationListReq) returns (VpnLocationListResp);
  353. rpc VpnLocationBatchAdd(VpnLocationBatchAddReq)
  354. returns (VpnLocationBatchAddResp);
  355. rpc VpnLocationBatchUpdate(VpnLocationBatchUpdateReq)
  356. returns (VpnLocationBatchUpdateResp);
  357. // VpnServer
  358. rpc VpnServerAdd(VpnServerAddReq) returns (VpnServerAddReq);
  359. rpc VpnServerUpdate(VpnServerAddReq) returns (VpnServerAddReq);
  360. rpc VpnServerDel(Ids) returns (Empty);
  361. rpc VpnServerGet(VpnServerVo) returns (VpnServerVo);
  362. rpc VpnServerList(VpnServerListReq) returns (VpnServerListResp);
  363. rpc VpnServerExList(VpnServerListReq) returns (VpnServerExListResp);
  364. rpc VpnServerBatchAdd(VpnServerBatchAddReq) returns (VpnServerBatchAddResp);
  365. rpc VpnServerBatchUpdate(VpnServerBatchUpdateReq)
  366. returns (VpnServerBatchUpdateResp);
  367. // VpnServerLocation
  368. rpc VpnServerLocationAdd(VpnServerLocationVo) returns (VpnServerLocationVo);
  369. rpc VpnServerLocationUpdate(VpnServerLocationVo) returns (Empty);
  370. rpc VpnServerLocationDel(Ids) returns (Empty);
  371. rpc VpnServerLocationGet(VpnServerLocationVo) returns (VpnServerLocationVo);
  372. rpc VpnServerLocationList(VpnServerLocationListReq)
  373. returns (VpnServerLocationListResp);
  374. // VpnLocationServerCount
  375. rpc VpnLocationServerCount(VpnLocationServerCountReq)
  376. returns (VpnLocationServerCountResp);
  377. // VpnProbeTask
  378. rpc VpnProbeTaskAdd(VpnProbeTaskVo) returns (VpnProbeTaskVo);
  379. rpc VpnProbeTaskUpdate(VpnProbeTaskVo) returns (Empty);
  380. rpc VpnProbeTaskList(VpnProbeTaskListReq) returns (VpnProbeTaskListResp);
  381. // VpnConfigTemplatePlan
  382. rpc VpnConfigTemplatePlanAdd(VpnConfigTemplatePlanAddReq)
  383. returns (VpnConfigTemplatePlanAddResp);
  384. rpc VpnConfigTemplatePlanUpdate(VpnConfigTemplatePlanUpdateReq)
  385. returns (VpnConfigTemplatePlanUpdateResp);
  386. rpc VpnConfigTemplatePlanDel(VpnConfigTemplatePlanDelReq) returns (Empty);
  387. rpc VpnConfigTemplatePlanGet(VpnConfigTemplatePlanGetReq)
  388. returns (VpnConfigTemplatePlanGetResp);
  389. rpc VpnConfigTemplatePlanList(VpnConfigTemplatePlanListReq)
  390. returns (VpnConfigTemplatePlanListResp);
  391. rpc VpnConfigTemplatePlanDetailAdd(VpnConfigTemplatePlanDetailAddReq)
  392. returns (VpnConfigTemplatePlanDetailAddResp);
  393. rpc VpnConfigTemplatePlanDetailUpdate(VpnConfigTemplatePlanDetailUpdateReq)
  394. returns (VpnConfigTemplatePlanDetailUpdateResp);
  395. rpc VpnConfigTemplatePlanDetailDel(VpnConfigTemplatePlanDetailDelReq) returns (Empty);
  396. rpc VpnConfigTemplatePlanDetailGet(VpnConfigTemplatePlanDetailGetReq)
  397. returns (VpnConfigTemplatePlanDetailGetResp);
  398. rpc VpnConfigTemplatePlanDetailList(VpnConfigTemplatePlanDetailListReq)
  399. returns (VpnConfigTemplatePlanDetailListResp);
  400. }