rule_groups.pb.go 48 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466
  1. // Copyright 2025 Kuban Technologies
  2. //
  3. // 规则分组管理 - 支持场景化验证
  4. // 允许在不同业务场景下应用不同的验证规则集
  5. // Code generated by protoc-gen-go. DO NOT EDIT.
  6. // versions:
  7. // protoc-gen-go v1.36.6-modify
  8. // protoc v6.31.1
  9. // source: kuban/api/validate/rule_groups.proto
  10. package validate
  11. import (
  12. protoreflect "google.golang.org/protobuf/reflect/protoreflect"
  13. protoimpl "google.golang.org/protobuf/runtime/protoimpl"
  14. _ "google.golang.org/protobuf/types/descriptorpb"
  15. reflect "reflect"
  16. sync "sync"
  17. unsafe "unsafe"
  18. )
  19. const (
  20. // Verify that this generated code is sufficiently up-to-date.
  21. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
  22. // Verify that runtime/protoimpl is sufficiently up-to-date.
  23. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
  24. )
  25. // 常用验证组定义
  26. type CommonValidationGroup int32
  27. const (
  28. CommonValidationGroup_COMMON_VALIDATION_GROUP_UNSPECIFIED CommonValidationGroup = 0
  29. // CRUD 操作组
  30. CommonValidationGroup_COMMON_VALIDATION_GROUP_CREATE CommonValidationGroup = 1 // 创建场景
  31. CommonValidationGroup_COMMON_VALIDATION_GROUP_UPDATE CommonValidationGroup = 2 // 更新场景
  32. CommonValidationGroup_COMMON_VALIDATION_GROUP_PATCH CommonValidationGroup = 3 // 部分更新场景
  33. CommonValidationGroup_COMMON_VALIDATION_GROUP_DELETE CommonValidationGroup = 4 // 删除场景
  34. CommonValidationGroup_COMMON_VALIDATION_GROUP_QUERY CommonValidationGroup = 5 // 查询场景
  35. // 严格程度组
  36. CommonValidationGroup_COMMON_VALIDATION_GROUP_STRICT CommonValidationGroup = 10 // 严格模式
  37. CommonValidationGroup_COMMON_VALIDATION_GROUP_NORMAL CommonValidationGroup = 11 // 标准模式
  38. CommonValidationGroup_COMMON_VALIDATION_GROUP_LOOSE CommonValidationGroup = 12 // 宽松模式
  39. // 用户场景组
  40. CommonValidationGroup_COMMON_VALIDATION_GROUP_REGISTER CommonValidationGroup = 20 // 用户注册
  41. CommonValidationGroup_COMMON_VALIDATION_GROUP_LOGIN CommonValidationGroup = 21 // 用户登录
  42. CommonValidationGroup_COMMON_VALIDATION_GROUP_PROFILE CommonValidationGroup = 22 // 个人资料
  43. CommonValidationGroup_COMMON_VALIDATION_GROUP_CHANGE_PASSWORD CommonValidationGroup = 23 // 修改密码
  44. CommonValidationGroup_COMMON_VALIDATION_GROUP_RESET_PASSWORD CommonValidationGroup = 24 // 重置密码
  45. // 审核场景组
  46. CommonValidationGroup_COMMON_VALIDATION_GROUP_DRAFT CommonValidationGroup = 30 // 草稿
  47. CommonValidationGroup_COMMON_VALIDATION_GROUP_SUBMIT CommonValidationGroup = 31 // 提交审核
  48. CommonValidationGroup_COMMON_VALIDATION_GROUP_APPROVE CommonValidationGroup = 32 // 审核通过
  49. CommonValidationGroup_COMMON_VALIDATION_GROUP_REJECT CommonValidationGroup = 33 // 审核拒绝
  50. // 实名认证场景
  51. CommonValidationGroup_COMMON_VALIDATION_GROUP_REAL_NAME_AUTH CommonValidationGroup = 40 // 实名认证
  52. CommonValidationGroup_COMMON_VALIDATION_GROUP_ENTERPRISE_AUTH CommonValidationGroup = 41 // 企业认证
  53. CommonValidationGroup_COMMON_VALIDATION_GROUP_BANK_CARD_BINDING CommonValidationGroup = 42 // 银行卡绑定
  54. // 安全场景组
  55. CommonValidationGroup_COMMON_VALIDATION_GROUP_SENSITIVE_OP CommonValidationGroup = 50 // 敏感操作
  56. CommonValidationGroup_COMMON_VALIDATION_GROUP_FINANCIAL CommonValidationGroup = 51 // 金融交易
  57. CommonValidationGroup_COMMON_VALIDATION_GROUP_ADMIN CommonValidationGroup = 52 // 管理员操作
  58. )
  59. // Enum value maps for CommonValidationGroup.
  60. var (
  61. CommonValidationGroup_name = map[int32]string{
  62. 0: "COMMON_VALIDATION_GROUP_UNSPECIFIED",
  63. 1: "COMMON_VALIDATION_GROUP_CREATE",
  64. 2: "COMMON_VALIDATION_GROUP_UPDATE",
  65. 3: "COMMON_VALIDATION_GROUP_PATCH",
  66. 4: "COMMON_VALIDATION_GROUP_DELETE",
  67. 5: "COMMON_VALIDATION_GROUP_QUERY",
  68. 10: "COMMON_VALIDATION_GROUP_STRICT",
  69. 11: "COMMON_VALIDATION_GROUP_NORMAL",
  70. 12: "COMMON_VALIDATION_GROUP_LOOSE",
  71. 20: "COMMON_VALIDATION_GROUP_REGISTER",
  72. 21: "COMMON_VALIDATION_GROUP_LOGIN",
  73. 22: "COMMON_VALIDATION_GROUP_PROFILE",
  74. 23: "COMMON_VALIDATION_GROUP_CHANGE_PASSWORD",
  75. 24: "COMMON_VALIDATION_GROUP_RESET_PASSWORD",
  76. 30: "COMMON_VALIDATION_GROUP_DRAFT",
  77. 31: "COMMON_VALIDATION_GROUP_SUBMIT",
  78. 32: "COMMON_VALIDATION_GROUP_APPROVE",
  79. 33: "COMMON_VALIDATION_GROUP_REJECT",
  80. 40: "COMMON_VALIDATION_GROUP_REAL_NAME_AUTH",
  81. 41: "COMMON_VALIDATION_GROUP_ENTERPRISE_AUTH",
  82. 42: "COMMON_VALIDATION_GROUP_BANK_CARD_BINDING",
  83. 50: "COMMON_VALIDATION_GROUP_SENSITIVE_OP",
  84. 51: "COMMON_VALIDATION_GROUP_FINANCIAL",
  85. 52: "COMMON_VALIDATION_GROUP_ADMIN",
  86. }
  87. CommonValidationGroup_value = map[string]int32{
  88. "COMMON_VALIDATION_GROUP_UNSPECIFIED": 0,
  89. "COMMON_VALIDATION_GROUP_CREATE": 1,
  90. "COMMON_VALIDATION_GROUP_UPDATE": 2,
  91. "COMMON_VALIDATION_GROUP_PATCH": 3,
  92. "COMMON_VALIDATION_GROUP_DELETE": 4,
  93. "COMMON_VALIDATION_GROUP_QUERY": 5,
  94. "COMMON_VALIDATION_GROUP_STRICT": 10,
  95. "COMMON_VALIDATION_GROUP_NORMAL": 11,
  96. "COMMON_VALIDATION_GROUP_LOOSE": 12,
  97. "COMMON_VALIDATION_GROUP_REGISTER": 20,
  98. "COMMON_VALIDATION_GROUP_LOGIN": 21,
  99. "COMMON_VALIDATION_GROUP_PROFILE": 22,
  100. "COMMON_VALIDATION_GROUP_CHANGE_PASSWORD": 23,
  101. "COMMON_VALIDATION_GROUP_RESET_PASSWORD": 24,
  102. "COMMON_VALIDATION_GROUP_DRAFT": 30,
  103. "COMMON_VALIDATION_GROUP_SUBMIT": 31,
  104. "COMMON_VALIDATION_GROUP_APPROVE": 32,
  105. "COMMON_VALIDATION_GROUP_REJECT": 33,
  106. "COMMON_VALIDATION_GROUP_REAL_NAME_AUTH": 40,
  107. "COMMON_VALIDATION_GROUP_ENTERPRISE_AUTH": 41,
  108. "COMMON_VALIDATION_GROUP_BANK_CARD_BINDING": 42,
  109. "COMMON_VALIDATION_GROUP_SENSITIVE_OP": 50,
  110. "COMMON_VALIDATION_GROUP_FINANCIAL": 51,
  111. "COMMON_VALIDATION_GROUP_ADMIN": 52,
  112. }
  113. )
  114. func (x CommonValidationGroup) Enum() *CommonValidationGroup {
  115. p := new(CommonValidationGroup)
  116. *p = x
  117. return p
  118. }
  119. func (x CommonValidationGroup) String() string {
  120. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  121. }
  122. func (CommonValidationGroup) Descriptor() protoreflect.EnumDescriptor {
  123. return file_kuban_api_validate_rule_groups_proto_enumTypes[0].Descriptor()
  124. }
  125. func (CommonValidationGroup) Type() protoreflect.EnumType {
  126. return &file_kuban_api_validate_rule_groups_proto_enumTypes[0]
  127. }
  128. func (x CommonValidationGroup) Number() protoreflect.EnumNumber {
  129. return protoreflect.EnumNumber(x)
  130. }
  131. // Deprecated: Use CommonValidationGroup.Descriptor instead.
  132. func (CommonValidationGroup) EnumDescriptor() ([]byte, []int) {
  133. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{0}
  134. }
  135. // 请求来源
  136. type RequestSource int32
  137. const (
  138. RequestSource_REQUEST_SOURCE_UNSPECIFIED RequestSource = 0
  139. RequestSource_REQUEST_SOURCE_WEB RequestSource = 1 // Web 端
  140. RequestSource_REQUEST_SOURCE_MOBILE RequestSource = 2 // 移动端
  141. RequestSource_REQUEST_SOURCE_API RequestSource = 3 // API 调用
  142. RequestSource_REQUEST_SOURCE_INTERNAL RequestSource = 4 // 内部调用
  143. RequestSource_REQUEST_SOURCE_BATCH RequestSource = 5 // 批量处理
  144. )
  145. // Enum value maps for RequestSource.
  146. var (
  147. RequestSource_name = map[int32]string{
  148. 0: "REQUEST_SOURCE_UNSPECIFIED",
  149. 1: "REQUEST_SOURCE_WEB",
  150. 2: "REQUEST_SOURCE_MOBILE",
  151. 3: "REQUEST_SOURCE_API",
  152. 4: "REQUEST_SOURCE_INTERNAL",
  153. 5: "REQUEST_SOURCE_BATCH",
  154. }
  155. RequestSource_value = map[string]int32{
  156. "REQUEST_SOURCE_UNSPECIFIED": 0,
  157. "REQUEST_SOURCE_WEB": 1,
  158. "REQUEST_SOURCE_MOBILE": 2,
  159. "REQUEST_SOURCE_API": 3,
  160. "REQUEST_SOURCE_INTERNAL": 4,
  161. "REQUEST_SOURCE_BATCH": 5,
  162. }
  163. )
  164. func (x RequestSource) Enum() *RequestSource {
  165. p := new(RequestSource)
  166. *p = x
  167. return p
  168. }
  169. func (x RequestSource) String() string {
  170. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  171. }
  172. func (RequestSource) Descriptor() protoreflect.EnumDescriptor {
  173. return file_kuban_api_validate_rule_groups_proto_enumTypes[1].Descriptor()
  174. }
  175. func (RequestSource) Type() protoreflect.EnumType {
  176. return &file_kuban_api_validate_rule_groups_proto_enumTypes[1]
  177. }
  178. func (x RequestSource) Number() protoreflect.EnumNumber {
  179. return protoreflect.EnumNumber(x)
  180. }
  181. // Deprecated: Use RequestSource.Descriptor instead.
  182. func (RequestSource) EnumDescriptor() ([]byte, []int) {
  183. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{1}
  184. }
  185. // 验证模式
  186. type ValidationMode int32
  187. const (
  188. ValidationMode_VALIDATION_MODE_UNSPECIFIED ValidationMode = 0
  189. ValidationMode_VALIDATION_MODE_ALL ValidationMode = 1 // 验证所有规则
  190. ValidationMode_VALIDATION_MODE_REQUIRED_ONLY ValidationMode = 2 // 仅验证必填项
  191. ValidationMode_VALIDATION_MODE_CHANGED_ONLY ValidationMode = 3 // 仅验证修改的字段
  192. ValidationMode_VALIDATION_MODE_CUSTOM ValidationMode = 4 // 自定义(根据组选择)
  193. )
  194. // Enum value maps for ValidationMode.
  195. var (
  196. ValidationMode_name = map[int32]string{
  197. 0: "VALIDATION_MODE_UNSPECIFIED",
  198. 1: "VALIDATION_MODE_ALL",
  199. 2: "VALIDATION_MODE_REQUIRED_ONLY",
  200. 3: "VALIDATION_MODE_CHANGED_ONLY",
  201. 4: "VALIDATION_MODE_CUSTOM",
  202. }
  203. ValidationMode_value = map[string]int32{
  204. "VALIDATION_MODE_UNSPECIFIED": 0,
  205. "VALIDATION_MODE_ALL": 1,
  206. "VALIDATION_MODE_REQUIRED_ONLY": 2,
  207. "VALIDATION_MODE_CHANGED_ONLY": 3,
  208. "VALIDATION_MODE_CUSTOM": 4,
  209. }
  210. )
  211. func (x ValidationMode) Enum() *ValidationMode {
  212. p := new(ValidationMode)
  213. *p = x
  214. return p
  215. }
  216. func (x ValidationMode) String() string {
  217. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  218. }
  219. func (ValidationMode) Descriptor() protoreflect.EnumDescriptor {
  220. return file_kuban_api_validate_rule_groups_proto_enumTypes[2].Descriptor()
  221. }
  222. func (ValidationMode) Type() protoreflect.EnumType {
  223. return &file_kuban_api_validate_rule_groups_proto_enumTypes[2]
  224. }
  225. func (x ValidationMode) Number() protoreflect.EnumNumber {
  226. return protoreflect.EnumNumber(x)
  227. }
  228. // Deprecated: Use ValidationMode.Descriptor instead.
  229. func (ValidationMode) EnumDescriptor() ([]byte, []int) {
  230. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{2}
  231. }
  232. // 组合类型
  233. type CompositeType int32
  234. const (
  235. CompositeType_COMPOSITE_TYPE_UNSPECIFIED CompositeType = 0
  236. CompositeType_COMPOSITE_TYPE_AND CompositeType = 1 // 所有规则都必须通过
  237. CompositeType_COMPOSITE_TYPE_OR CompositeType = 2 // 至少一个规则通过
  238. CompositeType_COMPOSITE_TYPE_XOR CompositeType = 3 // 恰好一个规则通过
  239. CompositeType_COMPOSITE_TYPE_NOT CompositeType = 4 // 规则不能通过
  240. )
  241. // Enum value maps for CompositeType.
  242. var (
  243. CompositeType_name = map[int32]string{
  244. 0: "COMPOSITE_TYPE_UNSPECIFIED",
  245. 1: "COMPOSITE_TYPE_AND",
  246. 2: "COMPOSITE_TYPE_OR",
  247. 3: "COMPOSITE_TYPE_XOR",
  248. 4: "COMPOSITE_TYPE_NOT",
  249. }
  250. CompositeType_value = map[string]int32{
  251. "COMPOSITE_TYPE_UNSPECIFIED": 0,
  252. "COMPOSITE_TYPE_AND": 1,
  253. "COMPOSITE_TYPE_OR": 2,
  254. "COMPOSITE_TYPE_XOR": 3,
  255. "COMPOSITE_TYPE_NOT": 4,
  256. }
  257. )
  258. func (x CompositeType) Enum() *CompositeType {
  259. p := new(CompositeType)
  260. *p = x
  261. return p
  262. }
  263. func (x CompositeType) String() string {
  264. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  265. }
  266. func (CompositeType) Descriptor() protoreflect.EnumDescriptor {
  267. return file_kuban_api_validate_rule_groups_proto_enumTypes[3].Descriptor()
  268. }
  269. func (CompositeType) Type() protoreflect.EnumType {
  270. return &file_kuban_api_validate_rule_groups_proto_enumTypes[3]
  271. }
  272. func (x CompositeType) Number() protoreflect.EnumNumber {
  273. return protoreflect.EnumNumber(x)
  274. }
  275. // Deprecated: Use CompositeType.Descriptor instead.
  276. func (CompositeType) EnumDescriptor() ([]byte, []int) {
  277. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{3}
  278. }
  279. // 默认行为
  280. type DefaultBehavior int32
  281. const (
  282. DefaultBehavior_DEFAULT_BEHAVIOR_UNSPECIFIED DefaultBehavior = 0
  283. DefaultBehavior_DEFAULT_BEHAVIOR_SKIP DefaultBehavior = 1 // 跳过验证
  284. DefaultBehavior_DEFAULT_BEHAVIOR_APPLY DefaultBehavior = 2 // 应用验证
  285. DefaultBehavior_DEFAULT_BEHAVIOR_FAIL DefaultBehavior = 3 // 验证失败
  286. )
  287. // Enum value maps for DefaultBehavior.
  288. var (
  289. DefaultBehavior_name = map[int32]string{
  290. 0: "DEFAULT_BEHAVIOR_UNSPECIFIED",
  291. 1: "DEFAULT_BEHAVIOR_SKIP",
  292. 2: "DEFAULT_BEHAVIOR_APPLY",
  293. 3: "DEFAULT_BEHAVIOR_FAIL",
  294. }
  295. DefaultBehavior_value = map[string]int32{
  296. "DEFAULT_BEHAVIOR_UNSPECIFIED": 0,
  297. "DEFAULT_BEHAVIOR_SKIP": 1,
  298. "DEFAULT_BEHAVIOR_APPLY": 2,
  299. "DEFAULT_BEHAVIOR_FAIL": 3,
  300. }
  301. )
  302. func (x DefaultBehavior) Enum() *DefaultBehavior {
  303. p := new(DefaultBehavior)
  304. *p = x
  305. return p
  306. }
  307. func (x DefaultBehavior) String() string {
  308. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  309. }
  310. func (DefaultBehavior) Descriptor() protoreflect.EnumDescriptor {
  311. return file_kuban_api_validate_rule_groups_proto_enumTypes[4].Descriptor()
  312. }
  313. func (DefaultBehavior) Type() protoreflect.EnumType {
  314. return &file_kuban_api_validate_rule_groups_proto_enumTypes[4]
  315. }
  316. func (x DefaultBehavior) Number() protoreflect.EnumNumber {
  317. return protoreflect.EnumNumber(x)
  318. }
  319. // Deprecated: Use DefaultBehavior.Descriptor instead.
  320. func (DefaultBehavior) EnumDescriptor() ([]byte, []int) {
  321. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{4}
  322. }
  323. // 规则集类别
  324. type RuleSetCategory int32
  325. const (
  326. RuleSetCategory_RULE_SET_CATEGORY_UNSPECIFIED RuleSetCategory = 0
  327. RuleSetCategory_RULE_SET_CATEGORY_USER_MANAGEMENT RuleSetCategory = 1 // 用户管理
  328. RuleSetCategory_RULE_SET_CATEGORY_FINANCIAL RuleSetCategory = 2 // 金融
  329. RuleSetCategory_RULE_SET_CATEGORY_ECOMMERCE RuleSetCategory = 3 // 电商
  330. RuleSetCategory_RULE_SET_CATEGORY_CONTENT RuleSetCategory = 4 // 内容管理
  331. RuleSetCategory_RULE_SET_CATEGORY_GOVERNMENT RuleSetCategory = 5 // 政务
  332. RuleSetCategory_RULE_SET_CATEGORY_HEALTHCARE RuleSetCategory = 6 // 医疗
  333. RuleSetCategory_RULE_SET_CATEGORY_EDUCATION RuleSetCategory = 7 // 教育
  334. RuleSetCategory_RULE_SET_CATEGORY_GENERAL RuleSetCategory = 99 // 通用
  335. )
  336. // Enum value maps for RuleSetCategory.
  337. var (
  338. RuleSetCategory_name = map[int32]string{
  339. 0: "RULE_SET_CATEGORY_UNSPECIFIED",
  340. 1: "RULE_SET_CATEGORY_USER_MANAGEMENT",
  341. 2: "RULE_SET_CATEGORY_FINANCIAL",
  342. 3: "RULE_SET_CATEGORY_ECOMMERCE",
  343. 4: "RULE_SET_CATEGORY_CONTENT",
  344. 5: "RULE_SET_CATEGORY_GOVERNMENT",
  345. 6: "RULE_SET_CATEGORY_HEALTHCARE",
  346. 7: "RULE_SET_CATEGORY_EDUCATION",
  347. 99: "RULE_SET_CATEGORY_GENERAL",
  348. }
  349. RuleSetCategory_value = map[string]int32{
  350. "RULE_SET_CATEGORY_UNSPECIFIED": 0,
  351. "RULE_SET_CATEGORY_USER_MANAGEMENT": 1,
  352. "RULE_SET_CATEGORY_FINANCIAL": 2,
  353. "RULE_SET_CATEGORY_ECOMMERCE": 3,
  354. "RULE_SET_CATEGORY_CONTENT": 4,
  355. "RULE_SET_CATEGORY_GOVERNMENT": 5,
  356. "RULE_SET_CATEGORY_HEALTHCARE": 6,
  357. "RULE_SET_CATEGORY_EDUCATION": 7,
  358. "RULE_SET_CATEGORY_GENERAL": 99,
  359. }
  360. )
  361. func (x RuleSetCategory) Enum() *RuleSetCategory {
  362. p := new(RuleSetCategory)
  363. *p = x
  364. return p
  365. }
  366. func (x RuleSetCategory) String() string {
  367. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  368. }
  369. func (RuleSetCategory) Descriptor() protoreflect.EnumDescriptor {
  370. return file_kuban_api_validate_rule_groups_proto_enumTypes[5].Descriptor()
  371. }
  372. func (RuleSetCategory) Type() protoreflect.EnumType {
  373. return &file_kuban_api_validate_rule_groups_proto_enumTypes[5]
  374. }
  375. func (x RuleSetCategory) Number() protoreflect.EnumNumber {
  376. return protoreflect.EnumNumber(x)
  377. }
  378. // Deprecated: Use RuleSetCategory.Descriptor instead.
  379. func (RuleSetCategory) EnumDescriptor() ([]byte, []int) {
  380. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{5}
  381. }
  382. // 验证组 - 用于场景化验证
  383. //
  384. // 使用示例:
  385. // ```proto
  386. //
  387. // message User {
  388. // string name = 1 [
  389. // (kuban.api.validate.field).string = { min_len: 2, max_len: 50 },
  390. // (kuban.api.validate.field).groups = ["create", "update"]
  391. // ];
  392. //
  393. // string password = 2 [
  394. // (kuban.api.validate.field).string = { min_len: 8 },
  395. // (kuban.api.validate.field).groups = ["create", "change_password"]
  396. // ];
  397. // }
  398. //
  399. // ```
  400. type ValidationGroup struct {
  401. state protoimpl.MessageState `protogen:"open.v1"`
  402. // 组名称(唯一标识)
  403. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"`
  404. // 组显示名称(中文)
  405. DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name"`
  406. // 组显示名称(英文)
  407. DisplayNameEn string `protobuf:"bytes,3,opt,name=display_name_en,json=displayNameEn,proto3" json:"display_name_en"`
  408. // 组描述
  409. Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description"`
  410. // 是否为默认组(默认启用)
  411. IsDefault bool `protobuf:"varint,5,opt,name=is_default,json=isDefault,proto3" json:"is_default"`
  412. // 优先级(数字越大优先级越高)
  413. Priority int32 `protobuf:"varint,6,opt,name=priority,proto3" json:"priority"`
  414. // 父组(用于继承规则)
  415. ParentGroup string `protobuf:"bytes,7,opt,name=parent_group,json=parentGroup,proto3" json:"parent_group"`
  416. // 互斥组(不能同时激活的组)
  417. ExclusiveGroups []string `protobuf:"bytes,8,rep,name=exclusive_groups,json=exclusiveGroups,proto3" json:"exclusive_groups"`
  418. unknownFields protoimpl.UnknownFields
  419. sizeCache protoimpl.SizeCache
  420. }
  421. func (x *ValidationGroup) Reset() {
  422. *x = ValidationGroup{}
  423. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[0]
  424. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  425. ms.StoreMessageInfo(mi)
  426. }
  427. func (x *ValidationGroup) String() string {
  428. return protoimpl.X.MessageStringOf(x)
  429. }
  430. func (*ValidationGroup) ProtoMessage() {}
  431. func (x *ValidationGroup) ProtoReflect() protoreflect.Message {
  432. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[0]
  433. if x != nil {
  434. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  435. if ms.LoadMessageInfo() == nil {
  436. ms.StoreMessageInfo(mi)
  437. }
  438. return ms
  439. }
  440. return mi.MessageOf(x)
  441. }
  442. // Deprecated: Use ValidationGroup.ProtoReflect.Descriptor instead.
  443. func (*ValidationGroup) Descriptor() ([]byte, []int) {
  444. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{0}
  445. }
  446. func (x *ValidationGroup) GetName() string {
  447. if x != nil {
  448. return x.Name
  449. }
  450. return ""
  451. }
  452. func (x *ValidationGroup) GetDisplayName() string {
  453. if x != nil {
  454. return x.DisplayName
  455. }
  456. return ""
  457. }
  458. func (x *ValidationGroup) GetDisplayNameEn() string {
  459. if x != nil {
  460. return x.DisplayNameEn
  461. }
  462. return ""
  463. }
  464. func (x *ValidationGroup) GetDescription() string {
  465. if x != nil {
  466. return x.Description
  467. }
  468. return ""
  469. }
  470. func (x *ValidationGroup) GetIsDefault() bool {
  471. if x != nil {
  472. return x.IsDefault
  473. }
  474. return false
  475. }
  476. func (x *ValidationGroup) GetPriority() int32 {
  477. if x != nil {
  478. return x.Priority
  479. }
  480. return 0
  481. }
  482. func (x *ValidationGroup) GetParentGroup() string {
  483. if x != nil {
  484. return x.ParentGroup
  485. }
  486. return ""
  487. }
  488. func (x *ValidationGroup) GetExclusiveGroups() []string {
  489. if x != nil {
  490. return x.ExclusiveGroups
  491. }
  492. return nil
  493. }
  494. // 验证上下文 - 运行时传递给验证器的上下文信息
  495. type ValidationContext struct {
  496. state protoimpl.MessageState `protogen:"open.v1"`
  497. // 激活的验证组
  498. ActiveGroups []string `protobuf:"bytes,1,rep,name=active_groups,json=activeGroups,proto3" json:"active_groups"`
  499. // 用户角色
  500. UserRoles []string `protobuf:"bytes,2,rep,name=user_roles,json=userRoles,proto3" json:"user_roles"`
  501. // 用户权限
  502. UserPermissions []string `protobuf:"bytes,3,rep,name=user_permissions,json=userPermissions,proto3" json:"user_permissions"`
  503. // 租户 ID(多租户场景)
  504. TenantId string `protobuf:"bytes,4,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id"`
  505. // 请求来源
  506. Source RequestSource `protobuf:"varint,5,opt,name=source,proto3,enum=kuban.api.validate.RequestSource" json:"source"`
  507. // 是否为管理员操作
  508. IsAdmin bool `protobuf:"varint,6,opt,name=is_admin,json=isAdmin,proto3" json:"is_admin"`
  509. // 自定义元数据
  510. Metadata map[string]string `protobuf:"bytes,7,rep,name=metadata,proto3" json:"metadata" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
  511. // 验证时间戳
  512. Timestamp int64 `protobuf:"varint,8,opt,name=timestamp,proto3" json:"timestamp"`
  513. // 语言偏好(用于错误消息)
  514. Language string `protobuf:"bytes,9,opt,name=language,proto3" json:"language"`
  515. unknownFields protoimpl.UnknownFields
  516. sizeCache protoimpl.SizeCache
  517. }
  518. func (x *ValidationContext) Reset() {
  519. *x = ValidationContext{}
  520. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[1]
  521. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  522. ms.StoreMessageInfo(mi)
  523. }
  524. func (x *ValidationContext) String() string {
  525. return protoimpl.X.MessageStringOf(x)
  526. }
  527. func (*ValidationContext) ProtoMessage() {}
  528. func (x *ValidationContext) ProtoReflect() protoreflect.Message {
  529. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[1]
  530. if x != nil {
  531. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  532. if ms.LoadMessageInfo() == nil {
  533. ms.StoreMessageInfo(mi)
  534. }
  535. return ms
  536. }
  537. return mi.MessageOf(x)
  538. }
  539. // Deprecated: Use ValidationContext.ProtoReflect.Descriptor instead.
  540. func (*ValidationContext) Descriptor() ([]byte, []int) {
  541. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{1}
  542. }
  543. func (x *ValidationContext) GetActiveGroups() []string {
  544. if x != nil {
  545. return x.ActiveGroups
  546. }
  547. return nil
  548. }
  549. func (x *ValidationContext) GetUserRoles() []string {
  550. if x != nil {
  551. return x.UserRoles
  552. }
  553. return nil
  554. }
  555. func (x *ValidationContext) GetUserPermissions() []string {
  556. if x != nil {
  557. return x.UserPermissions
  558. }
  559. return nil
  560. }
  561. func (x *ValidationContext) GetTenantId() string {
  562. if x != nil {
  563. return x.TenantId
  564. }
  565. return ""
  566. }
  567. func (x *ValidationContext) GetSource() RequestSource {
  568. if x != nil {
  569. return x.Source
  570. }
  571. return RequestSource_REQUEST_SOURCE_UNSPECIFIED
  572. }
  573. func (x *ValidationContext) GetIsAdmin() bool {
  574. if x != nil {
  575. return x.IsAdmin
  576. }
  577. return false
  578. }
  579. func (x *ValidationContext) GetMetadata() map[string]string {
  580. if x != nil {
  581. return x.Metadata
  582. }
  583. return nil
  584. }
  585. func (x *ValidationContext) GetTimestamp() int64 {
  586. if x != nil {
  587. return x.Timestamp
  588. }
  589. return 0
  590. }
  591. func (x *ValidationContext) GetLanguage() string {
  592. if x != nil {
  593. return x.Language
  594. }
  595. return ""
  596. }
  597. // 验证策略 - 控制验证行为
  598. type ValidationStrategy struct {
  599. state protoimpl.MessageState `protogen:"open.v1"`
  600. // 验证模式
  601. Mode ValidationMode `protobuf:"varint,1,opt,name=mode,proto3,enum=kuban.api.validate.ValidationMode" json:"mode"`
  602. // 是否快速失败(遇到第一个错误就停止)
  603. FailFast bool `protobuf:"varint,2,opt,name=fail_fast,json=failFast,proto3" json:"fail_fast"`
  604. // 是否收集警告(非阻塞性错误)
  605. CollectWarnings bool `protobuf:"varint,3,opt,name=collect_warnings,json=collectWarnings,proto3" json:"collect_warnings"`
  606. // 最大错误数(超过后停止验证)
  607. MaxErrors int32 `protobuf:"varint,4,opt,name=max_errors,json=maxErrors,proto3" json:"max_errors"`
  608. // 验证超时(毫秒)
  609. TimeoutMs int64 `protobuf:"varint,5,opt,name=timeout_ms,json=timeoutMs,proto3" json:"timeout_ms"`
  610. // 是否启用缓存
  611. EnableCache bool `protobuf:"varint,6,opt,name=enable_cache,json=enableCache,proto3" json:"enable_cache"`
  612. // 缓存 TTL(秒)
  613. CacheTtlSeconds int32 `protobuf:"varint,7,opt,name=cache_ttl_seconds,json=cacheTtlSeconds,proto3" json:"cache_ttl_seconds"`
  614. unknownFields protoimpl.UnknownFields
  615. sizeCache protoimpl.SizeCache
  616. }
  617. func (x *ValidationStrategy) Reset() {
  618. *x = ValidationStrategy{}
  619. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[2]
  620. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  621. ms.StoreMessageInfo(mi)
  622. }
  623. func (x *ValidationStrategy) String() string {
  624. return protoimpl.X.MessageStringOf(x)
  625. }
  626. func (*ValidationStrategy) ProtoMessage() {}
  627. func (x *ValidationStrategy) ProtoReflect() protoreflect.Message {
  628. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[2]
  629. if x != nil {
  630. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  631. if ms.LoadMessageInfo() == nil {
  632. ms.StoreMessageInfo(mi)
  633. }
  634. return ms
  635. }
  636. return mi.MessageOf(x)
  637. }
  638. // Deprecated: Use ValidationStrategy.ProtoReflect.Descriptor instead.
  639. func (*ValidationStrategy) Descriptor() ([]byte, []int) {
  640. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{2}
  641. }
  642. func (x *ValidationStrategy) GetMode() ValidationMode {
  643. if x != nil {
  644. return x.Mode
  645. }
  646. return ValidationMode_VALIDATION_MODE_UNSPECIFIED
  647. }
  648. func (x *ValidationStrategy) GetFailFast() bool {
  649. if x != nil {
  650. return x.FailFast
  651. }
  652. return false
  653. }
  654. func (x *ValidationStrategy) GetCollectWarnings() bool {
  655. if x != nil {
  656. return x.CollectWarnings
  657. }
  658. return false
  659. }
  660. func (x *ValidationStrategy) GetMaxErrors() int32 {
  661. if x != nil {
  662. return x.MaxErrors
  663. }
  664. return 0
  665. }
  666. func (x *ValidationStrategy) GetTimeoutMs() int64 {
  667. if x != nil {
  668. return x.TimeoutMs
  669. }
  670. return 0
  671. }
  672. func (x *ValidationStrategy) GetEnableCache() bool {
  673. if x != nil {
  674. return x.EnableCache
  675. }
  676. return false
  677. }
  678. func (x *ValidationStrategy) GetCacheTtlSeconds() int32 {
  679. if x != nil {
  680. return x.CacheTtlSeconds
  681. }
  682. return 0
  683. }
  684. // 组合验证规则 - 支持复杂的验证逻辑组合
  685. type CompositeRule struct {
  686. state protoimpl.MessageState `protogen:"open.v1"`
  687. // 规则组合类型
  688. Type CompositeType `protobuf:"varint,1,opt,name=type,proto3,enum=kuban.api.validate.CompositeType" json:"type"`
  689. // 子规则列表
  690. Rules []*RuleRef `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules"`
  691. // 错误消息
  692. Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message"`
  693. // 错误消息(英文)
  694. MessageEn string `protobuf:"bytes,4,opt,name=message_en,json=messageEn,proto3" json:"message_en"`
  695. unknownFields protoimpl.UnknownFields
  696. sizeCache protoimpl.SizeCache
  697. }
  698. func (x *CompositeRule) Reset() {
  699. *x = CompositeRule{}
  700. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[3]
  701. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  702. ms.StoreMessageInfo(mi)
  703. }
  704. func (x *CompositeRule) String() string {
  705. return protoimpl.X.MessageStringOf(x)
  706. }
  707. func (*CompositeRule) ProtoMessage() {}
  708. func (x *CompositeRule) ProtoReflect() protoreflect.Message {
  709. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[3]
  710. if x != nil {
  711. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  712. if ms.LoadMessageInfo() == nil {
  713. ms.StoreMessageInfo(mi)
  714. }
  715. return ms
  716. }
  717. return mi.MessageOf(x)
  718. }
  719. // Deprecated: Use CompositeRule.ProtoReflect.Descriptor instead.
  720. func (*CompositeRule) Descriptor() ([]byte, []int) {
  721. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{3}
  722. }
  723. func (x *CompositeRule) GetType() CompositeType {
  724. if x != nil {
  725. return x.Type
  726. }
  727. return CompositeType_COMPOSITE_TYPE_UNSPECIFIED
  728. }
  729. func (x *CompositeRule) GetRules() []*RuleRef {
  730. if x != nil {
  731. return x.Rules
  732. }
  733. return nil
  734. }
  735. func (x *CompositeRule) GetMessage() string {
  736. if x != nil {
  737. return x.Message
  738. }
  739. return ""
  740. }
  741. func (x *CompositeRule) GetMessageEn() string {
  742. if x != nil {
  743. return x.MessageEn
  744. }
  745. return ""
  746. }
  747. // 规则引用
  748. type RuleRef struct {
  749. state protoimpl.MessageState `protogen:"open.v1"`
  750. // 规则 ID
  751. RuleId string `protobuf:"bytes,1,opt,name=rule_id,json=ruleId,proto3" json:"rule_id"`
  752. // 规则权重(用于优先级排序)
  753. Weight int32 `protobuf:"varint,2,opt,name=weight,proto3" json:"weight"`
  754. // 是否为可选规则
  755. Optional bool `protobuf:"varint,3,opt,name=optional,proto3" json:"optional"`
  756. unknownFields protoimpl.UnknownFields
  757. sizeCache protoimpl.SizeCache
  758. }
  759. func (x *RuleRef) Reset() {
  760. *x = RuleRef{}
  761. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[4]
  762. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  763. ms.StoreMessageInfo(mi)
  764. }
  765. func (x *RuleRef) String() string {
  766. return protoimpl.X.MessageStringOf(x)
  767. }
  768. func (*RuleRef) ProtoMessage() {}
  769. func (x *RuleRef) ProtoReflect() protoreflect.Message {
  770. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[4]
  771. if x != nil {
  772. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  773. if ms.LoadMessageInfo() == nil {
  774. ms.StoreMessageInfo(mi)
  775. }
  776. return ms
  777. }
  778. return mi.MessageOf(x)
  779. }
  780. // Deprecated: Use RuleRef.ProtoReflect.Descriptor instead.
  781. func (*RuleRef) Descriptor() ([]byte, []int) {
  782. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{4}
  783. }
  784. func (x *RuleRef) GetRuleId() string {
  785. if x != nil {
  786. return x.RuleId
  787. }
  788. return ""
  789. }
  790. func (x *RuleRef) GetWeight() int32 {
  791. if x != nil {
  792. return x.Weight
  793. }
  794. return 0
  795. }
  796. func (x *RuleRef) GetOptional() bool {
  797. if x != nil {
  798. return x.Optional
  799. }
  800. return false
  801. }
  802. // 条件验证规则 - 根据条件决定是否应用规则
  803. type ConditionalRule struct {
  804. state protoimpl.MessageState `protogen:"open.v1"`
  805. // 条件表达式(CEL)
  806. Condition string `protobuf:"bytes,1,opt,name=condition,proto3" json:"condition"`
  807. // 条件为真时应用的规则
  808. WhenTrue []*RuleRef `protobuf:"bytes,2,rep,name=when_true,json=whenTrue,proto3" json:"when_true"`
  809. // 条件为假时应用的规则
  810. WhenFalse []*RuleRef `protobuf:"bytes,3,rep,name=when_false,json=whenFalse,proto3" json:"when_false"`
  811. // 条件评估失败时的默认行为
  812. OnError DefaultBehavior `protobuf:"varint,4,opt,name=on_error,json=onError,proto3,enum=kuban.api.validate.DefaultBehavior" json:"on_error"`
  813. unknownFields protoimpl.UnknownFields
  814. sizeCache protoimpl.SizeCache
  815. }
  816. func (x *ConditionalRule) Reset() {
  817. *x = ConditionalRule{}
  818. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[5]
  819. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  820. ms.StoreMessageInfo(mi)
  821. }
  822. func (x *ConditionalRule) String() string {
  823. return protoimpl.X.MessageStringOf(x)
  824. }
  825. func (*ConditionalRule) ProtoMessage() {}
  826. func (x *ConditionalRule) ProtoReflect() protoreflect.Message {
  827. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[5]
  828. if x != nil {
  829. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  830. if ms.LoadMessageInfo() == nil {
  831. ms.StoreMessageInfo(mi)
  832. }
  833. return ms
  834. }
  835. return mi.MessageOf(x)
  836. }
  837. // Deprecated: Use ConditionalRule.ProtoReflect.Descriptor instead.
  838. func (*ConditionalRule) Descriptor() ([]byte, []int) {
  839. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{5}
  840. }
  841. func (x *ConditionalRule) GetCondition() string {
  842. if x != nil {
  843. return x.Condition
  844. }
  845. return ""
  846. }
  847. func (x *ConditionalRule) GetWhenTrue() []*RuleRef {
  848. if x != nil {
  849. return x.WhenTrue
  850. }
  851. return nil
  852. }
  853. func (x *ConditionalRule) GetWhenFalse() []*RuleRef {
  854. if x != nil {
  855. return x.WhenFalse
  856. }
  857. return nil
  858. }
  859. func (x *ConditionalRule) GetOnError() DefaultBehavior {
  860. if x != nil {
  861. return x.OnError
  862. }
  863. return DefaultBehavior_DEFAULT_BEHAVIOR_UNSPECIFIED
  864. }
  865. // 验证规则集 - 预定义的规则组合,可复用
  866. type ValidationRuleSet struct {
  867. state protoimpl.MessageState `protogen:"open.v1"`
  868. // 规则集 ID
  869. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
  870. // 规则集名称
  871. Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"`
  872. // 规则集描述
  873. Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description"`
  874. // 规则集版本
  875. Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version"`
  876. // 包含的验证组
  877. Groups []string `protobuf:"bytes,5,rep,name=groups,proto3" json:"groups"`
  878. // 包含的规则
  879. Rules []*RuleRef `protobuf:"bytes,6,rep,name=rules,proto3" json:"rules"`
  880. // 验证策略
  881. Strategy *ValidationStrategy `protobuf:"bytes,7,opt,name=strategy,proto3" json:"strategy"`
  882. // 是否为内置规则集
  883. Builtin bool `protobuf:"varint,8,opt,name=builtin,proto3" json:"builtin"`
  884. // 创建时间
  885. CreatedAt int64 `protobuf:"varint,9,opt,name=created_at,json=createdAt,proto3" json:"created_at"`
  886. // 更新时间
  887. UpdatedAt int64 `protobuf:"varint,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at"`
  888. // 创建者
  889. CreatedBy string `protobuf:"bytes,11,opt,name=created_by,json=createdBy,proto3" json:"created_by"`
  890. unknownFields protoimpl.UnknownFields
  891. sizeCache protoimpl.SizeCache
  892. }
  893. func (x *ValidationRuleSet) Reset() {
  894. *x = ValidationRuleSet{}
  895. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[6]
  896. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  897. ms.StoreMessageInfo(mi)
  898. }
  899. func (x *ValidationRuleSet) String() string {
  900. return protoimpl.X.MessageStringOf(x)
  901. }
  902. func (*ValidationRuleSet) ProtoMessage() {}
  903. func (x *ValidationRuleSet) ProtoReflect() protoreflect.Message {
  904. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[6]
  905. if x != nil {
  906. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  907. if ms.LoadMessageInfo() == nil {
  908. ms.StoreMessageInfo(mi)
  909. }
  910. return ms
  911. }
  912. return mi.MessageOf(x)
  913. }
  914. // Deprecated: Use ValidationRuleSet.ProtoReflect.Descriptor instead.
  915. func (*ValidationRuleSet) Descriptor() ([]byte, []int) {
  916. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{6}
  917. }
  918. func (x *ValidationRuleSet) GetId() string {
  919. if x != nil {
  920. return x.Id
  921. }
  922. return ""
  923. }
  924. func (x *ValidationRuleSet) GetName() string {
  925. if x != nil {
  926. return x.Name
  927. }
  928. return ""
  929. }
  930. func (x *ValidationRuleSet) GetDescription() string {
  931. if x != nil {
  932. return x.Description
  933. }
  934. return ""
  935. }
  936. func (x *ValidationRuleSet) GetVersion() string {
  937. if x != nil {
  938. return x.Version
  939. }
  940. return ""
  941. }
  942. func (x *ValidationRuleSet) GetGroups() []string {
  943. if x != nil {
  944. return x.Groups
  945. }
  946. return nil
  947. }
  948. func (x *ValidationRuleSet) GetRules() []*RuleRef {
  949. if x != nil {
  950. return x.Rules
  951. }
  952. return nil
  953. }
  954. func (x *ValidationRuleSet) GetStrategy() *ValidationStrategy {
  955. if x != nil {
  956. return x.Strategy
  957. }
  958. return nil
  959. }
  960. func (x *ValidationRuleSet) GetBuiltin() bool {
  961. if x != nil {
  962. return x.Builtin
  963. }
  964. return false
  965. }
  966. func (x *ValidationRuleSet) GetCreatedAt() int64 {
  967. if x != nil {
  968. return x.CreatedAt
  969. }
  970. return 0
  971. }
  972. func (x *ValidationRuleSet) GetUpdatedAt() int64 {
  973. if x != nil {
  974. return x.UpdatedAt
  975. }
  976. return 0
  977. }
  978. func (x *ValidationRuleSet) GetCreatedBy() string {
  979. if x != nil {
  980. return x.CreatedBy
  981. }
  982. return ""
  983. }
  984. // 规则集模板 - 用于快速创建常见场景的验证规则
  985. type RuleSetTemplate struct {
  986. state protoimpl.MessageState `protogen:"open.v1"`
  987. // 模板 ID
  988. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
  989. // 模板名称
  990. Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"`
  991. // 模板描述
  992. Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description"`
  993. // 适用场景
  994. Scenarios []string `protobuf:"bytes,4,rep,name=scenarios,proto3" json:"scenarios"`
  995. // 模板类别
  996. Categories []string `protobuf:"bytes,5,rep,name=categories,proto3" json:"categories"`
  997. // 规则集定义
  998. RuleSet *ValidationRuleSet `protobuf:"bytes,6,opt,name=rule_set,json=ruleSet,proto3" json:"rule_set"`
  999. // 使用示例
  1000. UsageExample string `protobuf:"bytes,7,opt,name=usage_example,json=usageExample,proto3" json:"usage_example"`
  1001. // 下载次数
  1002. DownloadCount int64 `protobuf:"varint,8,opt,name=download_count,json=downloadCount,proto3" json:"download_count"`
  1003. // 评分
  1004. Rating float32 `protobuf:"fixed32,9,opt,name=rating,proto3" json:"rating"`
  1005. unknownFields protoimpl.UnknownFields
  1006. sizeCache protoimpl.SizeCache
  1007. }
  1008. func (x *RuleSetTemplate) Reset() {
  1009. *x = RuleSetTemplate{}
  1010. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[7]
  1011. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1012. ms.StoreMessageInfo(mi)
  1013. }
  1014. func (x *RuleSetTemplate) String() string {
  1015. return protoimpl.X.MessageStringOf(x)
  1016. }
  1017. func (*RuleSetTemplate) ProtoMessage() {}
  1018. func (x *RuleSetTemplate) ProtoReflect() protoreflect.Message {
  1019. mi := &file_kuban_api_validate_rule_groups_proto_msgTypes[7]
  1020. if x != nil {
  1021. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1022. if ms.LoadMessageInfo() == nil {
  1023. ms.StoreMessageInfo(mi)
  1024. }
  1025. return ms
  1026. }
  1027. return mi.MessageOf(x)
  1028. }
  1029. // Deprecated: Use RuleSetTemplate.ProtoReflect.Descriptor instead.
  1030. func (*RuleSetTemplate) Descriptor() ([]byte, []int) {
  1031. return file_kuban_api_validate_rule_groups_proto_rawDescGZIP(), []int{7}
  1032. }
  1033. func (x *RuleSetTemplate) GetId() string {
  1034. if x != nil {
  1035. return x.Id
  1036. }
  1037. return ""
  1038. }
  1039. func (x *RuleSetTemplate) GetName() string {
  1040. if x != nil {
  1041. return x.Name
  1042. }
  1043. return ""
  1044. }
  1045. func (x *RuleSetTemplate) GetDescription() string {
  1046. if x != nil {
  1047. return x.Description
  1048. }
  1049. return ""
  1050. }
  1051. func (x *RuleSetTemplate) GetScenarios() []string {
  1052. if x != nil {
  1053. return x.Scenarios
  1054. }
  1055. return nil
  1056. }
  1057. func (x *RuleSetTemplate) GetCategories() []string {
  1058. if x != nil {
  1059. return x.Categories
  1060. }
  1061. return nil
  1062. }
  1063. func (x *RuleSetTemplate) GetRuleSet() *ValidationRuleSet {
  1064. if x != nil {
  1065. return x.RuleSet
  1066. }
  1067. return nil
  1068. }
  1069. func (x *RuleSetTemplate) GetUsageExample() string {
  1070. if x != nil {
  1071. return x.UsageExample
  1072. }
  1073. return ""
  1074. }
  1075. func (x *RuleSetTemplate) GetDownloadCount() int64 {
  1076. if x != nil {
  1077. return x.DownloadCount
  1078. }
  1079. return 0
  1080. }
  1081. func (x *RuleSetTemplate) GetRating() float32 {
  1082. if x != nil {
  1083. return x.Rating
  1084. }
  1085. return 0
  1086. }
  1087. var File_kuban_api_validate_rule_groups_proto protoreflect.FileDescriptor
  1088. const file_kuban_api_validate_rule_groups_proto_rawDesc = "" +
  1089. "\n" +
  1090. "$kuban/api/validate/rule_groups.proto\x12\x12kuban.api.validate\x1a google/protobuf/descriptor.proto\"\x9b\x02\n" +
  1091. "\x0fValidationGroup\x12\x12\n" +
  1092. "\x04name\x18\x01 \x01(\tR\x04name\x12!\n" +
  1093. "\fdisplay_name\x18\x02 \x01(\tR\vdisplayName\x12&\n" +
  1094. "\x0fdisplay_name_en\x18\x03 \x01(\tR\rdisplayNameEn\x12 \n" +
  1095. "\vdescription\x18\x04 \x01(\tR\vdescription\x12\x1d\n" +
  1096. "\n" +
  1097. "is_default\x18\x05 \x01(\bR\tisDefault\x12\x1a\n" +
  1098. "\bpriority\x18\x06 \x01(\x05R\bpriority\x12!\n" +
  1099. "\fparent_group\x18\a \x01(\tR\vparentGroup\x12)\n" +
  1100. "\x10exclusive_groups\x18\b \x03(\tR\x0fexclusiveGroups\"\xbd\x03\n" +
  1101. "\x11ValidationContext\x12#\n" +
  1102. "\ractive_groups\x18\x01 \x03(\tR\factiveGroups\x12\x1d\n" +
  1103. "\n" +
  1104. "user_roles\x18\x02 \x03(\tR\tuserRoles\x12)\n" +
  1105. "\x10user_permissions\x18\x03 \x03(\tR\x0fuserPermissions\x12\x1b\n" +
  1106. "\ttenant_id\x18\x04 \x01(\tR\btenantId\x129\n" +
  1107. "\x06source\x18\x05 \x01(\x0e2!.kuban.api.validate.RequestSourceR\x06source\x12\x19\n" +
  1108. "\bis_admin\x18\x06 \x01(\bR\aisAdmin\x12O\n" +
  1109. "\bmetadata\x18\a \x03(\v23.kuban.api.validate.ValidationContext.MetadataEntryR\bmetadata\x12\x1c\n" +
  1110. "\ttimestamp\x18\b \x01(\x03R\ttimestamp\x12\x1a\n" +
  1111. "\blanguage\x18\t \x01(\tR\blanguage\x1a;\n" +
  1112. "\rMetadataEntry\x12\x10\n" +
  1113. "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
  1114. "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xa1\x02\n" +
  1115. "\x12ValidationStrategy\x126\n" +
  1116. "\x04mode\x18\x01 \x01(\x0e2\".kuban.api.validate.ValidationModeR\x04mode\x12\x1b\n" +
  1117. "\tfail_fast\x18\x02 \x01(\bR\bfailFast\x12)\n" +
  1118. "\x10collect_warnings\x18\x03 \x01(\bR\x0fcollectWarnings\x12\x1d\n" +
  1119. "\n" +
  1120. "max_errors\x18\x04 \x01(\x05R\tmaxErrors\x12\x1d\n" +
  1121. "\n" +
  1122. "timeout_ms\x18\x05 \x01(\x03R\ttimeoutMs\x12!\n" +
  1123. "\fenable_cache\x18\x06 \x01(\bR\venableCache\x12*\n" +
  1124. "\x11cache_ttl_seconds\x18\a \x01(\x05R\x0fcacheTtlSeconds\"\xb2\x01\n" +
  1125. "\rCompositeRule\x125\n" +
  1126. "\x04type\x18\x01 \x01(\x0e2!.kuban.api.validate.CompositeTypeR\x04type\x121\n" +
  1127. "\x05rules\x18\x02 \x03(\v2\x1b.kuban.api.validate.RuleRefR\x05rules\x12\x18\n" +
  1128. "\amessage\x18\x03 \x01(\tR\amessage\x12\x1d\n" +
  1129. "\n" +
  1130. "message_en\x18\x04 \x01(\tR\tmessageEn\"V\n" +
  1131. "\aRuleRef\x12\x17\n" +
  1132. "\arule_id\x18\x01 \x01(\tR\x06ruleId\x12\x16\n" +
  1133. "\x06weight\x18\x02 \x01(\x05R\x06weight\x12\x1a\n" +
  1134. "\boptional\x18\x03 \x01(\bR\boptional\"\xe5\x01\n" +
  1135. "\x0fConditionalRule\x12\x1c\n" +
  1136. "\tcondition\x18\x01 \x01(\tR\tcondition\x128\n" +
  1137. "\twhen_true\x18\x02 \x03(\v2\x1b.kuban.api.validate.RuleRefR\bwhenTrue\x12:\n" +
  1138. "\n" +
  1139. "when_false\x18\x03 \x03(\v2\x1b.kuban.api.validate.RuleRefR\twhenFalse\x12>\n" +
  1140. "\bon_error\x18\x04 \x01(\x0e2#.kuban.api.validate.DefaultBehaviorR\aonError\"\xf9\x02\n" +
  1141. "\x11ValidationRuleSet\x12\x0e\n" +
  1142. "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
  1143. "\x04name\x18\x02 \x01(\tR\x04name\x12 \n" +
  1144. "\vdescription\x18\x03 \x01(\tR\vdescription\x12\x18\n" +
  1145. "\aversion\x18\x04 \x01(\tR\aversion\x12\x16\n" +
  1146. "\x06groups\x18\x05 \x03(\tR\x06groups\x121\n" +
  1147. "\x05rules\x18\x06 \x03(\v2\x1b.kuban.api.validate.RuleRefR\x05rules\x12B\n" +
  1148. "\bstrategy\x18\a \x01(\v2&.kuban.api.validate.ValidationStrategyR\bstrategy\x12\x18\n" +
  1149. "\abuiltin\x18\b \x01(\bR\abuiltin\x12\x1d\n" +
  1150. "\n" +
  1151. "created_at\x18\t \x01(\x03R\tcreatedAt\x12\x1d\n" +
  1152. "\n" +
  1153. "updated_at\x18\n" +
  1154. " \x01(\x03R\tupdatedAt\x12\x1d\n" +
  1155. "\n" +
  1156. "created_by\x18\v \x01(\tR\tcreatedBy\"\xbb\x02\n" +
  1157. "\x0fRuleSetTemplate\x12\x0e\n" +
  1158. "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
  1159. "\x04name\x18\x02 \x01(\tR\x04name\x12 \n" +
  1160. "\vdescription\x18\x03 \x01(\tR\vdescription\x12\x1c\n" +
  1161. "\tscenarios\x18\x04 \x03(\tR\tscenarios\x12\x1e\n" +
  1162. "\n" +
  1163. "categories\x18\x05 \x03(\tR\n" +
  1164. "categories\x12@\n" +
  1165. "\brule_set\x18\x06 \x01(\v2%.kuban.api.validate.ValidationRuleSetR\aruleSet\x12#\n" +
  1166. "\rusage_example\x18\a \x01(\tR\fusageExample\x12%\n" +
  1167. "\x0edownload_count\x18\b \x01(\x03R\rdownloadCount\x12\x16\n" +
  1168. "\x06rating\x18\t \x01(\x02R\x06rating*\xb0\a\n" +
  1169. "\x15CommonValidationGroup\x12'\n" +
  1170. "#COMMON_VALIDATION_GROUP_UNSPECIFIED\x10\x00\x12\"\n" +
  1171. "\x1eCOMMON_VALIDATION_GROUP_CREATE\x10\x01\x12\"\n" +
  1172. "\x1eCOMMON_VALIDATION_GROUP_UPDATE\x10\x02\x12!\n" +
  1173. "\x1dCOMMON_VALIDATION_GROUP_PATCH\x10\x03\x12\"\n" +
  1174. "\x1eCOMMON_VALIDATION_GROUP_DELETE\x10\x04\x12!\n" +
  1175. "\x1dCOMMON_VALIDATION_GROUP_QUERY\x10\x05\x12\"\n" +
  1176. "\x1eCOMMON_VALIDATION_GROUP_STRICT\x10\n" +
  1177. "\x12\"\n" +
  1178. "\x1eCOMMON_VALIDATION_GROUP_NORMAL\x10\v\x12!\n" +
  1179. "\x1dCOMMON_VALIDATION_GROUP_LOOSE\x10\f\x12$\n" +
  1180. " COMMON_VALIDATION_GROUP_REGISTER\x10\x14\x12!\n" +
  1181. "\x1dCOMMON_VALIDATION_GROUP_LOGIN\x10\x15\x12#\n" +
  1182. "\x1fCOMMON_VALIDATION_GROUP_PROFILE\x10\x16\x12+\n" +
  1183. "'COMMON_VALIDATION_GROUP_CHANGE_PASSWORD\x10\x17\x12*\n" +
  1184. "&COMMON_VALIDATION_GROUP_RESET_PASSWORD\x10\x18\x12!\n" +
  1185. "\x1dCOMMON_VALIDATION_GROUP_DRAFT\x10\x1e\x12\"\n" +
  1186. "\x1eCOMMON_VALIDATION_GROUP_SUBMIT\x10\x1f\x12#\n" +
  1187. "\x1fCOMMON_VALIDATION_GROUP_APPROVE\x10 \x12\"\n" +
  1188. "\x1eCOMMON_VALIDATION_GROUP_REJECT\x10!\x12*\n" +
  1189. "&COMMON_VALIDATION_GROUP_REAL_NAME_AUTH\x10(\x12+\n" +
  1190. "'COMMON_VALIDATION_GROUP_ENTERPRISE_AUTH\x10)\x12-\n" +
  1191. ")COMMON_VALIDATION_GROUP_BANK_CARD_BINDING\x10*\x12(\n" +
  1192. "$COMMON_VALIDATION_GROUP_SENSITIVE_OP\x102\x12%\n" +
  1193. "!COMMON_VALIDATION_GROUP_FINANCIAL\x103\x12!\n" +
  1194. "\x1dCOMMON_VALIDATION_GROUP_ADMIN\x104*\xb1\x01\n" +
  1195. "\rRequestSource\x12\x1e\n" +
  1196. "\x1aREQUEST_SOURCE_UNSPECIFIED\x10\x00\x12\x16\n" +
  1197. "\x12REQUEST_SOURCE_WEB\x10\x01\x12\x19\n" +
  1198. "\x15REQUEST_SOURCE_MOBILE\x10\x02\x12\x16\n" +
  1199. "\x12REQUEST_SOURCE_API\x10\x03\x12\x1b\n" +
  1200. "\x17REQUEST_SOURCE_INTERNAL\x10\x04\x12\x18\n" +
  1201. "\x14REQUEST_SOURCE_BATCH\x10\x05*\xab\x01\n" +
  1202. "\x0eValidationMode\x12\x1f\n" +
  1203. "\x1bVALIDATION_MODE_UNSPECIFIED\x10\x00\x12\x17\n" +
  1204. "\x13VALIDATION_MODE_ALL\x10\x01\x12!\n" +
  1205. "\x1dVALIDATION_MODE_REQUIRED_ONLY\x10\x02\x12 \n" +
  1206. "\x1cVALIDATION_MODE_CHANGED_ONLY\x10\x03\x12\x1a\n" +
  1207. "\x16VALIDATION_MODE_CUSTOM\x10\x04*\x8e\x01\n" +
  1208. "\rCompositeType\x12\x1e\n" +
  1209. "\x1aCOMPOSITE_TYPE_UNSPECIFIED\x10\x00\x12\x16\n" +
  1210. "\x12COMPOSITE_TYPE_AND\x10\x01\x12\x15\n" +
  1211. "\x11COMPOSITE_TYPE_OR\x10\x02\x12\x16\n" +
  1212. "\x12COMPOSITE_TYPE_XOR\x10\x03\x12\x16\n" +
  1213. "\x12COMPOSITE_TYPE_NOT\x10\x04*\x85\x01\n" +
  1214. "\x0fDefaultBehavior\x12 \n" +
  1215. "\x1cDEFAULT_BEHAVIOR_UNSPECIFIED\x10\x00\x12\x19\n" +
  1216. "\x15DEFAULT_BEHAVIOR_SKIP\x10\x01\x12\x1a\n" +
  1217. "\x16DEFAULT_BEHAVIOR_APPLY\x10\x02\x12\x19\n" +
  1218. "\x15DEFAULT_BEHAVIOR_FAIL\x10\x03*\xc0\x02\n" +
  1219. "\x0fRuleSetCategory\x12!\n" +
  1220. "\x1dRULE_SET_CATEGORY_UNSPECIFIED\x10\x00\x12%\n" +
  1221. "!RULE_SET_CATEGORY_USER_MANAGEMENT\x10\x01\x12\x1f\n" +
  1222. "\x1bRULE_SET_CATEGORY_FINANCIAL\x10\x02\x12\x1f\n" +
  1223. "\x1bRULE_SET_CATEGORY_ECOMMERCE\x10\x03\x12\x1d\n" +
  1224. "\x19RULE_SET_CATEGORY_CONTENT\x10\x04\x12 \n" +
  1225. "\x1cRULE_SET_CATEGORY_GOVERNMENT\x10\x05\x12 \n" +
  1226. "\x1cRULE_SET_CATEGORY_HEALTHCARE\x10\x06\x12\x1f\n" +
  1227. "\x1bRULE_SET_CATEGORY_EDUCATION\x10\a\x12\x1d\n" +
  1228. "\x19RULE_SET_CATEGORY_GENERAL\x10cB=Z;git.ikuban.com/server/kubanapis/kuban/api/validate;validateb\x06proto3"
  1229. var (
  1230. file_kuban_api_validate_rule_groups_proto_rawDescOnce sync.Once
  1231. file_kuban_api_validate_rule_groups_proto_rawDescData []byte
  1232. )
  1233. func file_kuban_api_validate_rule_groups_proto_rawDescGZIP() []byte {
  1234. file_kuban_api_validate_rule_groups_proto_rawDescOnce.Do(func() {
  1235. file_kuban_api_validate_rule_groups_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_kuban_api_validate_rule_groups_proto_rawDesc), len(file_kuban_api_validate_rule_groups_proto_rawDesc)))
  1236. })
  1237. return file_kuban_api_validate_rule_groups_proto_rawDescData
  1238. }
  1239. var file_kuban_api_validate_rule_groups_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
  1240. var file_kuban_api_validate_rule_groups_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
  1241. var file_kuban_api_validate_rule_groups_proto_goTypes = []any{
  1242. (CommonValidationGroup)(0), // 0: kuban.api.validate.CommonValidationGroup
  1243. (RequestSource)(0), // 1: kuban.api.validate.RequestSource
  1244. (ValidationMode)(0), // 2: kuban.api.validate.ValidationMode
  1245. (CompositeType)(0), // 3: kuban.api.validate.CompositeType
  1246. (DefaultBehavior)(0), // 4: kuban.api.validate.DefaultBehavior
  1247. (RuleSetCategory)(0), // 5: kuban.api.validate.RuleSetCategory
  1248. (*ValidationGroup)(nil), // 6: kuban.api.validate.ValidationGroup
  1249. (*ValidationContext)(nil), // 7: kuban.api.validate.ValidationContext
  1250. (*ValidationStrategy)(nil), // 8: kuban.api.validate.ValidationStrategy
  1251. (*CompositeRule)(nil), // 9: kuban.api.validate.CompositeRule
  1252. (*RuleRef)(nil), // 10: kuban.api.validate.RuleRef
  1253. (*ConditionalRule)(nil), // 11: kuban.api.validate.ConditionalRule
  1254. (*ValidationRuleSet)(nil), // 12: kuban.api.validate.ValidationRuleSet
  1255. (*RuleSetTemplate)(nil), // 13: kuban.api.validate.RuleSetTemplate
  1256. nil, // 14: kuban.api.validate.ValidationContext.MetadataEntry
  1257. }
  1258. var file_kuban_api_validate_rule_groups_proto_depIdxs = []int32{
  1259. 1, // 0: kuban.api.validate.ValidationContext.source:type_name -> kuban.api.validate.RequestSource
  1260. 14, // 1: kuban.api.validate.ValidationContext.metadata:type_name -> kuban.api.validate.ValidationContext.MetadataEntry
  1261. 2, // 2: kuban.api.validate.ValidationStrategy.mode:type_name -> kuban.api.validate.ValidationMode
  1262. 3, // 3: kuban.api.validate.CompositeRule.type:type_name -> kuban.api.validate.CompositeType
  1263. 10, // 4: kuban.api.validate.CompositeRule.rules:type_name -> kuban.api.validate.RuleRef
  1264. 10, // 5: kuban.api.validate.ConditionalRule.when_true:type_name -> kuban.api.validate.RuleRef
  1265. 10, // 6: kuban.api.validate.ConditionalRule.when_false:type_name -> kuban.api.validate.RuleRef
  1266. 4, // 7: kuban.api.validate.ConditionalRule.on_error:type_name -> kuban.api.validate.DefaultBehavior
  1267. 10, // 8: kuban.api.validate.ValidationRuleSet.rules:type_name -> kuban.api.validate.RuleRef
  1268. 8, // 9: kuban.api.validate.ValidationRuleSet.strategy:type_name -> kuban.api.validate.ValidationStrategy
  1269. 12, // 10: kuban.api.validate.RuleSetTemplate.rule_set:type_name -> kuban.api.validate.ValidationRuleSet
  1270. 11, // [11:11] is the sub-list for method output_type
  1271. 11, // [11:11] is the sub-list for method input_type
  1272. 11, // [11:11] is the sub-list for extension type_name
  1273. 11, // [11:11] is the sub-list for extension extendee
  1274. 0, // [0:11] is the sub-list for field type_name
  1275. }
  1276. func init() { file_kuban_api_validate_rule_groups_proto_init() }
  1277. func file_kuban_api_validate_rule_groups_proto_init() {
  1278. if File_kuban_api_validate_rule_groups_proto != nil {
  1279. return
  1280. }
  1281. type x struct{}
  1282. out := protoimpl.TypeBuilder{
  1283. File: protoimpl.DescBuilder{
  1284. GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1285. RawDescriptor: unsafe.Slice(unsafe.StringData(file_kuban_api_validate_rule_groups_proto_rawDesc), len(file_kuban_api_validate_rule_groups_proto_rawDesc)),
  1286. NumEnums: 6,
  1287. NumMessages: 9,
  1288. NumExtensions: 0,
  1289. NumServices: 0,
  1290. },
  1291. GoTypes: file_kuban_api_validate_rule_groups_proto_goTypes,
  1292. DependencyIndexes: file_kuban_api_validate_rule_groups_proto_depIdxs,
  1293. EnumInfos: file_kuban_api_validate_rule_groups_proto_enumTypes,
  1294. MessageInfos: file_kuban_api_validate_rule_groups_proto_msgTypes,
  1295. }.Build()
  1296. File_kuban_api_validate_rule_groups_proto = out.File
  1297. file_kuban_api_validate_rule_groups_proto_goTypes = nil
  1298. file_kuban_api_validate_rule_groups_proto_depIdxs = nil
  1299. }