From 11d6ffeca29c30cf088b67fb9c109e04eefb5e6d Mon Sep 17 00:00:00 2001 From: suziliu Date: Wed, 3 Jul 2019 10:36:52 +0800 Subject: [PATCH 01/85] trpc-proto doc --- docs/images/rpc.png | Bin 0 -> 12932 bytes docs/protocol_design.md | 134 ++++++++++++++++++++++++++++++++++++++++ proto/trpc_proto.proto | 101 ++++++++++++++++++++++++++++++ readme.md | 0 4 files changed, 235 insertions(+) create mode 100644 docs/images/rpc.png create mode 100644 docs/protocol_design.md create mode 100644 proto/trpc_proto.proto create mode 100644 readme.md diff --git a/docs/images/rpc.png b/docs/images/rpc.png new file mode 100644 index 0000000000000000000000000000000000000000..2782c436bf421093e04a09a443e4225fa35abe35 GIT binary patch literal 12932 zcmb`uWmFv9_a=%Y!GpWIdvFgP92yJm1P$&G2u|Y=+`Vyvy962u!Gl9^x8Qz@_xH}s zy8l^oW$vvHy{fyaPMyUKaAYlAqnZq7aS3C8D&MXwG_1_rwQMRW%O8-wEa##qw8!A+R| zeyQ5P{rpXv17Bcx9f28Q5lSM%u&2u73SDTF|hAuCl%P3AjX&MOJ61gUohV9F$A#e4=cUEIQuWExB*1fV%$pgA3O!v`cX zmJWn2{++ih2K@M9_hTMscNvajb5HPSq9i1lwab`lq4FN6l%`nHga;l08?eHcIw5cU zWBt4%I>k@E!XT*%5VmWe83$fL7@F<4bYcer<;p_x+e z>N+pK-8F#^vVix_RMM}+JHVb86dvEq^+l^1Q-Odl(*#Repl4Cg7$uZ*Y`2@hjwSkb z9y#eMBfcOtu)G3^GTHd{?Ukgoa?*TI<|_?Kq_m}!;L+Kx5jp1y^MQ790f&$@MB1ea z-VCS#!eOJKi#pt)VEw^HIiy*vqf0Wsy&#I=lJvWXIqpXbsJ5|R*`F6o8i|Tg_OJ$~Hds4hL%hZB7Rxy{;#1IM2*=%E2#R0hjwHYT(vwTQ zO#@t$W*!#-mXeyH3Wz*?7@TdVL`&%0XwrG&jSk#(8K&U)z>T;)}8%xUUP)J)MINW_d4M6n#~WIC}C2)uBDIM zZS2qbrB`c0eWy%dmaZ)BU0W13^S+ITZMdS<^>0A}S(k#784NM!c-h;^bkey1 zSmO286*rZS?>YDQe1`Ky)U;Fx|Cvr_OTN~Nfx%cUE(-;^3JPtez*@)G!wxMfxW>Gt zxpZd4AXSKJ@{YKz$VY^q5-Z-PAYJp^V$3+xukm2}@s0Z8W$dDa0&G>2TDUC>4i&y1 z+1rUVUa*a|Scef*&UD+Z+3LSb)#>FcvVTMxXvwU_W~L{ul%;YebK?6nWAi;k+vq*B zRe09Hs8r2`Fm6f2Gh-*BS(oeqv)R%oy34Km9+N-N-L_r)!*7@qcha9hZCZ-Arw6fi z-AId`5xE^yhf#DMwM}ypmEIJ4p(xgnIpbH728;^1-|e}Jt|g=riJCD)E|V#OH|Wi< zkqI>}HY2Gy%~-Y|{O8$iPLi=v5Ls!BG=VoCXssEsIF~mXx=4CxMAUlr&?snu^r(-; zZ6L8;#+vMtd;aZlW&$?<>WliqTyandvLe^^@ZkX88=DU#Z*wJR1uZO?YIGwqc?^4r zW(11L?WSuNe{XCiHo6Z#xw2%t?=99_Dd_<1;8{!+w`z-^% za90)_xJA!97Yd(hmbK|a8+(vyoMH5#YGE&5tJ!)y&#uv{nD`TsDJjANpVYp5O;^%3))n=X~@WpC4ZlQdTzHHNqKCUQ&Gx{r}D?@_)4e z+3qYC|7j_|nMIi$Uko7KVeg1+TJf4aqT9+uXVr4gLuM>;H^d_ zTU@X41-PXxjt<#g@jLGg+j^dF>pAc-mT-jrY;P0&jG)EV#(rXkn8*-DGk6rRP0n#Q z#p&zX{~pAq_a%AjdJi3Ml!c8fos9i)G4_)D@EpE+f9!mP{dew-q|35{mZ3bJ>}Krb zvdf8c+b4k#PV;T~u%6o|?Q_x4Q}#~yzb5mIJ8g6I{HCwFfn^xC@QTN!9?J8=c}C904&wl4ReG&b&>p+Cu51RXa^ z_?8_8Don6=l$>?xOE^;vPTGY6g--s+COac+3?7=I=DDtw{Qn&jQGEZz1pn$Y6Ptk_ znqy2yNXnf*$@znJ*A3#!n0G!Wiv_^0iuqA)bxt-MT}6{auNGnt?p4U|F|$RV3Mv+^ z9_GnSj_`k(EBP$XX^EozO~d%B8#ngj$WHGv?RWiQ%A(BB$=sg5(Ona{*`ju5hVx<= z6Ipj&N6uDbqrK0)QBT!lKnBlI$4uk(*fWLTvuSzf^Kdj@&2epCl>;+M%JZX`L6GCj zdeY)feh^ask&HPulCM>aXt8!1{$Giv>cP&s2T?W_LCMB|4uq6yX>Irv&AG0Q`vQHr zccYu!E9V__O&Rf1H$vH@V9M{Z38jx?5Ag4I3c6RQ`DU)@og@sNbOfL{z2k zWAJQSjYodBg;2AXSbovvYzD{UB6=N8zrC}d!eV|(ozG~7nkF(?OCeIU9B}*k@f_Xg z0e$+|7q8=S76?S|v#EE|&I`vVMz`6W&(Yhf&MiE*J=$u)MJPM__v#YwFkN;>|?SNXgSFL#Uybi2ePT<#kfhhDztH zf$!xX9|u0#4VKmbvd(9#3?M`;UY8$z>Atg})mq7^<7VP>l34PhL>qc(Y^m{r-DovVRD&&d?xT6+Et7!1v}YU97K%VB~2?PS9)N_i>YCJB)HYGi|%+A-b0evZg*q>ONL z`&<0_2{$^k#reBq2%yiAhuBOMT6ymNkuuAOW2oCsJe!EOCCtBM*@_(e$!nD%vON=fvf-QRtmG+PdU1o5RO`6*+GArpCN? z*+dU_r_Tge$|hU7p42h}+|7kgzzeV6n+^VB3ChNzpe-$%oh}Q5OpCe`!Or;P$~E}- zE_9{K(U!rRa*_?uP9KJMo^%Z6bj!YD9EeXMkTtEmO)k0{zSi%iVT#Z;^r1e|ATm$- zZbDLimP<4gw5nfGMgmR4%e}YbP{$-o_~Y75;u>K1I{4eotg^a<%qu5pgx~(bwjgN; z^N;*p|E*4ByG1>jl2bZ|byWrQaT0^=9t|$&l`my`9ay9K(#7<144HP2;X0-;Pu+== zogPO%(-h;o2!kH#QPurlkcbJew zf~>bU_y#c4HCM^XP7ede53%@4_mxGCmG}+qj4vFRptU7Ir7aHNK+k4AYvM%;5RCh2 zRd30!GMniq!{S*q$NJH*Dy0Fxg7l=-K4*{+p{+#H6oD*(Y_ZJm`H^H?@l+{VN_o&k z7z&Wi4+VvSKD%Jzp)ZoN{AeWl(}Gt}eych{>sevUYouvDQ@cS}!DdTZ0lM6_Hw>NI z5@UsUYrt-rTvmH@wkscblpu5co?G6PF8p%$aTasRnC>bN}(zUM)gAs8mqi z@!6cEZ<<*SSBDw;8Fix>vap@3@rrbyv!KwAsq~lwDx;__K}QR(B4pmSnU}>7z!?L? zYl`m(j`bTk4jtm^OSE=<%~$k*(?5}Iy7-oZ8Kptj-I%!`*E(PdwT`cb9S0; zg4XkI^uBqXUIgOw$Y`d?R^D@cu5ZFn8R=HngcWObPJ^IsA!$l{T&!RV_0V~}#MnMN z=WsK(^R1MLXNfx`3quWV08_GaAl}}mGXr}Hku%~${*I551D^@rs8ai(N0Ad_RZXm# z^`7R8u3O%5`U+DIOJ{~pSnXayf|Ky93D}8)&8*R_+;#*!5~ctdZ&zodY>f6AmvE#J z6z#2marD!SZjO*7btZJ7{Am6KVw2?@DOo z`Pv^vMi_&HNeMpSL^=KF<>%tzQUS3sq^d4CNb#24DcXKaV3}vfM=#p*KH87se)3YB zwaUz&JQK1+r7W=&j8WV=&ti589qGjQ54pgEG!z#BPzZE=oN7sAoZ9`}1n@P4b5_K$ z7^FfJ0~mtnp4tl~-)gpvBa9H3`&)I+puwny25((Acl24Lbb%U&izJcZ13Ydf6SSt9 z+9^=^V3@$Hvecy%Y0zf7JNvB}%#KO$s6z0J=zip9+8N4FC{~V;59U2cT;%Ws>O#9U zP&8#@3DB;JuV!bZH)dNIe0GY>b)-o}~H zzP{~N5K824? z0$BzWprj`(X6hnBx7qReIWw&Jx`o@j?7KAHTilssn?<-F``c4+!RjlI>I#cVat-*^XvNewgorx&4#`U{FuX<<$@v!r)6 zS7Vs8sZtZDZDlELUjj(Netq~%EO`@(Y;&Gy2Vol8#!5T$K+PBx_$bV&AbtZXn*Un4 z9h5s6!iExkO#1eqMVlqNVZV081)`3+4*B_o1>KNby7Y$*s%Go5g>uSx*~3T1ECwIW zm`y>p`}avfKi}!=8I(E{c*m8H&D~BDkW~@&6XM2w{%~CWg(h))eikg~gUNICTG9;f z4rlwrsVvIb?rCZ*j?@rIu#fCorEYMM)scb%K~$dm3~oVN6Tv9rL5O?=gAhlIDlY)T zxR2||b{VhD->jJikKyNeS;gPYoBgC~uR~lrR&zz@)zQ~B?}Vso#*22um71VJTcKti zc2%zeS|R$ch4pe1c}jma5PTa9fPls;63T7aOnru!TpZO1|aDMNNCXW3BYhBP)ba^WHJ z3_|uH&dD~l8^xTS_3E0{%XJHF`nrjBEeKS@Qef&9R_$+o0GGmD)kbX%CLebxFCDI| z($V(vsZtQn_*&vYgj-lVTNfE)fq`VJB3&BkiVfmnfS1s;U|5tJ2Me=rFa+_lj*;pV zvjp75}BPp8_${fOiG9C}sDG7i=7d*C4Be{P%b zXpx-&1uRPLja%Jy+c;85nQzxe@P6+HO(fShP+UqiVU%Cz)xr=VuaieDuXuds*q#voy0GGb@m1b%4aBAh^9{wDy(qu73f9Yj;->r!u7C+ueEC|C-n{& zpduZnp5BF|57Q~BFU-y-q>6w2kp4UG@taQr7OTtRm0JXo_9yBf_)71~V-yCcj2peH ziMUv2n_3&t{}iyWGu8{lZc^tLrE{IV+ZWaT};redLu) zP{}<>?|AUVf2G;Yl-h7W!iX^aJqK3to7_>~D$%+QC$Uf(b!>_H+eaOCUC=#}T<5l< zMz#I9*`J`p8n~^ZrgP@CI(C4Ob+w(^jUbW=$Z@KslKy5&!&%&oRG?kfiQOY}f93y< z_vsDMSNL&(6mS20H0!wI@*e+-BK}4)u_B)mBG+|Lt3P%7J|aC;hbe4k9QV3GhN>Uk<(uX5@6LMu0YN;k{jpP1*>O<0#c5XZQRDVfs< z7`oW_lXxU3u-K5VazgE|n3&AauO5+%8anxP7=DhOFuMu2Emaa&M$wvS}XTRNfd4#6q0xV@s{d+|8r-skUZ{>Oi7TI^~+}@o; z;2zah4~SnDCq;+92epF>KaK@P8p+9S8RdiBgTcdPn)ZdCVYZ@_Mn6G9%U_52l*xfy zCqdTfU{;N^{M>p>*`I;i&i#h2kzd{Tv(3-NB_UF!sL|0*%L-bt8o52fAq@LH++Hox zL0La}E8zc#bp}0qT7XmNu_ux^flzJNzv^GL)aUdl|MZq6!BfeVPTwqrgTwDMcT6rc zAu}dwRm-Ra-|p44E%HTFA-&?8GGY->%yw=*_(J}~j}s--{}?ki>c2f)yz*FEd?lpT z-wlo|MR@Z{2<3c5=N%U8rigW_qZch7Ws;H0%;jihi@Y7m;Bb<7C~;=nXfy~1ll{3A zymS-28>a+2IZySmc;!zM#ypkhWtav4q&R);hbyhq`nl>~u$R!{Y%!lAv?Np?fAent zJ|Qj*{h+Yieo~w0{5`GT`nT#VWFV;u`1@&cKKLzF$X?sYS#Z5)%}}}D0@y;`pI3|2$L*At2%exu^A*eLgO^R)W6QS zLTH)~QGhsDMowhlsxXY{C@-m54wB~A*Ur4!{-L*T#M5v!S|5C^2ku~N56G|R=1(Bm zko&d1Cmcy@bd^O$gW4k;fV3DU;@R4&`aI`mO!%1^d}I*f>8%mpG64V^x3^(c@H1}z zAhFcX9_Wp4@l6&lDM>!&!m+chTMs!`?6rhXX%2MN<#=Mfs^pyu$wo6BbDO#P2hqjY zk7|}?k#}j<`*rI#L?dYHvE}RegLt5BibBsG#`m_S< zQ1aCi04Bp?U}`Y+ZG=2%r7c2|Ni|a|d47A%#S&Mm6fU2=7>>Jhv-=;Ma9cM98wv$+ z$X9HmN?XSuvD5TEk5=@HT|(VnMt$3v2DJyfEE(8v?)1T zJogxq&2y635uW~ih*{?(km`F72)5Dk?R#0xWFmt1ObUutHMKaKht+hxi@w?As4#{qe?&rc0%disG{`yRPTjaO2)(M~jE z8*(-+b%%f?rXE-^h-f~^+A#z_cB{aNn+nz&hb`I4e40ll_)G9BW;c>m09Sa%wgV}a zI1tkrwQSIP#+^TmJ6Tk?l4;Pa&*efZN@2ih2G6`bLko6irfcR3d9vM6E4_re1P)oP zZE9DvY2_xsXwC+35mAlX~|+Jn74>;n}quNQt`?Rim@qMZ#YKnZfD8572Lbkat8# z%0e%ad9`We&{fvHNO^s6qUk>gaiU?=z1kXIITR~`0ubC+@5&+qQlX5FPbFw%Z?{!a z&Q3^ULvH@bJx4(kPm~8|meru*iYL+!vYy1|S|&q&++cKR8uMDG2GOTnrdIY1h>atA z3ZB@KA~-%3Vtal`EWb(IF3s|(`%v3j^lY~BB}!so3F+UD zY}69wCNI(R7N~FqB$=3yEY+yzsFye8(*n=hXZ%Ew?X+O6`MqglUcFXv?BaYQ@j4~U zr?UH9upd_QzOjQ)BsYV0PXmU`>_c2_!1?6vLPI~lc~@&mq1@|DHDNw|oH8m{J+~6L zUF;d@(&Lgd_DzKazW>F>>iuu zcwi`h{ZP<1l|xSJk1AQmiPj|As9)>ywxk@($W|l;P5W27`(;1jvvBbNx3b#a4e5>< zDkea8I2LaVf<#wau&m~=rK>pKWGUyMt}k&9jcEuqI)z|V(RcFxCBd{19>8?Qp8Z9w zOI%4a*_EZM!XR`JxW9S-!lN4I0H6i<s?8bb$dCM~Oe=lm5vY(0QBiJ>(38Q1#{FJeF)9qY;7?&0}W9BB!zijgJL;H5C zpOA}l`+orB7ES#>0MhI$JEjH83!G5Qw;o_+B!t#Fq-jXgEfULnl~wrRgyF!*`li^0AMXIwt~}jBlJ~(*GRaF}$ZG1C{g2 zsa95Heg#mY9)KG4{u|f=xcJvH{@&RAMnoL&d_15VGSa6^n>%wW#BIoVQh;6 zxlSokyeMd1OSd=A5@(S*>SOeVO(EC2a?LV4AqS$bvdpp*lLqE*SxDD)-sD&O;7?E} zOk97uB?m+n?jR90c{waM|38`l|1Sx4t1bK})d0+T(6Ed$Y~c{^*}$ zo-vL>ePs~Brb}J^!#|>~R>gn^vXd6+>O1@x%Z7e-wyZ-=0bd%pd1Nz@$T5t`-FVV;+HSJTsw8;_i!4y!E&bCLJoFOBeX7Z~0 z9LL9dH6mmLJ(T$Al2W?iPBgYJ3IP8jd&=3($(9WLYn7d%(|K8~{pSe)9K7RJe$?p7 zw&vEZ^0!g}AurmB9lK)#oRM>+A|;Kar86K+p{nukCX$mqD) z7-NUFx217l6!j7$5SfMFXNz7@3xm$Ye^sPet)-Ug)jWj-0Fs@^T&AUVjU&$U)87pK ztFN{Wd?Dd=7{K{g4bLzoM(tpWs1rbnkum^eKJ*4y#@3okq=pRpUi^4nkRv&U)8P%bjN%@q1F{fA*%J0YB_r?DTF~ z2Cd!?T1kjvfA2U7i~4Y?ZFFy+^s{ZGfp>GikxS>{xVP;Tkf0{TMpnD`pP#xeSBHGN zX>8IfXd*3RY19DFo(E4+L@u_m2VFe_B*rv@+l$-nJ>eI){a@@%flH)ZD!M9kgNe+a zR{VEF^gVCU+V2vDE^&FCi_kCu)&vl(IRSstWnVVt!=+ef{>k&6$6c-Kn!fO35mSnu zwA6eMXYge79=}BefRDgs1Y+0W(Ei^TYK@ShAR}`ZV#G2)et2v3625rLV(6>S-$wzh zi3{c*<|WaL#3@D|6dL!(<77RyWf=^1^Ekt5%7}~qAFxOgxPzu<@=uh$4sSUt!;=>~NTE{H@LNq1Qw{Hn|=%_?ar!}!_Ftq)s4j1f` zFQz@K*|X?_lsD{bcTjsJEky|Mxpjbx>_gON50&@Ebu5?cP@2@{k8doZP|)g(Da?IAc_cfmzy9TkkOpAn<{6sk!dv@^s}0u7aDewNvlV z(gZWlpcPnq;Q`V~I8mv1X(Q4YIn;$o)!?@tWZ&t#cLj6!h?T4=HV53s#5c-wuf&C} zlDBgOK~`>A=;-KSGZK)0*Y(jTplWcFN=gGL;65OzE>r_|7=-7x!`}MdtHyM=Z2%PR zj9+XOMVnAitM?L$=1f*d)gj~ngj)s?M@I(6au=F%H{xbNkN{DCtzPYgcmk^@+XW$L z^1$7%dhT=U)|zh;CL>7S;ybP~US)V8#-O63ZoSU)=Xu&^S8XS2i7WS?cSr?<>y!T_ z%riy;G3`WEE0}sRAf_5KnM)_lNH>+NAdYepHQXG|xN|@b49?cnG!Hwg00kQGOlFD3 zm@Q*r%rpuW3hIaSmta9@<*xlpJy2IZ`~a7PXJW~5K2hS!{k=HC?``%yq64gX(4%eD z^bR1!-92B|lIu$z(c|r#Gid`OPX~NNvdCG$Y1$;NGwKYBYe z%0v<5J(4%;j-T~PA>0a`Ejky4s~my=QcT9BnM-YRAx49cUugrWf?>cvwSx5BP9H&o zh!B)OaUpr-`XKar)d?RE&}HdWzC8=wJga`E-u2A6W_y~m@5pwrFZPEfC_eVD8cqyN zBlxc!6I$zTn~>xw0*~fouZBU0$Vq+6{u{Fq1@5-M^sD^pvMLhk zDEsc>Dje)9VW5zhD7U9!5DoM{6e!OYB$jFd#n?h?E_h>Yh4lMnP$rU-@B7@9ySIi@iahZN&C9E26B?3t&nH-O?ltRS-;P=~223oAhstN4l-+(929#gYzS3yh2Jj zxZEbGDuFY2$7j4~k&El=3ClTa*y(M;>L?u?^W z+{S)Ol;F6iAoIyIsTSAe_cM=W2jrr8$LEE|xpw#X#nI2NHxMnb=+xewSD~AzBn<7Y zw=GkOLG9vOi46_g=!cvdk5datX_-!k=H37@*o?*QeAJW|z3v|V&Z%wI!Qb^~PN0E6 z;Tt;j#@*v)g6s2^y%Q-o(=aCwm9V3;Zn;em4CWTw0A{+9fN&2YKmw`V{TIgjf8|jH z&ixhK)=v-8y$Y&WKc>nJHe=n~pO(le! zf8JU+0FpTa>x%b|!O|tHGPx|kEGy<0e*%gmC%}^Q&%w>_tT|2}*zwGg%Kuhkm;o*t z=8@yR+dyr=?V$FtefruAC`P_4jt+XU3@~VK=}`^<%b;kRJMFLQu3;EC0V}|NbLJuT z;Nk1vCkePEcKiSn)5Af?OY7DH|DIo%;e3K`dz$Rn(S7VWOqd|C(N>)2N%3O&F5C3tZ(56fL< zVW+0N!te6e_Qz!vacqWL{4U zQ96)0z^#1368~C7Hgztj6)jbWrY}BtRq!J;$jy(bHppDR7Aa*(FgmFMAf7*%xq~7H zmT|2Y#AZ5~sp!;_c>ND;UZ*!I@}->>RBF7gs{@D%T^_8h&MUV`+xoXhXDWl&3;Svx zXUUYpK_m=9otW_060g2u6X={3dNHYrl_9^IC)))LfilEe+r%YZjrMaVroP;D-g=fI zSvYr9Fw%W0cmR@~BLapvrM-Thf`eT0zjBnwM`E^Y0U4m>dt-ZY+$>I&^-s60Al^ z-$nvLYMi&hvXUZdE{`T(>*H-$%^> z%+1turYQXMH9ZwK2^pJQ=Jz*D2i6rt5r4nnSHcesNTqF1ZsjM7!~ec)SP!qXU0l(q z^eIa~!;d3SQ*($yvd~#WTk9S2znCvp7&oh{@Wh(euA@Xsss^N9`}AJ^;0QE+PF-B< zlk}Y4R0bf@T9i8%6NQf)C9R~fhksw@UCKe=nvvh3dL>2QcrUy_N-i*Jb%lzSo%wM*q1-NCL>K6%^T$8Ik%a0Lv;iNL_o{8H zW&QjRl`JC8htbkExY-Z0#W{vxes)K=dusns94qswiLnb-`*M4=(Tm!FJ8Tco3YJCf zOzc&B^29%eHu8dv-EChQoi`51=`?8RBE0Hnh#m_h6M5Y?K|+XC8c#NdY9oJ zcr8vNIBAs0!8I;^)7RZ7HJ|&!b`jK8)9bDNreGxIq8@p&oDF|$kRxdRAzHPVDK$=o zXaY5Ee@xV!kq}8Wepr=#lmdH|_SYg;<%X99hmTM$SZ>=l?^- f`d?mp^GsJ3Kr{Un5eIm?1V&z3S*q&2anSz(Nms2M literal 0 HcmV?d00001 diff --git a/docs/protocol_design.md b/docs/protocol_design.md new file mode 100644 index 0000000..f466dc1 --- /dev/null +++ b/docs/protocol_design.md @@ -0,0 +1,134 @@ +1.RPC + +RPC是远端过程调用的简称,其协议通常包含传输协议和编码协议,如下图: + +![rpc](images/rpc.png)​​ + +其中传输协议指RPC header使用的协议,编码协议指RPC payload的协议。 + +2.新统一RPC协议设计上应具备的能力和诉求 + +--------------------|------------------ +向前兼容 |协议设计和实现上应具有可扩展性 +高性能 |协议的方案选型和具体实现上需要考虑性能问题 +RPC调用方式 |远程调用像调本地接口一样 +请求超时控制 |请求可以设置超时时间 +插件化支持多种编码协议 |协议上支持业务数据的序列化类型应该是多样的,比如protobuf/jce/json/… +支持压缩 |协议上应该支持可选择对业务编码后的数据进行压缩 +调用链信息的透传 |协议上应该提供服务调用链信息透传的能力 +染色key |协议上应该提供染色key在服务间透传的能力 +认证和鉴权 |协议上应该提供用户设置自定义鉴权信息的能力 +透传用户自定义元数据 |协议上应该支持用户设置自定义元数据和透传的能力 +流式请求 |协议上应该能解决大数据包传输的问题,和满足边请求边应答的流式场景 +... | + + +3.新统一RPC协议的具体设计 + +框架的RPC协议的字段定义如下(保留支持流式的能力,pb使用v3版本): + +```protobuf +syntax = "proto3"; + +package trpc; + +// 请求协议头 +message RequestProtocol { + // 协议版本 + uint32 version = 1; + + // 请求的调用类型 + // 比如: 普通调用,单向调用,流式调用 + uint32 call_type = 2; + + // 流id + uint32 stream_id = 3; + + // 请求唯一id + uint32 request_id = 4; + + // 请求的超时时间,单位ms + uint32 timeout = 5; + + // 主调服务的名称 + string caller = 6; + + // 被调服务的路由名称 + // 规范格式,trpc.应用名.服务名.pb的service名 + string callee = 7; + + // 调用服务的接口名 + // 规范格式,pb idl定义的接口名 + string func = 8; + + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、流结束、多环境等的标识 + uint32 message_type = 9; + + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc_开头 + // 2是业务层要透传的信息,业务可以自行设置,严禁key的名称开头使用trpc + map trans_info = 10; + + // 请求数据的数据类型 + // 比如: proto/jce/json, 默认proto + uint32 content_type = 11; + + // 请求数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + uint32 content_encoding = 12; + + // 二进制数据 + repeated bytes data = 99; +} + +// 响应协议头 +message ResponseProtocol { + // 协议版本 + uint32 version = 1; + + // 请求的调用类型 + // 比如: 普通调用,单向调用,流式调用 + uint32 call_type = 2; + + // 流式id + uint32 stream_id = 3; + + // 请求唯一id + uint32 request_id = 4; + + // 请求在框架层的错误返回码 + int32 ret = 5; + + // 接口的错误返回码 + // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + int32 func_ret = 6; + + // 调用结果信息描述 + // 失败的时候用 + string error_msg = 7; + + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、流结束、多环境等的标识 + uint32 message_type = 8; + + // 框架透传回来的信息key-value对, + // 目前分两部分 + // 1是框架层透传回来的信息,key的名字要以trpc_开头 + // 2是业务层透传回来的信息,业务可以自行设置,严禁key的名称开头使用trpc + map trans_info = 9; + + // 响应数据的编码类型 + // 比如: proto/jce/json, 默认proto + uint32 content_type = 10; + + // 响应数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + uint32 content_encoding = 11; + + // 二进制数据 + repeated bytes data = 99; +} +``` + +另外,请求和响应协议的前面加两个固定长度的头:魔数和长度。魔数在前,长度在后,其中魔数字段占4个字节,估计为0x22E09(其10进制数142857称走马灯数),长度字段占4个字节,内容为消息结构体RequestProtocol或者ResponseProtocol序列化后的大小。 \ No newline at end of file diff --git a/proto/trpc_proto.proto b/proto/trpc_proto.proto new file mode 100644 index 0000000..7ea8f95 --- /dev/null +++ b/proto/trpc_proto.proto @@ -0,0 +1,101 @@ +syntax = "proto3"; + +package trpc; + +// 请求协议头 +message RequestProtocol { + // 协议版本 + uint32 version = 1; + + // 请求的调用类型 + // 比如: 普通调用,单向调用,流式调用 + uint32 call_type = 2; + + // 流id + uint32 stream_id = 3; + + // 请求唯一id + uint32 request_id = 4; + + // 请求的超时时间,单位ms + uint32 timeout = 5; + + // 主调服务的名称 + string caller = 6; + + // 被调服务的路由名称 + // 规范格式,trpc.应用名.服务名.pb的service名 + string callee = 7; + + // 调用服务的接口名 + // 规范格式,pb idl定义的接口名 + string func = 8; + + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、流结束、多环境、set名称等的标识 + uint32 message_type = 9; + + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc_开头 + // 2是业务层要透传的信息,业务可以自行设置 + map trans_info = 10; + + // 请求数据的数据类型 + // 比如: proto/jce/json, 默认proto + uint32 content_type = 11; + + // 请求数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + uint32 content_encoding = 12; + + // 二进制数据 + repeated bytes data = 99; +} + +// 响应协议头 +message ResponseProtocol { + // 协议版本 + uint32 version = 1; + + // 请求的调用类型 + // 比如: 普通调用,单向调用,流式调用 + uint32 call_type = 2; + + // 流式id + uint32 stream_id = 3; + + // 请求唯一id + uint32 request_id = 4; + + // 请求在框架层的错误返回码 + int32 ret = 5; + + // 接口的错误返回码 + // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + int32 func_ret = 6; + + // 调用结果信息描述 + // 失败的时候用 + string error_msg = 7; + + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、流结束、多环境、set名称等的标识 + uint32 message_type = 8; + + // 框架透传回来的信息key-value对, + // 目前分两部分 + // 1是框架层透传回来的信息,key的名字要以trpc_开头 + // 2是业务层透传回来的信息,业务可以自行设置 + map trans_info = 9; + + // 响应数据的编码类型 + // 比如: proto/jce/json, 默认proto + uint32 content_type = 10; + + // 响应数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + uint32 content_encoding = 11; + + // 二进制数据 + repeated bytes data = 99; +} diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..e69de29 From 1df0ed1690d4fcd4bbfb661df931568df48e1b2a Mon Sep 17 00:00:00 2001 From: suziliu Date: Wed, 3 Jul 2019 10:39:02 +0800 Subject: [PATCH 02/85] update readme --- readme.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/readme.md b/readme.md index e69de29..df4e2fc 100644 --- a/readme.md +++ b/readme.md @@ -0,0 +1,3 @@ +trpc统一协议的设计和定义 + +具体文档可以参见:[protocol_design.md](docs/protocol_design.md). \ No newline at end of file From 39d6d9ced31b61445a1d7ba1058b05aac9a6b21d Mon Sep 17 00:00:00 2001 From: suziliu Date: Wed, 3 Jul 2019 10:43:27 +0800 Subject: [PATCH 03/85] update doc --- docs/protocol_design.md | 2 +- proto/trpc_proto.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index f466dc1..e18bf94 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -92,7 +92,7 @@ message ResponseProtocol { uint32 call_type = 2; // 流式id - uint32 stream_id = 3; + uint32 stream_id = 3; // 请求唯一id uint32 request_id = 4; diff --git a/proto/trpc_proto.proto b/proto/trpc_proto.proto index 7ea8f95..6a197a5 100644 --- a/proto/trpc_proto.proto +++ b/proto/trpc_proto.proto @@ -62,7 +62,7 @@ message ResponseProtocol { uint32 call_type = 2; // 流式id - uint32 stream_id = 3; + uint32 stream_id = 3; // 请求唯一id uint32 request_id = 4; From dd81aed2351fc9a2cbec84aa4c90e0866a3da7de Mon Sep 17 00:00:00 2001 From: suziliu Date: Wed, 3 Jul 2019 10:46:10 +0800 Subject: [PATCH 04/85] update readme --- readme.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index df4e2fc..ee526d4 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,5 @@ trpc统一协议的设计和定义 -具体文档可以参见:[protocol_design.md](docs/protocol_design.md). \ No newline at end of file +具体文档:[protocol_design.md](docs/protocol_design.md). + +具体协议定义:[trpc_proto.proto](proto/trpc_proto.proto). \ No newline at end of file From 8e5770fef528fe6ed034b286f383d2bbfa7e6275 Mon Sep 17 00:00:00 2001 From: suziliu Date: Fri, 5 Jul 2019 17:12:42 +0800 Subject: [PATCH 05/85] fix repeated --- docs/protocol_design.md | 4 ++-- proto/trpc_proto.proto | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index e18bf94..fa2e5fa 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -79,7 +79,7 @@ message RequestProtocol { uint32 content_encoding = 12; // 二进制数据 - repeated bytes data = 99; + bytes data = 99; } // 响应协议头 @@ -127,7 +127,7 @@ message ResponseProtocol { uint32 content_encoding = 11; // 二进制数据 - repeated bytes data = 99; + bytes data = 99; } ``` diff --git a/proto/trpc_proto.proto b/proto/trpc_proto.proto index 6a197a5..c1db221 100644 --- a/proto/trpc_proto.proto +++ b/proto/trpc_proto.proto @@ -49,7 +49,7 @@ message RequestProtocol { uint32 content_encoding = 12; // 二进制数据 - repeated bytes data = 99; + bytes data = 99; } // 响应协议头 @@ -97,5 +97,5 @@ message ResponseProtocol { uint32 content_encoding = 11; // 二进制数据 - repeated bytes data = 99; + bytes data = 99; } From bf122f6bd85b733383f907994a49c470c0d36620 Mon Sep 17 00:00:00 2001 From: suziliu Date: Mon, 8 Jul 2019 14:10:41 +0800 Subject: [PATCH 06/85] add const&retcode --- proto/trpc_proto_const.proto | 74 ++++++++++++++++++++++++++++++++++ proto/trpc_proto_retcode.proto | 58 ++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 proto/trpc_proto_const.proto create mode 100644 proto/trpc_proto_retcode.proto diff --git a/proto/trpc_proto_const.proto b/proto/trpc_proto_const.proto new file mode 100644 index 0000000..671dc23 --- /dev/null +++ b/proto/trpc_proto_const.proto @@ -0,0 +1,74 @@ +syntax = "proto3"; + +package trpc; + +// 框架协议头里的魔数 +enum TrpcMagic { + TRPC_DEFAULT_MAGIC_VALUE = 0x00; + + //走马灯数 + TRPC_MAGIC_VALUE = 0x22E09; +} + +// trpc协议中的调用类型 +enum TrpcInvokeType { + // 正常调用,包括同步、异步 + TRPC_NORMAL_INVOKE = 0x00; + + // 单项调用 + TRPC_ONEWAY_INVOKE = 0x01; + + // 流式调用 + TRPC_STREAM_INVOKE = 0x02; + +} + +// trpc协议中的消息透传支持的类型 +enum TrpcMessageType { + // 染色 + TRPC_DYEING_MESSAGE = 0x00; + + // 调用链 + TRPC_TRACE_MESSAGE = 0x01; + + // 多环境 + TRPC_MULTI_ENV_MESSAGE = 0x02; + + // 灰度 + TRPC_GRID_MESSAGE = 0x04; + + // set名 + TRPC_SETNAME_MESSAGE = 0x08; + + // 流结束 + TRPC_STREAM_END_MESSAGE = 0x10; + +} + +// trpc协议中data内容的编码类型 +// 默认使用pb +enum TrpcContentEncodeType { + // pb + TRPC_PROTO_ENCODE = 0; + + // jce + TRPC_JCE_ENCODE = 1; + + // json + TRPC_JSON_ENCODE = 2; + +} + +// trpc协议中data内容的压缩类型 +// 默认使用不使用 +enum TrpcCompressType { + // 不使用压缩 + TRPC_DEFAULT_COMPRESS = 0; + + // 使用gzip + TRPC_GZIP_COMPRESS = 1; + + // 使用snappy + TRPC_SNAPPY_COMPRESS = 2; + +} \ No newline at end of file diff --git a/proto/trpc_proto_retcode.proto b/proto/trpc_proto_retcode.proto new file mode 100644 index 0000000..ae74f36 --- /dev/null +++ b/proto/trpc_proto_retcode.proto @@ -0,0 +1,58 @@ +syntax = "proto3"; + +package trpc; + +// 框架层接口调用的返回码定义 +enum TrpcRetCode { + // 调用成功 + TRPC_INVOKE_SUCCESS = 0; + + // 服务端的错误码 + // 主要分几类: + // 1.协议,2.service或者func路由,3.队列超时或过载 + // 其它带补充 + + // 协议错误码 + // 服务端解码错误 + TRPC_SERVER_DECODE_ERR = 1; + // 服务端编码错误 + TRPC_SERVER_ENCODE_ERR = 2; + + // service或者func路由错误码 + // 服务端没有调用相应的service实现 + TRPC_SERVER_NOSERVICE_ERR = 11; + // 服务端没有调用相应的接口实现 + TRPC_SERVER_NOFUNC_ERR = 12; + + // 队列超时或过载错误码 + // 请求在服务端超时 + TRPC_SERVER_TIMEOUT_ERR = 21; + // 请求在服务端过载 + TRPC_SERVER_OVERLOAD_ERR = 22; + + // 客户端的错误码 + // 主要分几类: + // 1.超时,2.网络,3.协议,4.路由 + // 其它带补充 + + // 超时错误码 + // 请求在客户端调用超时 + TRPC_CLIENT_INVOKE_TIMEOUT_ERR = 101; + + // 网络相关错误码 + // 客户端连接错误 + TRPC_CLIENT_CONNECT_ERR = 111; + + // 协议相关错误码 + // 客户端编码错误 + TRPC_CLIENT_ENCODE_ERR = 121; + // 客户端解码错误 + TRPC_CLIENT_DECODE_ERR = 122; + + // 路由相关错误码 + // 客户端选ip路由错误 + TRPC_CLIENT_ROUTER_ERR = 131; + + // 未明确的错误 + TRPC_INVOKE_UNKNOWN_ERR = 999; +} \ No newline at end of file From d7edd9a0eab8e163faafc3f6b125b6aa215b03b0 Mon Sep 17 00:00:00 2001 From: suziliu Date: Mon, 8 Jul 2019 14:15:42 +0800 Subject: [PATCH 07/85] update readme --- readme.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index ee526d4..2e7131b 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,11 @@ trpc统一协议的设计和定义 -具体文档:[protocol_design.md](docs/protocol_design.md). +协议设计文档:[protocol_design.md](docs/protocol_design.md). -具体协议定义:[trpc_proto.proto](proto/trpc_proto.proto). \ No newline at end of file +协议定义:[trpc_proto.proto](proto/trpc_proto.proto). + +协议中相关常量定义:[trpc_proto_const.proto](proto/trpc_proto_const.proto). + +协议中框架返回码定义:[trpc_proto_retcode.proto](proto/trpc_proto_retcode.proto). + +协议中业务层在trans_info的key定义规范: \ No newline at end of file From 44f4d979ecd46c39a7bc41873c7b980b7c23fbbc Mon Sep 17 00:00:00 2001 From: suziliu Date: Mon, 8 Jul 2019 14:19:02 +0800 Subject: [PATCH 08/85] update const --- proto/trpc_proto_const.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/trpc_proto_const.proto b/proto/trpc_proto_const.proto index 671dc23..ec5a184 100644 --- a/proto/trpc_proto_const.proto +++ b/proto/trpc_proto_const.proto @@ -6,7 +6,7 @@ package trpc; enum TrpcMagic { TRPC_DEFAULT_MAGIC_VALUE = 0x00; - //走马灯数 + //走马灯数,trpc协议默认使用这个魔数 TRPC_MAGIC_VALUE = 0x22E09; } From c12d6df3ddcff75ddb8158d56bf9c1b011276cf1 Mon Sep 17 00:00:00 2001 From: suziliu Date: Mon, 8 Jul 2019 14:20:37 +0800 Subject: [PATCH 09/85] update const --- proto/trpc_proto_const.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/proto/trpc_proto_const.proto b/proto/trpc_proto_const.proto index ec5a184..b2899bf 100644 --- a/proto/trpc_proto_const.proto +++ b/proto/trpc_proto_const.proto @@ -60,9 +60,9 @@ enum TrpcContentEncodeType { } // trpc协议中data内容的压缩类型 -// 默认使用不使用 +// 默认使用不压缩 enum TrpcCompressType { - // 不使用压缩 + // 默认不使用压缩 TRPC_DEFAULT_COMPRESS = 0; // 使用gzip From 4fe39e1ec3a9ccd201292ecfa101ebe160ecd2e4 Mon Sep 17 00:00:00 2001 From: suziliu Date: Tue, 9 Jul 2019 15:52:26 +0800 Subject: [PATCH 10/85] update proto const define --- proto/trpc_proto.proto | 21 ++++++++++++--------- proto/trpc_proto_const.proto | 15 +++++++++++---- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/proto/trpc_proto.proto b/proto/trpc_proto.proto index c1db221..9563554 100644 --- a/proto/trpc_proto.proto +++ b/proto/trpc_proto.proto @@ -2,14 +2,17 @@ syntax = "proto3"; package trpc; +import "trpc_proto_const.proto"; +import "trpc_proto_retcode.proto"; + // 请求协议头 message RequestProtocol { // 协议版本 - uint32 version = 1; + TrpcProtoVersion version = 1; // 请求的调用类型 // 比如: 普通调用,单向调用,流式调用 - uint32 call_type = 2; + TrpcCallType call_type = 2; // 流id uint32 stream_id = 3; @@ -42,11 +45,11 @@ message RequestProtocol { // 请求数据的数据类型 // 比如: proto/jce/json, 默认proto - uint32 content_type = 11; + TrpcContentEncodeType content_type = 11; // 请求数据使用的压缩方式 // 比如: gzip/snappy/..., 默认不使用 - uint32 content_encoding = 12; + TrpcCompressType content_encoding = 12; // 二进制数据 bytes data = 99; @@ -55,11 +58,11 @@ message RequestProtocol { // 响应协议头 message ResponseProtocol { // 协议版本 - uint32 version = 1; + TrpcProtoVersion version = 1; // 请求的调用类型 // 比如: 普通调用,单向调用,流式调用 - uint32 call_type = 2; + TrpcCallType call_type = 2; // 流式id uint32 stream_id = 3; @@ -68,7 +71,7 @@ message ResponseProtocol { uint32 request_id = 4; // 请求在框架层的错误返回码 - int32 ret = 5; + TrpcRetCode ret = 5; // 接口的错误返回码 // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 @@ -90,11 +93,11 @@ message ResponseProtocol { // 响应数据的编码类型 // 比如: proto/jce/json, 默认proto - uint32 content_type = 10; + TrpcContentEncodeType content_type = 10; // 响应数据使用的压缩方式 // 比如: gzip/snappy/..., 默认不使用 - uint32 content_encoding = 11; + TrpcCompressType content_encoding = 11; // 二进制数据 bytes data = 99; diff --git a/proto/trpc_proto_const.proto b/proto/trpc_proto_const.proto index b2899bf..37f1c36 100644 --- a/proto/trpc_proto_const.proto +++ b/proto/trpc_proto_const.proto @@ -10,16 +10,23 @@ enum TrpcMagic { TRPC_MAGIC_VALUE = 0x22E09; } +// trpc协议版本 +enum TrpcProtoVersion { + // 默认版本 + TRPC_PROTO_V1 = 0; + +} + // trpc协议中的调用类型 -enum TrpcInvokeType { +enum TrpcCallType { // 正常调用,包括同步、异步 - TRPC_NORMAL_INVOKE = 0x00; + TRPC_NORMAL_CALL = 0; // 单项调用 - TRPC_ONEWAY_INVOKE = 0x01; + TRPC_ONEWAY_CALL = 1; // 流式调用 - TRPC_STREAM_INVOKE = 0x02; + TRPC_STREAM_CALL = 2; } From b516e2e72dd8f3ef4355a3e9d3703e11de67c141 Mon Sep 17 00:00:00 2001 From: suziliu Date: Tue, 9 Jul 2019 15:56:06 +0800 Subject: [PATCH 11/85] update doc --- docs/protocol_design.md | 106 +--------------------------------------- 1 file changed, 2 insertions(+), 104 deletions(-) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index fa2e5fa..677a214 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -25,110 +25,8 @@ RPC调用方式 |远程调用像调本地接口一样 3.新统一RPC协议的具体设计 -框架的RPC协议的字段定义如下(保留支持流式的能力,pb使用v3版本): +框架的RPC协议的字段参见:[trpc_proto.proto](proto/trpc_proto.proto)。 -```protobuf -syntax = "proto3"; - -package trpc; - -// 请求协议头 -message RequestProtocol { - // 协议版本 - uint32 version = 1; - - // 请求的调用类型 - // 比如: 普通调用,单向调用,流式调用 - uint32 call_type = 2; - - // 流id - uint32 stream_id = 3; - - // 请求唯一id - uint32 request_id = 4; - - // 请求的超时时间,单位ms - uint32 timeout = 5; - - // 主调服务的名称 - string caller = 6; - - // 被调服务的路由名称 - // 规范格式,trpc.应用名.服务名.pb的service名 - string callee = 7; - - // 调用服务的接口名 - // 规范格式,pb idl定义的接口名 - string func = 8; - - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、流结束、多环境等的标识 - uint32 message_type = 9; - - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc_开头 - // 2是业务层要透传的信息,业务可以自行设置,严禁key的名称开头使用trpc - map trans_info = 10; - - // 请求数据的数据类型 - // 比如: proto/jce/json, 默认proto - uint32 content_type = 11; - - // 请求数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - uint32 content_encoding = 12; - - // 二进制数据 - bytes data = 99; -} - -// 响应协议头 -message ResponseProtocol { - // 协议版本 - uint32 version = 1; - - // 请求的调用类型 - // 比如: 普通调用,单向调用,流式调用 - uint32 call_type = 2; - - // 流式id - uint32 stream_id = 3; - - // 请求唯一id - uint32 request_id = 4; - - // 请求在框架层的错误返回码 - int32 ret = 5; - - // 接口的错误返回码 - // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 - int32 func_ret = 6; - - // 调用结果信息描述 - // 失败的时候用 - string error_msg = 7; - - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、流结束、多环境等的标识 - uint32 message_type = 8; - - // 框架透传回来的信息key-value对, - // 目前分两部分 - // 1是框架层透传回来的信息,key的名字要以trpc_开头 - // 2是业务层透传回来的信息,业务可以自行设置,严禁key的名称开头使用trpc - map trans_info = 9; - - // 响应数据的编码类型 - // 比如: proto/jce/json, 默认proto - uint32 content_type = 10; - - // 响应数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - uint32 content_encoding = 11; - - // 二进制数据 - bytes data = 99; -} -``` +协议定义保留支持流式的能力,pb使用v3版本。 另外,请求和响应协议的前面加两个固定长度的头:魔数和长度。魔数在前,长度在后,其中魔数字段占4个字节,估计为0x22E09(其10进制数142857称走马灯数),长度字段占4个字节,内容为消息结构体RequestProtocol或者ResponseProtocol序列化后的大小。 \ No newline at end of file From 2cbc8ef702e32ffd5ad7959fe3b4cdeebdc1997f Mon Sep 17 00:00:00 2001 From: suziliu Date: Tue, 9 Jul 2019 16:23:43 +0800 Subject: [PATCH 12/85] update doc --- docs/protocol_design.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index 677a214..6d63400 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -25,7 +25,7 @@ RPC调用方式 |远程调用像调本地接口一样 3.新统一RPC协议的具体设计 -框架的RPC协议的字段参见:[trpc_proto.proto](proto/trpc_proto.proto)。 +框架的RPC协议的字段参见:[trpc_proto.proto](../proto/trpc_proto.proto)。 协议定义保留支持流式的能力,pb使用v3版本。 From 910cf87f0463dcc71dcca881d830c5d957554201 Mon Sep 17 00:00:00 2001 From: basezhang Date: Tue, 9 Jul 2019 11:19:19 +0000 Subject: [PATCH 13/85] add java_package --- proto/trpc_proto.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/proto/trpc_proto.proto b/proto/trpc_proto.proto index 9563554..43c47ce 100644 --- a/proto/trpc_proto.proto +++ b/proto/trpc_proto.proto @@ -5,6 +5,7 @@ package trpc; import "trpc_proto_const.proto"; import "trpc_proto_retcode.proto"; +option java_package = "com.tencent.trpc.codec.trpc.proto"; // 请求协议头 message RequestProtocol { // 协议版本 From 8b14015f843f7717822460079ffeab20edcbc8f6 Mon Sep 17 00:00:00 2001 From: basezhang Date: Tue, 9 Jul 2019 11:35:35 +0000 Subject: [PATCH 14/85] add java_outer_classname --- proto/trpc_proto.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/proto/trpc_proto.proto b/proto/trpc_proto.proto index 43c47ce..60cc010 100644 --- a/proto/trpc_proto.proto +++ b/proto/trpc_proto.proto @@ -6,6 +6,7 @@ import "trpc_proto_const.proto"; import "trpc_proto_retcode.proto"; option java_package = "com.tencent.trpc.codec.trpc.proto"; +option java_outer_classname = "TRPCProtocol"; // 请求协议头 message RequestProtocol { // 协议版本 From ab2995d65b37020ae9d654eedc1418747e8c4566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tensorchen=28=E9=99=88=E4=B8=80=E6=9E=AD=29?= Date: Thu, 11 Jul 2019 20:09:57 +0800 Subject: [PATCH 15/85] feat: Add proto go_package --- proto/trpc_proto.proto | 1 + proto/trpc_proto_const.proto | 4 +++- proto/trpc_proto_retcode.proto | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/proto/trpc_proto.proto b/proto/trpc_proto.proto index 60cc010..e3f95b2 100644 --- a/proto/trpc_proto.proto +++ b/proto/trpc_proto.proto @@ -5,6 +5,7 @@ package trpc; import "trpc_proto_const.proto"; import "trpc_proto_retcode.proto"; +option go_package = "git.code.oa.com/trpc-go/trpc"; option java_package = "com.tencent.trpc.codec.trpc.proto"; option java_outer_classname = "TRPCProtocol"; // 请求协议头 diff --git a/proto/trpc_proto_const.proto b/proto/trpc_proto_const.proto index 37f1c36..c1e8d6a 100644 --- a/proto/trpc_proto_const.proto +++ b/proto/trpc_proto_const.proto @@ -2,6 +2,8 @@ syntax = "proto3"; package trpc; +option go_package = "git.code.oa.com/trpc-go/trpc"; + // 框架协议头里的魔数 enum TrpcMagic { TRPC_DEFAULT_MAGIC_VALUE = 0x00; @@ -78,4 +80,4 @@ enum TrpcCompressType { // 使用snappy TRPC_SNAPPY_COMPRESS = 2; -} \ No newline at end of file +} diff --git a/proto/trpc_proto_retcode.proto b/proto/trpc_proto_retcode.proto index ae74f36..6661eaa 100644 --- a/proto/trpc_proto_retcode.proto +++ b/proto/trpc_proto_retcode.proto @@ -2,6 +2,8 @@ syntax = "proto3"; package trpc; +option go_package = "git.code.oa.com/trpc-go/trpc"; + // 框架层接口调用的返回码定义 enum TrpcRetCode { // 调用成功 @@ -55,4 +57,4 @@ enum TrpcRetCode { // 未明确的错误 TRPC_INVOKE_UNKNOWN_ERR = 999; -} \ No newline at end of file +} From 780067647fb751f052f1e2495f887d817763a198 Mon Sep 17 00:00:00 2001 From: suziliu Date: Mon, 15 Jul 2019 20:26:06 +0800 Subject: [PATCH 16/85] change proto define --- proto/trpc.proto | 249 +++++++++++++++++++++++++++++++++ proto/trpc_proto.proto | 107 -------------- proto/trpc_proto_const.proto | 83 ----------- proto/trpc_proto_retcode.proto | 60 -------- 4 files changed, 249 insertions(+), 250 deletions(-) create mode 100644 proto/trpc.proto delete mode 100644 proto/trpc_proto.proto delete mode 100644 proto/trpc_proto_const.proto delete mode 100644 proto/trpc_proto_retcode.proto diff --git a/proto/trpc.proto b/proto/trpc.proto new file mode 100644 index 0000000..ef849be --- /dev/null +++ b/proto/trpc.proto @@ -0,0 +1,249 @@ +syntax = "proto3"; + +package trpc; + +option go_package = "git.code.oa.com/trpc-go/trpc"; +option java_package = "com.tencent.trpc.codec.trpc.proto"; +option java_outer_classname = "TRPCProtocol"; + +// 框架协议头里的魔数 +enum TrpcMagic { + TRPC_DEFAULT_MAGIC_VALUE = 0x00; + + //走马灯数,trpc协议默认使用这个魔数 + TRPC_MAGIC_VALUE = 0x22E09; +} + +// trpc协议版本 +enum TrpcProtoVersion { + // 默认版本 + TRPC_PROTO_V1 = 0; + +} + +// trpc协议中的调用类型 +enum TrpcCallType { + // 正常调用,包括同步、异步 + TRPC_NORMAL_CALL = 0; + + // 单项调用 + TRPC_ONEWAY_CALL = 1; + + // 流式调用 + TRPC_STREAM_CALL = 2; + +} + +// trpc协议中的消息透传支持的类型 +enum TrpcMessageType { + // 染色 + TRPC_DYEING_MESSAGE = 0x00; + + // 调用链 + TRPC_TRACE_MESSAGE = 0x01; + + // 多环境 + TRPC_MULTI_ENV_MESSAGE = 0x02; + + // 灰度 + TRPC_GRID_MESSAGE = 0x04; + + // set名 + TRPC_SETNAME_MESSAGE = 0x08; + + // 流结束 + TRPC_STREAM_END_MESSAGE = 0x10; + +} + +// trpc协议中data内容的编码类型 +// 默认使用pb +enum TrpcContentEncodeType { + // pb + TRPC_PROTO_ENCODE = 0; + + // jce + TRPC_JCE_ENCODE = 1; + + // json + TRPC_JSON_ENCODE = 2; + +} + +// trpc协议中data内容的压缩类型 +// 默认使用不压缩 +enum TrpcCompressType { + // 默认不使用压缩 + TRPC_DEFAULT_COMPRESS = 0; + + // 使用gzip + TRPC_GZIP_COMPRESS = 1; + + // 使用snappy + TRPC_SNAPPY_COMPRESS = 2; + +} + +// 框架层接口调用的返回码定义 +enum TrpcRetCode { + // 调用成功 + TRPC_INVOKE_SUCCESS = 0; + + // 服务端的错误码 + // 主要分几类: + // 1.协议,2.service或者func路由,3.队列超时或过载 + // 其它带补充 + + // 协议错误码 + // 服务端解码错误 + TRPC_SERVER_DECODE_ERR = 1; + // 服务端编码错误 + TRPC_SERVER_ENCODE_ERR = 2; + + // service或者func路由错误码 + // 服务端没有调用相应的service实现 + TRPC_SERVER_NOSERVICE_ERR = 11; + // 服务端没有调用相应的接口实现 + TRPC_SERVER_NOFUNC_ERR = 12; + + // 队列超时或过载错误码 + // 请求在服务端超时 + TRPC_SERVER_TIMEOUT_ERR = 21; + // 请求在服务端过载 + TRPC_SERVER_OVERLOAD_ERR = 22; + + // 客户端的错误码 + // 主要分几类: + // 1.超时,2.网络,3.协议,4.路由 + // 其它带补充 + + // 超时错误码 + // 请求在客户端调用超时 + TRPC_CLIENT_INVOKE_TIMEOUT_ERR = 101; + + // 网络相关错误码 + // 客户端连接错误 + TRPC_CLIENT_CONNECT_ERR = 111; + + // 协议相关错误码 + // 客户端编码错误 + TRPC_CLIENT_ENCODE_ERR = 121; + // 客户端解码错误 + TRPC_CLIENT_DECODE_ERR = 122; + + // 路由相关错误码 + // 客户端选ip路由错误 + TRPC_CLIENT_ROUTER_ERR = 131; + + // 未明确的错误 + TRPC_INVOKE_UNKNOWN_ERR = 999; +} + +// 请求协议头 +message RequestProtocol { + // 协议版本 + // 具体值与TrpcProtoVersion对应 + uint32 version = 1; + + // 请求的调用类型 + // 比如: 普通调用,单向调用,流式调用 + // 具体值与TrpcCallType对应 + uint32 call_type = 2; + + // 流id + uint32 stream_id = 3; + + // 请求唯一id + uint32 request_id = 4; + + // 请求的超时时间,单位ms + uint32 timeout = 5; + + // 主调服务的名称 + string caller = 6; + + // 被调服务的路由名称 + // 规范格式,trpc.应用名.服务名.pb的service名 + string callee = 7; + + // 调用服务的接口名 + // 规范格式: /package.Service名称/接口名 + string func = 8; + + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、流结束、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + uint32 message_type = 9; + + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc_开头 + // 2是业务层要透传的信息,业务可以自行设置 + map trans_info = 10; + + // 请求数据的数据类型 + // 比如: proto/jce/json, 默认proto + // 具体值与TrpcContentEncodeType对应 + uint32 content_type = 11; + + // 请求数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + // 具体值与TrpcCompressType对应 + uint32 content_encoding = 12; + + // 二进制数据 + bytes data = 99; +} + +// 响应协议头 +message ResponseProtocol { + // 协议版本 + // 具体值与TrpcProtoVersion对应 + uint32 version = 1; + + // 请求的调用类型 + // 比如: 普通调用,单向调用,流式调用 + // 具体值与TrpcCallType对应 + uint32 call_type = 2; + + // 流式id + uint32 stream_id = 3; + + // 请求唯一id + uint32 request_id = 4; + + // 请求在框架层的错误返回码 + // 具体值与TrpcRetCode对应 + int32 ret = 5; + + // 接口的错误返回码 + // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + int32 func_ret = 6; + + // 调用结果信息描述 + // 失败的时候用 + string error_msg = 7; + + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、流结束、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + uint32 message_type = 8; + + // 框架透传回来的信息key-value对, + // 目前分两部分 + // 1是框架层透传回来的信息,key的名字要以trpc_开头 + // 2是业务层透传回来的信息,业务可以自行设置 + map trans_info = 9; + + // 响应数据的编码类型 + // 比如: proto/jce/json, 默认proto + // 具体值与TrpcContentEncodeType对应 + uint32 content_type = 10; + + // 响应数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + // 具体值与TrpcCompressType对应 + uint32 content_encoding = 11; + + // 二进制数据 + bytes data = 99; +} diff --git a/proto/trpc_proto.proto b/proto/trpc_proto.proto deleted file mode 100644 index e3f95b2..0000000 --- a/proto/trpc_proto.proto +++ /dev/null @@ -1,107 +0,0 @@ -syntax = "proto3"; - -package trpc; - -import "trpc_proto_const.proto"; -import "trpc_proto_retcode.proto"; - -option go_package = "git.code.oa.com/trpc-go/trpc"; -option java_package = "com.tencent.trpc.codec.trpc.proto"; -option java_outer_classname = "TRPCProtocol"; -// 请求协议头 -message RequestProtocol { - // 协议版本 - TrpcProtoVersion version = 1; - - // 请求的调用类型 - // 比如: 普通调用,单向调用,流式调用 - TrpcCallType call_type = 2; - - // 流id - uint32 stream_id = 3; - - // 请求唯一id - uint32 request_id = 4; - - // 请求的超时时间,单位ms - uint32 timeout = 5; - - // 主调服务的名称 - string caller = 6; - - // 被调服务的路由名称 - // 规范格式,trpc.应用名.服务名.pb的service名 - string callee = 7; - - // 调用服务的接口名 - // 规范格式,pb idl定义的接口名 - string func = 8; - - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、流结束、多环境、set名称等的标识 - uint32 message_type = 9; - - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc_开头 - // 2是业务层要透传的信息,业务可以自行设置 - map trans_info = 10; - - // 请求数据的数据类型 - // 比如: proto/jce/json, 默认proto - TrpcContentEncodeType content_type = 11; - - // 请求数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - TrpcCompressType content_encoding = 12; - - // 二进制数据 - bytes data = 99; -} - -// 响应协议头 -message ResponseProtocol { - // 协议版本 - TrpcProtoVersion version = 1; - - // 请求的调用类型 - // 比如: 普通调用,单向调用,流式调用 - TrpcCallType call_type = 2; - - // 流式id - uint32 stream_id = 3; - - // 请求唯一id - uint32 request_id = 4; - - // 请求在框架层的错误返回码 - TrpcRetCode ret = 5; - - // 接口的错误返回码 - // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 - int32 func_ret = 6; - - // 调用结果信息描述 - // 失败的时候用 - string error_msg = 7; - - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、流结束、多环境、set名称等的标识 - uint32 message_type = 8; - - // 框架透传回来的信息key-value对, - // 目前分两部分 - // 1是框架层透传回来的信息,key的名字要以trpc_开头 - // 2是业务层透传回来的信息,业务可以自行设置 - map trans_info = 9; - - // 响应数据的编码类型 - // 比如: proto/jce/json, 默认proto - TrpcContentEncodeType content_type = 10; - - // 响应数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - TrpcCompressType content_encoding = 11; - - // 二进制数据 - bytes data = 99; -} diff --git a/proto/trpc_proto_const.proto b/proto/trpc_proto_const.proto deleted file mode 100644 index c1e8d6a..0000000 --- a/proto/trpc_proto_const.proto +++ /dev/null @@ -1,83 +0,0 @@ -syntax = "proto3"; - -package trpc; - -option go_package = "git.code.oa.com/trpc-go/trpc"; - -// 框架协议头里的魔数 -enum TrpcMagic { - TRPC_DEFAULT_MAGIC_VALUE = 0x00; - - //走马灯数,trpc协议默认使用这个魔数 - TRPC_MAGIC_VALUE = 0x22E09; -} - -// trpc协议版本 -enum TrpcProtoVersion { - // 默认版本 - TRPC_PROTO_V1 = 0; - -} - -// trpc协议中的调用类型 -enum TrpcCallType { - // 正常调用,包括同步、异步 - TRPC_NORMAL_CALL = 0; - - // 单项调用 - TRPC_ONEWAY_CALL = 1; - - // 流式调用 - TRPC_STREAM_CALL = 2; - -} - -// trpc协议中的消息透传支持的类型 -enum TrpcMessageType { - // 染色 - TRPC_DYEING_MESSAGE = 0x00; - - // 调用链 - TRPC_TRACE_MESSAGE = 0x01; - - // 多环境 - TRPC_MULTI_ENV_MESSAGE = 0x02; - - // 灰度 - TRPC_GRID_MESSAGE = 0x04; - - // set名 - TRPC_SETNAME_MESSAGE = 0x08; - - // 流结束 - TRPC_STREAM_END_MESSAGE = 0x10; - -} - -// trpc协议中data内容的编码类型 -// 默认使用pb -enum TrpcContentEncodeType { - // pb - TRPC_PROTO_ENCODE = 0; - - // jce - TRPC_JCE_ENCODE = 1; - - // json - TRPC_JSON_ENCODE = 2; - -} - -// trpc协议中data内容的压缩类型 -// 默认使用不压缩 -enum TrpcCompressType { - // 默认不使用压缩 - TRPC_DEFAULT_COMPRESS = 0; - - // 使用gzip - TRPC_GZIP_COMPRESS = 1; - - // 使用snappy - TRPC_SNAPPY_COMPRESS = 2; - -} diff --git a/proto/trpc_proto_retcode.proto b/proto/trpc_proto_retcode.proto deleted file mode 100644 index 6661eaa..0000000 --- a/proto/trpc_proto_retcode.proto +++ /dev/null @@ -1,60 +0,0 @@ -syntax = "proto3"; - -package trpc; - -option go_package = "git.code.oa.com/trpc-go/trpc"; - -// 框架层接口调用的返回码定义 -enum TrpcRetCode { - // 调用成功 - TRPC_INVOKE_SUCCESS = 0; - - // 服务端的错误码 - // 主要分几类: - // 1.协议,2.service或者func路由,3.队列超时或过载 - // 其它带补充 - - // 协议错误码 - // 服务端解码错误 - TRPC_SERVER_DECODE_ERR = 1; - // 服务端编码错误 - TRPC_SERVER_ENCODE_ERR = 2; - - // service或者func路由错误码 - // 服务端没有调用相应的service实现 - TRPC_SERVER_NOSERVICE_ERR = 11; - // 服务端没有调用相应的接口实现 - TRPC_SERVER_NOFUNC_ERR = 12; - - // 队列超时或过载错误码 - // 请求在服务端超时 - TRPC_SERVER_TIMEOUT_ERR = 21; - // 请求在服务端过载 - TRPC_SERVER_OVERLOAD_ERR = 22; - - // 客户端的错误码 - // 主要分几类: - // 1.超时,2.网络,3.协议,4.路由 - // 其它带补充 - - // 超时错误码 - // 请求在客户端调用超时 - TRPC_CLIENT_INVOKE_TIMEOUT_ERR = 101; - - // 网络相关错误码 - // 客户端连接错误 - TRPC_CLIENT_CONNECT_ERR = 111; - - // 协议相关错误码 - // 客户端编码错误 - TRPC_CLIENT_ENCODE_ERR = 121; - // 客户端解码错误 - TRPC_CLIENT_DECODE_ERR = 122; - - // 路由相关错误码 - // 客户端选ip路由错误 - TRPC_CLIENT_ROUTER_ERR = 131; - - // 未明确的错误 - TRPC_INVOKE_UNKNOWN_ERR = 999; -} From a9e7024291fe25607ba19a4c809b6e7013f1a6e8 Mon Sep 17 00:00:00 2001 From: suziliu Date: Mon, 15 Jul 2019 20:31:36 +0800 Subject: [PATCH 17/85] update doc --- docs/protocol_design.md | 2 +- readme.md | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index 6d63400..7f65d93 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -25,7 +25,7 @@ RPC调用方式 |远程调用像调本地接口一样 3.新统一RPC协议的具体设计 -框架的RPC协议的字段参见:[trpc_proto.proto](../proto/trpc_proto.proto)。 +框架的RPC协议的字段参见:[trpc.proto](../proto/trpc.proto)。 协议定义保留支持流式的能力,pb使用v3版本。 diff --git a/readme.md b/readme.md index 2e7131b..ca6fcc0 100644 --- a/readme.md +++ b/readme.md @@ -2,10 +2,8 @@ trpc统一协议的设计和定义 协议设计文档:[protocol_design.md](docs/protocol_design.md). -协议定义:[trpc_proto.proto](proto/trpc_proto.proto). +协议/常量/返回码定义:[trpc.proto](proto/trpc.proto). -协议中相关常量定义:[trpc_proto_const.proto](proto/trpc_proto_const.proto). - -协议中框架返回码定义:[trpc_proto_retcode.proto](proto/trpc_proto_retcode.proto). - -协议中业务层在trans_info的key定义规范: \ No newline at end of file +协议中业务层在trans_info的key定义规范: +1.框架使用的key以trpc_开头,具体常量定义在框架代码中统一管理; +2.业务自定义key以app_开头,防止重复,不能以trpc开头; From 913904ba00c9cf875ec470608bfdb9d094b55534 Mon Sep 17 00:00:00 2001 From: suziliu Date: Thu, 25 Jul 2019 09:34:20 +0000 Subject: [PATCH 18/85] change string to bytes --- proto/trpc.proto | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index ef849be..58e0fa3 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -160,15 +160,15 @@ message RequestProtocol { uint32 timeout = 5; // 主调服务的名称 - string caller = 6; + bytes caller = 6; // 被调服务的路由名称 // 规范格式,trpc.应用名.服务名.pb的service名 - string callee = 7; + bytes callee = 7; // 调用服务的接口名 // 规范格式: /package.Service名称/接口名 - string func = 8; + bytes func = 8; // 框架信息透传的消息类型 // 比如调用链、染色key、灰度、鉴权、流结束、多环境、set名称等的标识 @@ -178,7 +178,7 @@ message RequestProtocol { // 框架透传的信息key-value对,目前分两部分 // 1是框架层要透传的信息,key的名字要以trpc_开头 // 2是业务层要透传的信息,业务可以自行设置 - map trans_info = 10; + map trans_info = 10; // 请求数据的数据类型 // 比如: proto/jce/json, 默认proto @@ -221,7 +221,7 @@ message ResponseProtocol { // 调用结果信息描述 // 失败的时候用 - string error_msg = 7; + bytes error_msg = 7; // 框架信息透传的消息类型 // 比如调用链、染色key、灰度、鉴权、流结束、多环境、set名称等的标识 @@ -232,7 +232,7 @@ message ResponseProtocol { // 目前分两部分 // 1是框架层透传回来的信息,key的名字要以trpc_开头 // 2是业务层透传回来的信息,业务可以自行设置 - map trans_info = 9; + map trans_info = 9; // 响应数据的编码类型 // 比如: proto/jce/json, 默认proto From 8e75fdbdcd078ede4fd66bfc83207b1503878308 Mon Sep 17 00:00:00 2001 From: suziliu Date: Tue, 6 Aug 2019 06:30:24 +0000 Subject: [PATCH 19/85] update route name specifition --- proto/trpc.proto | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index 58e0fa3..679f9b6 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -163,7 +163,8 @@ message RequestProtocol { bytes caller = 6; // 被调服务的路由名称 - // 规范格式,trpc.应用名.服务名.pb的service名 + // 规范格式,trpc.应用名.服务名.pb的service名[.接口名] + // 接口可选 bytes callee = 7; // 调用服务的接口名 From d2c8f9cc3f703b4d644d02c7ab2f661a754bba50 Mon Sep 17 00:00:00 2001 From: suziliu Date: Fri, 23 Aug 2019 09:26:28 +0000 Subject: [PATCH 20/85] change stream data support --- proto/trpc.proto | 65 +++++++++++++++++++----------------------------- 1 file changed, 25 insertions(+), 40 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index 679f9b6..88b4548 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -37,22 +37,19 @@ enum TrpcCallType { // trpc协议中的消息透传支持的类型 enum TrpcMessageType { // 染色 - TRPC_DYEING_MESSAGE = 0x00; + TRPC_DYEING_MESSAGE = 0x01; // 调用链 - TRPC_TRACE_MESSAGE = 0x01; + TRPC_TRACE_MESSAGE = 0x02; // 多环境 - TRPC_MULTI_ENV_MESSAGE = 0x02; + TRPC_MULTI_ENV_MESSAGE = 0x04; // 灰度 - TRPC_GRID_MESSAGE = 0x04; + TRPC_GRID_MESSAGE = 0x08; // set名 - TRPC_SETNAME_MESSAGE = 0x08; - - // 流结束 - TRPC_STREAM_END_MESSAGE = 0x10; + TRPC_SETNAME_MESSAGE = 0x10; } @@ -150,49 +147,43 @@ message RequestProtocol { // 具体值与TrpcCallType对应 uint32 call_type = 2; - // 流id - uint32 stream_id = 3; - // 请求唯一id - uint32 request_id = 4; + uint32 request_id = 3; // 请求的超时时间,单位ms - uint32 timeout = 5; + uint32 timeout = 4; // 主调服务的名称 - bytes caller = 6; + bytes caller = 5; // 被调服务的路由名称 // 规范格式,trpc.应用名.服务名.pb的service名[.接口名] // 接口可选 - bytes callee = 7; + bytes callee = 6; // 调用服务的接口名 // 规范格式: /package.Service名称/接口名 - bytes func = 8; + bytes func = 7; // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、流结束、多环境、set名称等的标识 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 // 具体值与TrpcMessageType对应 - uint32 message_type = 9; + uint32 message_type = 8; // 框架透传的信息key-value对,目前分两部分 // 1是框架层要透传的信息,key的名字要以trpc_开头 // 2是业务层要透传的信息,业务可以自行设置 - map trans_info = 10; + map trans_info = 9; - // 请求数据的数据类型 + // 请求数据的序列化类型 // 比如: proto/jce/json, 默认proto // 具体值与TrpcContentEncodeType对应 - uint32 content_type = 11; + uint32 content_type = 10; // 请求数据使用的压缩方式 // 比如: gzip/snappy/..., 默认不使用 // 具体值与TrpcCompressType对应 - uint32 content_encoding = 12; - - // 二进制数据 - bytes data = 99; + uint32 content_encoding = 11; } // 响应协议头 @@ -206,45 +197,39 @@ message ResponseProtocol { // 具体值与TrpcCallType对应 uint32 call_type = 2; - // 流式id - uint32 stream_id = 3; - // 请求唯一id - uint32 request_id = 4; + uint32 request_id = 3; // 请求在框架层的错误返回码 // 具体值与TrpcRetCode对应 - int32 ret = 5; + int32 ret = 4; // 接口的错误返回码 // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 - int32 func_ret = 6; + int32 func_ret = 5; // 调用结果信息描述 // 失败的时候用 - bytes error_msg = 7; + bytes error_msg = 6; // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、流结束、多环境、set名称等的标识 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 // 具体值与TrpcMessageType对应 - uint32 message_type = 8; + uint32 message_type = 7; // 框架透传回来的信息key-value对, // 目前分两部分 // 1是框架层透传回来的信息,key的名字要以trpc_开头 // 2是业务层透传回来的信息,业务可以自行设置 - map trans_info = 9; + map trans_info = 8; // 响应数据的编码类型 // 比如: proto/jce/json, 默认proto // 具体值与TrpcContentEncodeType对应 - uint32 content_type = 10; + uint32 content_type = 9; // 响应数据使用的压缩方式 // 比如: gzip/snappy/..., 默认不使用 // 具体值与TrpcCompressType对应 - uint32 content_encoding = 11; - - // 二进制数据 - bytes data = 99; + uint32 content_encoding = 10; } From 28dafd4a558371b567b1cbe657443b8dc79a3e9b Mon Sep 17 00:00:00 2001 From: suziliu Date: Fri, 23 Aug 2019 09:34:06 +0000 Subject: [PATCH 21/85] proto change to support streaming --- docs/protocol_design.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index 7f65d93..0a8231d 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -25,8 +25,6 @@ RPC调用方式 |远程调用像调本地接口一样 3.新统一RPC协议的具体设计 -框架的RPC协议的字段参见:[trpc.proto](../proto/trpc.proto)。 +![image.png](/uploads/C260989EF084459183D08A935702670F/image.png) -协议定义保留支持流式的能力,pb使用v3版本。 - -另外,请求和响应协议的前面加两个固定长度的头:魔数和长度。魔数在前,长度在后,其中魔数字段占4个字节,估计为0x22E09(其10进制数142857称走马灯数),长度字段占4个字节,内容为消息结构体RequestProtocol或者ResponseProtocol序列化后的大小。 \ No newline at end of file +协议头的字段使用pb v3版本定义,参见:[trpc.proto](../proto/trpc.proto)。 From f4d589a4dcd47ba9fb038d9f1b92b95438d31bf9 Mon Sep 17 00:00:00 2001 From: suziliu Date: Sat, 24 Aug 2019 06:45:12 +0000 Subject: [PATCH 22/85] update proto --- proto/trpc.proto | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index 88b4548..f2cb9a4 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -10,8 +10,30 @@ option java_outer_classname = "TRPCProtocol"; enum TrpcMagic { TRPC_DEFAULT_MAGIC_VALUE = 0x00; - //走马灯数,trpc协议默认使用这个魔数 - TRPC_MAGIC_VALUE = 0x22E09; + //trpc协议默认使用这个魔数 + TRPC_MAGIC_VALUE = 0x930; +} + +// trpc协议的二进制数据帧类型 +// 目前支持两种类型的二进制数据帧: +// 1. 一应一答模式的二进制数据帧类型 +// 2. 流式模式的二进制数据帧类型 +enum TrpcDataFrameType { + //trpc一应一答模式的二进制数据帧类型 + TRPC_UNARY_FRAME = 0x01; + + //trpc流式模式的二进制数据帧类型 + TRPC_STREAM_FRAME = 0x02; +} + +// trpc协议的二进制数据帧的状态 +// 目前支持流式模式的二进制数据帧结束状态 +enum TrpcDataFrameState { + //不包括任何状态 + TRPC_NO_STATE = 0x00; + + //trpc流式模式下的结束状态 + TRPC_STREAM_FINISH = 0x01; } // trpc协议版本 From e0c56d67a6a04e8d81e7efcc48ac343faf7420b9 Mon Sep 17 00:00:00 2001 From: suziliu Date: Sat, 24 Aug 2019 06:54:06 +0000 Subject: [PATCH 23/85] update proto --- proto/trpc.proto | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index f2cb9a4..24973d7 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -8,7 +8,7 @@ option java_outer_classname = "TRPCProtocol"; // 框架协议头里的魔数 enum TrpcMagic { - TRPC_DEFAULT_MAGIC_VALUE = 0x00; + //TRPC_DEFAULT_MAGIC_VALUE = 0x00; //trpc协议默认使用这个魔数 TRPC_MAGIC_VALUE = 0x930; @@ -20,10 +20,10 @@ enum TrpcMagic { // 2. 流式模式的二进制数据帧类型 enum TrpcDataFrameType { //trpc一应一答模式的二进制数据帧类型 - TRPC_UNARY_FRAME = 0x01; + TRPC_UNARY_FRAME = 0x00; //trpc流式模式的二进制数据帧类型 - TRPC_STREAM_FRAME = 0x02; + TRPC_STREAM_FRAME = 0x01; } // trpc协议的二进制数据帧的状态 From e3ffa6a6a0ebf7ef958900a414a445e49c015fac Mon Sep 17 00:00:00 2001 From: suziliu Date: Sat, 24 Aug 2019 06:59:46 +0000 Subject: [PATCH 24/85] update proto --- proto/trpc.proto | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index 24973d7..ebc8b95 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -51,8 +51,14 @@ enum TrpcCallType { // 单项调用 TRPC_ONEWAY_CALL = 1; - // 流式调用 - TRPC_STREAM_CALL = 2; + // 客户端流式请求调用 + TRPC_CLIENT_STREAM_CALL = 2; + + // 服务端流式回应 + TRPC_SERVER_STREAM_CALL = 3; + + // 客户端和服务端流式请求和回应 + TRPC_BIDI_STREAM_CALL = 3; } From 823f1323f60f543304b5512e1d20b64defde9aee Mon Sep 17 00:00:00 2001 From: suziliu Date: Sat, 24 Aug 2019 07:00:27 +0000 Subject: [PATCH 25/85] update proto --- proto/trpc.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index ebc8b95..5799377 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -58,7 +58,7 @@ enum TrpcCallType { TRPC_SERVER_STREAM_CALL = 3; // 客户端和服务端流式请求和回应 - TRPC_BIDI_STREAM_CALL = 3; + TRPC_BIDI_STREAM_CALL = 4; } From 7dac67ff9430a49e8381b8d6d81e968871e19a7a Mon Sep 17 00:00:00 2001 From: suziliu Date: Sat, 24 Aug 2019 07:08:45 +0000 Subject: [PATCH 26/85] update proto --- proto/trpc.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index 5799377..203ef9f 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -45,8 +45,8 @@ enum TrpcProtoVersion { // trpc协议中的调用类型 enum TrpcCallType { - // 正常调用,包括同步、异步 - TRPC_NORMAL_CALL = 0; + // 一应一答调用,包括同步、异步 + TRPC_UNARY_CALL = 0; // 单项调用 TRPC_ONEWAY_CALL = 1; From b111a3b777559a6554ac76606e45e117e871eec5 Mon Sep 17 00:00:00 2001 From: basezhang Date: Sat, 24 Aug 2019 09:57:48 +0000 Subject: [PATCH 27/85] update trpc --- proto/trpc.proto | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index 203ef9f..0699d98 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -8,7 +8,8 @@ option java_outer_classname = "TRPCProtocol"; // 框架协议头里的魔数 enum TrpcMagic { - //TRPC_DEFAULT_MAGIC_VALUE = 0x00; + //trpc 不用这个值,为了提供给pb工具生成代码 + TRPC_DEFAULT_NONE = 0x00; //trpc协议默认使用这个魔数 TRPC_MAGIC_VALUE = 0x930; @@ -64,6 +65,10 @@ enum TrpcCallType { // trpc协议中的消息透传支持的类型 enum TrpcMessageType { + + //trpc 不用这个值,为了提供给pb工具生成代码 + TRPC_DEFAULT = 0x00; + // 染色 TRPC_DYEING_MESSAGE = 0x01; From c5c2171f60af0094dc5c320f41cc6f95f21692b3 Mon Sep 17 00:00:00 2001 From: suziliu Date: Tue, 27 Aug 2019 03:10:03 +0000 Subject: [PATCH 28/85] update doc --- docs/protocol_design.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index 0a8231d..d573c85 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -25,6 +25,6 @@ RPC调用方式 |远程调用像调本地接口一样 3.新统一RPC协议的具体设计 -![image.png](/uploads/C260989EF084459183D08A935702670F/image.png) +![image.png](/uploads/4C8A111DDAE541A98FC023E445F56794/image.png) 协议头的字段使用pb v3版本定义,参见:[trpc.proto](../proto/trpc.proto)。 From ceac2853e4f713abd9ae7faa3b25a88f3783dfa9 Mon Sep 17 00:00:00 2001 From: tyriqchen Date: Fri, 30 Aug 2019 07:00:00 +0000 Subject: [PATCH 29/85] =?UTF-8?q?=E5=A2=9E=E5=8A=A0trans=5Finfo=E5=B7=B2?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84key=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proto/trpc.proto | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index 0699d98..b93a3d3 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -169,6 +169,9 @@ enum TrpcRetCode { TRPC_INVOKE_UNKNOWN_ERR = 999; } +// trans_info已使用的框架key,注意不要重复: +// "trpc-dyeing-key":染色key + // 请求协议头 message RequestProtocol { // 协议版本 @@ -204,7 +207,7 @@ message RequestProtocol { uint32 message_type = 8; // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc_开头 + // 1是框架层要透传的信息,key的名字要以trpc-开头 // 2是业务层要透传的信息,业务可以自行设置 map trans_info = 9; @@ -252,7 +255,7 @@ message ResponseProtocol { // 框架透传回来的信息key-value对, // 目前分两部分 - // 1是框架层透传回来的信息,key的名字要以trpc_开头 + // 1是框架层透传回来的信息,key的名字要以trpc-开头 // 2是业务层透传回来的信息,业务可以自行设置 map trans_info = 8; From 2175754ef1696464004fa1ef883301cb2341a8b4 Mon Sep 17 00:00:00 2001 From: suziliu Date: Sat, 21 Sep 2019 06:13:46 +0000 Subject: [PATCH 30/85] update RetCode and EncodeType --- proto/trpc.proto | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/proto/trpc.proto b/proto/trpc.proto index b93a3d3..0da8aa8 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -98,6 +98,11 @@ enum TrpcContentEncodeType { // json TRPC_JSON_ENCODE = 2; + // flatbuffer + TRPC_FLATBUFFER_ENCODE = 3; + + // 不序列化 + TRPC_NOOP_ENCODE = 4; } // trpc协议中data内容的压缩类型 @@ -142,6 +147,9 @@ enum TrpcRetCode { // 请求在服务端过载 TRPC_SERVER_OVERLOAD_ERR = 22; + // 服务端系统错误 + TRPC_SERVER_SYSTEM_ERR = 31; + // 客户端的错误码 // 主要分几类: // 1.超时,2.网络,3.协议,4.路由 @@ -165,6 +173,9 @@ enum TrpcRetCode { // 客户端选ip路由错误 TRPC_CLIENT_ROUTER_ERR = 131; + // 客户端网络错误 + TRPC_CLINET_NETWORK_ERR = 141; + // 未明确的错误 TRPC_INVOKE_UNKNOWN_ERR = 999; } From a26c7c157a3e9cb405ae2c30a5ef9e7c1550dbb9 Mon Sep 17 00:00:00 2001 From: suziliu Date: Sat, 21 Sep 2019 06:18:16 +0000 Subject: [PATCH 31/85] update --- proto/trpc.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/proto/trpc.proto b/proto/trpc.proto index 0da8aa8..43e18e6 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -88,6 +88,7 @@ enum TrpcMessageType { // trpc协议中data内容的编码类型 // 默认使用pb +// 目前约定0-127范围的取值为框架规范的序列化方式,框架使用 enum TrpcContentEncodeType { // pb TRPC_PROTO_ENCODE = 0; From 7e6b9c7de7a14e1967cc0c8a45be3df8b598d623 Mon Sep 17 00:00:00 2001 From: suziliu Date: Sat, 21 Sep 2019 06:21:12 +0000 Subject: [PATCH 32/85] update java package --- proto/trpc.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index 43e18e6..784c53c 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -3,7 +3,7 @@ syntax = "proto3"; package trpc; option go_package = "git.code.oa.com/trpc-go/trpc"; -option java_package = "com.tencent.trpc.codec.trpc.proto"; +option java_package = "com.tencent.trpc.rpc.standard.proto"; option java_outer_classname = "TRPCProtocol"; // 框架协议头里的魔数 From b507a2c660aadf8395673db107563a7590b9c960 Mon Sep 17 00:00:00 2001 From: suziliu Date: Sat, 21 Sep 2019 07:16:27 +0000 Subject: [PATCH 33/85] update java package --- proto/trpc.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index 784c53c..f216b8c 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -3,7 +3,7 @@ syntax = "proto3"; package trpc; option go_package = "git.code.oa.com/trpc-go/trpc"; -option java_package = "com.tencent.trpc.rpc.standard.proto"; +option java_package = "com.tencent.trpc.proto.standard.common"; option java_outer_classname = "TRPCProtocol"; // 框架协议头里的魔数 From b44cf9e70846260f791659b192a82c755ded7401 Mon Sep 17 00:00:00 2001 From: suziliu Date: Thu, 26 Sep 2019 03:22:31 +0000 Subject: [PATCH 34/85] update caller --- proto/trpc.proto | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index f216b8c..accf095 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -202,11 +202,12 @@ message RequestProtocol { uint32 timeout = 4; // 主调服务的名称 + // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 bytes caller = 5; // 被调服务的路由名称 - // 规范格式,trpc.应用名.服务名.pb的service名[.接口名] - // 接口可选 + // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] + // 前4段是必须有,接口可选。 bytes callee = 6; // 调用服务的接口名 From 662346024968c6029e983eb321f755f1093efba6 Mon Sep 17 00:00:00 2001 From: nickzydeng Date: Mon, 9 Dec 2019 06:46:17 +0000 Subject: [PATCH 35/85] docs: add auth/validation retcode --- proto/trpc.proto | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/proto/trpc.proto b/proto/trpc.proto index accf095..d643db1 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -151,6 +151,12 @@ enum TrpcRetCode { // 服务端系统错误 TRPC_SERVER_SYSTEM_ERR = 31; + // 服务端鉴权失败错误 + TRPC_SERVER_AUTH_ERR = 41; + + // 服务端请求参数自动校验失败错误 + TRPC_SERVER_VALIDATE_ERR = 51; + // 客户端的错误码 // 主要分几类: // 1.超时,2.网络,3.协议,4.路由 @@ -177,6 +183,9 @@ enum TrpcRetCode { // 客户端网络错误 TRPC_CLINET_NETWORK_ERR = 141; + // 客户端响应参数自动校验失败错误 + TRPC_CLIENT_VALIDATE_ERR = 151; + // 未明确的错误 TRPC_INVOKE_UNKNOWN_ERR = 999; } From 56e0c800adfa7874c60930b6409ada2ed4c2751b Mon Sep 17 00:00:00 2001 From: mingqiuliao Date: Thu, 26 Dec 2019 15:55:32 +0800 Subject: [PATCH 36/85] =?UTF-8?q?style:=20=E6=A0=BC=E5=BC=8F=E5=8C=96?= =?UTF-8?q?=E6=96=87=E4=BB=B6;=E4=BF=AE=E5=A4=8D=E6=8B=BC=E5=86=99?= =?UTF-8?q?=E9=94=99=E8=AF=AF;=E4=BF=AE=E5=A4=8D=20md=20=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/protocol_design.md | 43 ++++++++++++++++++++--------------------- proto/trpc.proto | 26 +++++++++++-------------- readme.md | 9 +++++---- 3 files changed, 37 insertions(+), 41 deletions(-) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index d573c85..37e4108 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -1,30 +1,29 @@ 1.RPC -RPC是远端过程调用的简称,其协议通常包含传输协议和编码协议,如下图: +RPC 是远端过程调用的简称,其协议通常包含传输协议和编码协议,如下图: ![rpc](images/rpc.png)​​ -其中传输协议指RPC header使用的协议,编码协议指RPC payload的协议。 - -2.新统一RPC协议设计上应具备的能力和诉求 - ---------------------|------------------ -向前兼容 |协议设计和实现上应具有可扩展性 -高性能 |协议的方案选型和具体实现上需要考虑性能问题 -RPC调用方式 |远程调用像调本地接口一样 -请求超时控制 |请求可以设置超时时间 -插件化支持多种编码协议 |协议上支持业务数据的序列化类型应该是多样的,比如protobuf/jce/json/… -支持压缩 |协议上应该支持可选择对业务编码后的数据进行压缩 -调用链信息的透传 |协议上应该提供服务调用链信息透传的能力 -染色key |协议上应该提供染色key在服务间透传的能力 -认证和鉴权 |协议上应该提供用户设置自定义鉴权信息的能力 -透传用户自定义元数据 |协议上应该支持用户设置自定义元数据和透传的能力 -流式请求 |协议上应该能解决大数据包传输的问题,和满足边请求边应答的流式场景 -... | - - -3.新统一RPC协议的具体设计 +其中传输协议指 RPC header 使用的协议,编码协议指 RPC payload 的协议。 + +2.新统一 RPC 协议设计上应具备的能力和诉求: + +| 能力 | 诉求 | +| ---------------------- | --------------------------------------------------------------------- | +| 向前兼容 | 协议设计和实现上应具有可扩展性 | +| 高性能 | 协议的方案选型和具体实现上需要考虑性能问题 | +| RPC调用方式 | 远程调用像调本地接口一样 | +| 请求超时控制 | 请求可以设置超时时间 | +| 插件化支持多种编码协议 | 协议上支持业务数据的序列化类型应该是多样的,比如:protobuf/jce/json/… | +| 支持压缩 | 协议上应该支持可选择对业务编码后的数据进行压缩 | +| 调用链信息的透传 | 协议上应该提供服务调用链信息透传的能力 | +| 染色key | 协议上应该提供染色key在服务间透传的能力 | +| 认证和鉴权 | 协议上应该提供用户设置自定义鉴权信息的能力 | +| 透传用户自定义元数据 | 协议上应该支持用户设置自定义元数据和透传的能力 | +| 流式请求 | 协议上应该能解决大数据包传输的问题,和满足边请求边应答的流式场景 | + +3.新统一 RPC 协议的具体设计 ![image.png](/uploads/4C8A111DDAE541A98FC023E445F56794/image.png) -协议头的字段使用pb v3版本定义,参见:[trpc.proto](../proto/trpc.proto)。 +协议头的字段使用 pb v3 版本定义,参见:[trpc.proto](../proto/trpc.proto)。 diff --git a/proto/trpc.proto b/proto/trpc.proto index d643db1..db464ea 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -8,10 +8,10 @@ option java_outer_classname = "TRPCProtocol"; // 框架协议头里的魔数 enum TrpcMagic { - //trpc 不用这个值,为了提供给pb工具生成代码 + // trpc不用这个值,为了提供给pb工具生成代码 TRPC_DEFAULT_NONE = 0x00; - //trpc协议默认使用这个魔数 + // trpc协议默认使用这个魔数 TRPC_MAGIC_VALUE = 0x930; } @@ -20,20 +20,20 @@ enum TrpcMagic { // 1. 一应一答模式的二进制数据帧类型 // 2. 流式模式的二进制数据帧类型 enum TrpcDataFrameType { - //trpc一应一答模式的二进制数据帧类型 + // trpc一应一答模式的二进制数据帧类型 TRPC_UNARY_FRAME = 0x00; - //trpc流式模式的二进制数据帧类型 + // trpc流式模式的二进制数据帧类型 TRPC_STREAM_FRAME = 0x01; } // trpc协议的二进制数据帧的状态 // 目前支持流式模式的二进制数据帧结束状态 enum TrpcDataFrameState { - //不包括任何状态 + // 不包括任何状态 TRPC_NO_STATE = 0x00; - //trpc流式模式下的结束状态 + // trpc流式模式下的结束状态 TRPC_STREAM_FINISH = 0x01; } @@ -41,7 +41,6 @@ enum TrpcDataFrameState { enum TrpcProtoVersion { // 默认版本 TRPC_PROTO_V1 = 0; - } // trpc协议中的调用类型 @@ -49,7 +48,7 @@ enum TrpcCallType { // 一应一答调用,包括同步、异步 TRPC_UNARY_CALL = 0; - // 单项调用 + // 单向调用 TRPC_ONEWAY_CALL = 1; // 客户端流式请求调用 @@ -60,13 +59,12 @@ enum TrpcCallType { // 客户端和服务端流式请求和回应 TRPC_BIDI_STREAM_CALL = 4; - } // trpc协议中的消息透传支持的类型 enum TrpcMessageType { - //trpc 不用这个值,为了提供给pb工具生成代码 + // trpc 不用这个值,为了提供给 pb 工具生成代码 TRPC_DEFAULT = 0x00; // 染色 @@ -83,12 +81,11 @@ enum TrpcMessageType { // set名 TRPC_SETNAME_MESSAGE = 0x10; - } -// trpc协议中data内容的编码类型 +// trpc协议中 data 内容的编码类型 // 默认使用pb -// 目前约定0-127范围的取值为框架规范的序列化方式,框架使用 +// 目前约定 0-127 范围的取值为框架规范的序列化方式,框架使用 enum TrpcContentEncodeType { // pb TRPC_PROTO_ENCODE = 0; @@ -106,7 +103,7 @@ enum TrpcContentEncodeType { TRPC_NOOP_ENCODE = 4; } -// trpc协议中data内容的压缩类型 +// trpc协议中 data 内容的压缩类型 // 默认使用不压缩 enum TrpcCompressType { // 默认不使用压缩 @@ -117,7 +114,6 @@ enum TrpcCompressType { // 使用snappy TRPC_SNAPPY_COMPRESS = 2; - } // 框架层接口调用的返回码定义 diff --git a/readme.md b/readme.md index ca6fcc0..8e1dbd0 100644 --- a/readme.md +++ b/readme.md @@ -1,9 +1,10 @@ -trpc统一协议的设计和定义 +trpc 统一协议的设计和定义 协议设计文档:[protocol_design.md](docs/protocol_design.md). 协议/常量/返回码定义:[trpc.proto](proto/trpc.proto). -协议中业务层在trans_info的key定义规范: -1.框架使用的key以trpc_开头,具体常量定义在框架代码中统一管理; -2.业务自定义key以app_开头,防止重复,不能以trpc开头; +协议中业务层在 `trans_info` 的 key 定义规范: + +- 框架使用的 key 以 `trpc_` 开头,具体常量定义在框架代码中统一管理; +- 业务自定义 key 以 `app_` 开头,防止重复,不能以 `trpc_` 开头; From d5ab4fe7330f37cbeb40c3ddf635d396e7a2132c Mon Sep 17 00:00:00 2001 From: mingqiuliao Date: Thu, 26 Dec 2019 21:01:20 +0800 Subject: [PATCH 37/85] =?UTF-8?q?fix:=20=E6=8B=BC=E5=86=99=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proto/trpc.proto | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index db464ea..e7e7e9e 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -124,7 +124,7 @@ enum TrpcRetCode { // 服务端的错误码 // 主要分几类: // 1.协议,2.service或者func路由,3.队列超时或过载 - // 其它带补充 + // 其它待补充 // 协议错误码 // 服务端解码错误 @@ -156,7 +156,7 @@ enum TrpcRetCode { // 客户端的错误码 // 主要分几类: // 1.超时,2.网络,3.协议,4.路由 - // 其它带补充 + // 其它待补充 // 超时错误码 // 请求在客户端调用超时 @@ -177,7 +177,7 @@ enum TrpcRetCode { TRPC_CLIENT_ROUTER_ERR = 131; // 客户端网络错误 - TRPC_CLINET_NETWORK_ERR = 141; + TRPC_CLIENT_NETWORK_ERR = 141; // 客户端响应参数自动校验失败错误 TRPC_CLIENT_VALIDATE_ERR = 151; From 9fe25704f2eb226858f1f26318b8338375d62667 Mon Sep 17 00:00:00 2001 From: nickzydeng Date: Sat, 22 Feb 2020 05:30:27 +0000 Subject: [PATCH 38/85] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=B8=8A?= =?UTF-8?q?=E6=B8=B8=E4=B8=BB=E5=8A=A8=E6=96=AD=E5=BC=80=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=EF=BC=8C=E6=8F=90=E5=89=8D=E5=8F=96=E6=B6=88=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=A0=81=20161?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proto/trpc.proto | 3 +++ 1 file changed, 3 insertions(+) diff --git a/proto/trpc.proto b/proto/trpc.proto index d643db1..8bb1de5 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -186,6 +186,9 @@ enum TrpcRetCode { // 客户端响应参数自动校验失败错误 TRPC_CLIENT_VALIDATE_ERR = 151; + // 上游主动断开连接,提前取消请求错误 + TRPC_CLIENT_CANCELED_ERR = 161; + // 未明确的错误 TRPC_INVOKE_UNKNOWN_ERR = 999; } From 0b1bd99bbddbdbb186c7e47a41ea7dc0d314ea20 Mon Sep 17 00:00:00 2001 From: suziliu Date: Mon, 11 May 2020 16:29:09 +0800 Subject: [PATCH 39/85] feature: trpc protocol support streaming --- proto/trpc.proto | 105 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/proto/trpc.proto b/proto/trpc.proto index 97af213..b884ef2 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -27,6 +27,7 @@ enum TrpcDataFrameType { TRPC_STREAM_FRAME = 0x01; } +// 此类型后续不再使用,改成下面的TrpcStreamFrameType // trpc协议的二进制数据帧的状态 // 目前支持流式模式的二进制数据帧结束状态 enum TrpcDataFrameState { @@ -37,6 +38,48 @@ enum TrpcDataFrameState { TRPC_STREAM_FINISH = 0x01; } +// trpc协议流式的二进制数据帧类型 +// 目前流式帧类型分5种:INIT/DATA/FEEDBACK/CLOSE/RESET,其中CLOSE帧不带业务数据 +// INIT帧:FIXHEADER + 包头(请求头/响应头) +// DATA帧:FIXHEADER + body +// FEEDBACK帧:FIXHEADER + 流控帧头 +// CLOSE帧:FIXHEADER + 请求头(响应头) +// RESET:FIXHEADER + RESET帧头 +enum TrpcStreamFrameType { + // 流式INIT帧类型 + TRPC_STREAM_FRAME_INIT = 0x00; + + // 流式DATA帧类型 + TRPC_STREAM_FRAME_DATA = 0x01; + + // 流式FEEDBACK帧类型 + TRPC_STREAM_FRAME_FEEDBACK = 0x02; + + // 流式CLOSE帧类型 + TRPC_STREAM_FRAME_CLOSE = 0x03; + + // 流式RESET帧类型 + TRPC_STREAM_FRAME_RESET = 0x04; +} + +// trpc流式的流控帧头消息定义 +message TrpcStreamFeedBack { + // 本端生产值,传给对端 + uint64 produce = 1; + + // 本端消费值,传给对端 + uint64 consume = 2; +} + +// trpc流式的RESET帧头消息定义 +message TrpcStreamReset { + // reset信息码 + int32 ret = 1; + + // reset信息描述 + bytes msg = 2; +} + // trpc协议版本 enum TrpcProtoVersion { // 默认版本 @@ -184,9 +227,71 @@ enum TrpcRetCode { // 上游主动断开连接,提前取消请求错误 TRPC_CLIENT_CANCELED_ERR = 161; + + // 服务端流式的错误码 + // 主要分几类: + // 1.网络,2.编解码,3.写,4.读 + // 其它待补充 + + // 服务端流式网络错误, 详细错误码需要在实现过程中再梳理 + TRPC_STREAM_SERVER_NETWORK_ERR = 201; + + // 服务端流式传输错误, 详细错误码需要在实现过程中再梳理 + // 比如:流式空闲超时错误,流消息过大等 + TRPC_STREAM_SERVER_IDLE_TIMEOUT_ERR = 211; + TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR = 212; + + // 服务端流式编码错误 + TRPC_STREAM_SERVER_ENCODE_ERR = 221; + // 客户端流式编解码错误 + TRPC_STREAM_SERVER_DECODE_ERR = 222; + + // 服务端流式写错误, 详细错误码需要在实现过程中再梳理 + TRPC_STREAM_SERVER_WRITE_END = 231; + TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR = 232; + TRPC_STREAM_SERVER_WRITE_CLOSE_ERR = 233; + TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR = 234; + + // 服务端流式读错误, 详细错误码需要在实现过程中再梳理 + TRPC_STREAM_SERVER_READ_END = 251; + TRPC_STREAM_SERVER_READ_CLOSE_ERR = 252; + TRPC_STREAM_SERVER_READ_EMPTY_ERR = 253; + TRPC_STREAM_SERVER_READ_TIMEOUT_ERR = 254; + + // 客户端流式的错误码 + // 主要分几类: + // 1.网络,2.编解码,3.写,4.读 + // 其它待补充 + + // 客户端流式网络错误, 详细错误码需要在实现过程中再梳理 + TRPC_STREAM_CLIENT_NETWORK_ERR = 301; + + // 客户端流式传输错误, 详细错误码需要在实现过程中再梳理 + // 比如:流式空闲超时错误,流消息过大等 + TRPC_STREAM_CLIENT_IDLE_TIMEOUT_ERR = 311; + TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR = 312; + + // 客户端流式编码错误 + TRPC_STREAM_CLIENT_ENCODE_ERR = 321; + // 客户端流式编解码错误 + TRPC_STREAM_CLIENT_DECODE_ERR = 322; + + // 客户端流式写错误, 详细错误码需要在实现过程中再梳理 + TRPC_STREAM_CLIENT_WRITE_END = 331; + TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR = 332; + TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR = 333; + TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR = 334; + + // 客户端流式读错误, 详细错误码需要在实现过程中再梳理 + TRPC_STREAM_CLIENT_READ_END = 351; + TRPC_STREAM_CLIENT_READ_CLOSE_ERR = 352; + TRPC_STREAM_CLIENT_READ_EMPTY_ERR = 353; + TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR = 354; // 未明确的错误 TRPC_INVOKE_UNKNOWN_ERR = 999; + // 未明确的错误 + TRPC_STREAM_UNKNOWN_ERR = 1000; } // trans_info已使用的框架key,注意不要重复: From 2cf5b5a6c35b4c7ddeafc30b724b53f3e9caf91f Mon Sep 17 00:00:00 2001 From: suziliu Date: Mon, 11 May 2020 09:26:50 +0000 Subject: [PATCH 40/85] doc: update --- docs/protocol_design.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index 37e4108..d75d668 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -24,6 +24,16 @@ RPC 是远端过程调用的简称,其协议通常包含传输协议和编码 3.新统一 RPC 协议的具体设计 +支持流式前的trpc协议设计: + ![image.png](/uploads/4C8A111DDAE541A98FC023E445F56794/image.png) +支持流式后的trpc协议设计: + +![image.png](/uploads/915A9EB1921F4A9D99AAC18816B255FA/image.png) + +主要改动: +1. 固定帧头中的1字节数据协议状态,含义修改,变成流式帧类型 +2. 流式id从2字节变成4字节,保留字段由原来的4字节变成2字节 + 协议头的字段使用 pb v3 版本定义,参见:[trpc.proto](../proto/trpc.proto)。 From b335cf3d3eceb4634988ad4ec32a2240172315d2 Mon Sep 17 00:00:00 2001 From: suziliu Date: Wed, 13 May 2020 12:03:29 +0800 Subject: [PATCH 41/85] feature: trpc protocol support streaming --- proto/trpc.proto | 135 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 108 insertions(+), 27 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index b884ef2..ba19e48 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -27,43 +27,102 @@ enum TrpcDataFrameType { TRPC_STREAM_FRAME = 0x01; } -// 此类型后续不再使用,改成下面的TrpcStreamFrameType +// 此类型删掉,改成下面的TrpcStreamFrameType // trpc协议的二进制数据帧的状态 // 目前支持流式模式的二进制数据帧结束状态 -enum TrpcDataFrameState { - // 不包括任何状态 - TRPC_NO_STATE = 0x00; - - // trpc流式模式下的结束状态 - TRPC_STREAM_FINISH = 0x01; -} +//enum TrpcDataFrameState { +// // 不包括任何状态 +// TRPC_NO_STATE = 0x00; +// +// // trpc流式模式下的结束状态 +// TRPC_STREAM_FINISH = 0x01; +//} // trpc协议流式的二进制数据帧类型 -// 目前流式帧类型分5种:INIT/DATA/FEEDBACK/CLOSE/RESET,其中CLOSE帧不带业务数据 -// INIT帧:FIXHEADER + 包头(请求头/响应头) -// DATA帧:FIXHEADER + body -// FEEDBACK帧:FIXHEADER + 流控帧头 -// CLOSE帧:FIXHEADER + 请求头(响应头) -// RESET:FIXHEADER + RESET帧头 +// 目前流式帧类型分4种:INIT/DATA/FEEDBACK/CLOSE,其中CLOSE帧不带业务数据 +// INIT帧:FIXHEADER + TrpcStreamInitMeta +// DATA帧:FIXHEADER + body(业务序列化的数据) +// FEEDBACK帧:FIXHEADER + TrpcStreamFeedBackMeta(触发策略,高低水位+定时) +// CLOSE帧:FIXHEADER + TrpcStreamCloseMeta +// 连接和流空闲超时的回收机制不考虑 enum TrpcStreamFrameType { + // 一应一答的默认取值 + TRPC_UNARY = 0x00; + // 流式INIT帧类型 - TRPC_STREAM_FRAME_INIT = 0x00; + TRPC_STREAM_FRAME_INIT = 0x01; // 流式DATA帧类型 - TRPC_STREAM_FRAME_DATA = 0x01; + TRPC_STREAM_FRAME_DATA = 0x02; // 流式FEEDBACK帧类型 - TRPC_STREAM_FRAME_FEEDBACK = 0x02; + TRPC_STREAM_FRAME_FEEDBACK = 0x03; // 流式CLOSE帧类型 - TRPC_STREAM_FRAME_CLOSE = 0x03; - - // 流式RESET帧类型 - TRPC_STREAM_FRAME_RESET = 0x04; + TRPC_STREAM_FRAME_CLOSE = 0x04; } // trpc流式的流控帧头消息定义 -message TrpcStreamFeedBack { +message TrpcStreamInitMeta { + // init请求元信息 + TrpcStreamInitRequestMeta request_meta = 1; + + // init响应元信息 + TrpcStreamInitResponsetMeta response_meta = 2; + + // 本端stream buff的大小 + uint32 recv_buff_size = 3; + + // 请求数据的序列化类型 + // 比如: proto/jce/json, 默认proto + // 具体值与TrpcContentEncodeType对应 + uint32 content_type = 4; + + // 请求数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + // 具体值与TrpcCompressType对应 + uint32 content_encoding = 5; +} + +// trpc流式init头的请求元信息 +message TrpcStreamInitRequestMeta { + // 主调服务的名称 + // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + bytes caller = 1; + + // 被调服务的路由名称 + // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] + // 前4段是必须有,接口可选。 + bytes callee = 2; + + // 调用服务的接口名 + // 规范格式: /package.Service名称/接口名 + bytes func = 3; + + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + uint32 message_type = 4; + + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc-开头 + // 2是业务层要透传的信息,业务可以自行设置 + map trans_info = 5; +}; + +// trpc流式init头的响应元信息 +message TrpcStreamInitResponsetMeta { + // 请求在框架层的错误返回码 + // 具体值与TrpcRetCode对应 + int32 ret = 1; + + // 调用结果信息描述 + // 失败的时候用 + bytes error_msg = 2; +}; + +// trpc流式的流控帧头元信息定义 +message TrpcStreamFeedBackMeta { // 本端生产值,传给对端 uint64 produce = 1; @@ -71,13 +130,35 @@ message TrpcStreamFeedBack { uint64 consume = 2; } +// trpc流式关闭类型 +enum TrpcStreamCloseType { + // 正常单向流关闭 + TRPC_STREAM_CLOSE = 0; + + // 异常关闭双向流 + TRPC_STREAM_RESET = 1; +} + // trpc流式的RESET帧头消息定义 -message TrpcStreamReset { +message TrpcStreamCloseMeta { + // 关闭的类型,关闭一端,还是全部关闭 + int32 close_type = 1; + // reset信息码 - int32 ret = 1; + int32 ret = 2; // reset信息描述 - bytes msg = 2; + bytes msg = 3; + + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + uint32 message_type = 4; + + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc-开头 + // 2是业务层要透传的信息,业务可以自行设置 + map trans_info = 5; } // trpc协议版本 @@ -304,7 +385,7 @@ message RequestProtocol { uint32 version = 1; // 请求的调用类型 - // 比如: 普通调用,单向调用,流式调用 + // 比如: 普通调用,单向调用 // 具体值与TrpcCallType对应 uint32 call_type = 2; @@ -355,7 +436,7 @@ message ResponseProtocol { uint32 version = 1; // 请求的调用类型 - // 比如: 普通调用,单向调用,流式调用 + // 比如: 普通调用,单向调用 // 具体值与TrpcCallType对应 uint32 call_type = 2; From 5a1d5e15c7c0b520bc53b6729b7cd0573909f8a3 Mon Sep 17 00:00:00 2001 From: suziliu Date: Thu, 14 May 2020 14:32:23 +0800 Subject: [PATCH 42/85] feature: trpc protocol support streaming --- proto/trpc.proto | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index ba19e48..b4b39d1 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -144,10 +144,10 @@ message TrpcStreamCloseMeta { // 关闭的类型,关闭一端,还是全部关闭 int32 close_type = 1; - // reset信息码 + // close返回码 int32 ret = 2; - // reset信息描述 + // close信息描述 bytes msg = 3; // 框架信息透传的消息类型 @@ -175,14 +175,14 @@ enum TrpcCallType { // 单向调用 TRPC_ONEWAY_CALL = 1; - // 客户端流式请求调用 - TRPC_CLIENT_STREAM_CALL = 2; + // 客户端流式请求调用, 删除 + //TRPC_CLIENT_STREAM_CALL = 2; - // 服务端流式回应 - TRPC_SERVER_STREAM_CALL = 3; + // 服务端流式回应,删除 + //TRPC_SERVER_STREAM_CALL = 3; - // 客户端和服务端流式请求和回应 - TRPC_BIDI_STREAM_CALL = 4; + // 客户端和服务端流式请求和回应,删除 + //TRPC_BIDI_STREAM_CALL = 4; } // trpc协议中的消息透传支持的类型 @@ -318,9 +318,8 @@ enum TrpcRetCode { TRPC_STREAM_SERVER_NETWORK_ERR = 201; // 服务端流式传输错误, 详细错误码需要在实现过程中再梳理 - // 比如:流式空闲超时错误,流消息过大等 - TRPC_STREAM_SERVER_IDLE_TIMEOUT_ERR = 211; - TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR = 212; + // 比如:流消息过大等 + TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR = 211; // 服务端流式编码错误 TRPC_STREAM_SERVER_ENCODE_ERR = 221; @@ -348,9 +347,8 @@ enum TrpcRetCode { TRPC_STREAM_CLIENT_NETWORK_ERR = 301; // 客户端流式传输错误, 详细错误码需要在实现过程中再梳理 - // 比如:流式空闲超时错误,流消息过大等 - TRPC_STREAM_CLIENT_IDLE_TIMEOUT_ERR = 311; - TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR = 312; + // 比如:流消息过大等 + TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR = 311; // 客户端流式编码错误 TRPC_STREAM_CLIENT_ENCODE_ERR = 321; From afe56a00b3c368254dd4df3324d3659efbbf2113 Mon Sep 17 00:00:00 2001 From: suziliu Date: Thu, 14 May 2020 06:43:34 +0000 Subject: [PATCH 43/85] doc: update trpc streaming --- docs/protocol_design.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index d75d668..c536c02 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -30,10 +30,12 @@ RPC 是远端过程调用的简称,其协议通常包含传输协议和编码 支持流式后的trpc协议设计: -![image.png](/uploads/915A9EB1921F4A9D99AAC18816B255FA/image.png) +![image.png](/uploads/A855B7D9FDBF45D59E51A992EB752BC7/image.png) + 主要改动: 1. 固定帧头中的1字节数据协议状态,含义修改,变成流式帧类型 -2. 流式id从2字节变成4字节,保留字段由原来的4字节变成2字节 +2. 流式id从2字节变成4字节,保留字段由原来的4字节变成2字节{{image.png}} +3. 流式协议下固定帧头的包头大小设置为0 协议头的字段使用 pb v3 版本定义,参见:[trpc.proto](../proto/trpc.proto)。 From 5e248a973c45ca63365abb33bc5650d9ba17ec25 Mon Sep 17 00:00:00 2001 From: suziliu Date: Thu, 14 May 2020 06:45:40 +0000 Subject: [PATCH 44/85] docs:update trpc streaming --- docs/protocol_design.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index c536c02..7d00c6d 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -30,7 +30,7 @@ RPC 是远端过程调用的简称,其协议通常包含传输协议和编码 支持流式后的trpc协议设计: -![image.png](/uploads/A855B7D9FDBF45D59E51A992EB752BC7/image.png) +![image.png](/uploads/CC1AC8AB1EBA49BEA7FC28843600AA10/image.png) 主要改动: From c27ad957139fe5cf6a7292d7af66c26311e5769a Mon Sep 17 00:00:00 2001 From: suziliu Date: Thu, 14 May 2020 06:51:42 +0000 Subject: [PATCH 45/85] doc:update --- docs/protocol_design.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index 7d00c6d..28d6d8f 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -35,7 +35,7 @@ RPC 是远端过程调用的简称,其协议通常包含传输协议和编码 主要改动: 1. 固定帧头中的1字节数据协议状态,含义修改,变成流式帧类型 -2. 流式id从2字节变成4字节,保留字段由原来的4字节变成2字节{{image.png}} +2. 流式id从2字节变成4字节,保留字段由原来的4字节变成2字节 3. 流式协议下固定帧头的包头大小设置为0 协议头的字段使用 pb v3 版本定义,参见:[trpc.proto](../proto/trpc.proto)。 From 15449002f3548fcafe20371b31981be943fdc032 Mon Sep 17 00:00:00 2001 From: aaronbai Date: Tue, 16 Jun 2020 14:16:14 +0800 Subject: [PATCH 46/85] typofix --- proto/trpc.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index b4b39d1..2fb2e1a 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -68,7 +68,7 @@ message TrpcStreamInitMeta { TrpcStreamInitRequestMeta request_meta = 1; // init响应元信息 - TrpcStreamInitResponsetMeta response_meta = 2; + TrpcStreamInitResponseMeta response_meta = 2; // 本端stream buff的大小 uint32 recv_buff_size = 3; @@ -111,7 +111,7 @@ message TrpcStreamInitRequestMeta { }; // trpc流式init头的响应元信息 -message TrpcStreamInitResponsetMeta { +message TrpcStreamInitResponseMeta { // 请求在框架层的错误返回码 // 具体值与TrpcRetCode对应 int32 ret = 1; From 05567b12b5183eb80c16ad8f83950d4f61185557 Mon Sep 17 00:00:00 2001 From: suwenkuang Date: Mon, 13 Jul 2020 10:35:10 +0800 Subject: [PATCH 47/85] =?UTF-8?q?proto:=20=E6=9B=B4=E6=96=B0trpc.proto?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0trans=5Finfo=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=BC=9A=E5=85=A8=E9=93=BE=E8=B7=AF=E9=80=8F=E4=BC=A0=E7=9A=84?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proto/trpc.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/proto/trpc.proto b/proto/trpc.proto index 2fb2e1a..80f8724 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -107,6 +107,7 @@ message TrpcStreamInitRequestMeta { // 框架透传的信息key-value对,目前分两部分 // 1是框架层要透传的信息,key的名字要以trpc-开头 // 2是业务层要透传的信息,业务可以自行设置 + // 注意: trans_info中的key-value对会全链路透传,业务请谨慎使用! map trans_info = 5; }; From bcd11f8058cfb5c283f589abaa821dbe174bc624 Mon Sep 17 00:00:00 2001 From: misakachen Date: Wed, 5 Aug 2020 03:29:24 +0000 Subject: [PATCH 48/85] add TRPC_ZLIB_COMPRESS --- proto/trpc.proto | 3 +++ 1 file changed, 3 insertions(+) diff --git a/proto/trpc.proto b/proto/trpc.proto index 80f8724..84b06a2 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -239,6 +239,9 @@ enum TrpcCompressType { // 使用snappy TRPC_SNAPPY_COMPRESS = 2; + + // 使用zlib + TRPC_ZLIB_COMPRESS = 3; } // 框架层接口调用的返回码定义 From b858a2a83dc17b43f9fd935bbd24186dce019501 Mon Sep 17 00:00:00 2001 From: jessemjchen Date: Tue, 24 Nov 2020 14:14:33 +0800 Subject: [PATCH 49/85] =?UTF-8?q?feat:=20TrpcStreamCloseMeta=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=AD=97=E6=AE=B5func=5Fret=EF=BC=8C=E4=BB=A3?= =?UTF-8?q?=E8=A1=A8=E4=B8=9A=E5=8A=A1=E5=B1=82=E7=9A=84=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proto/trpc.proto | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/proto/trpc.proto b/proto/trpc.proto index 84b06a2..9e25470 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -146,6 +146,7 @@ message TrpcStreamCloseMeta { int32 close_type = 1; // close返回码 + // 代表框架层的错误 int32 ret = 2; // close信息描述 @@ -160,6 +161,11 @@ message TrpcStreamCloseMeta { // 1是框架层要透传的信息,key的名字要以trpc-开头 // 2是业务层要透传的信息,业务可以自行设置 map trans_info = 5; + + // 接口的错误返回码 + // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + int32 func_ret = 6; + } // trpc协议版本 From 29808fba592ade743b26e5f1c892e964b8a53c13 Mon Sep 17 00:00:00 2001 From: jessemjchen Date: Thu, 14 Jan 2021 15:17:16 +0800 Subject: [PATCH 50/85] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E6=B5=81?= =?UTF-8?q?=E6=8E=A7=E7=9B=B8=E5=85=B3=E5=AD=97=E6=AE=B5=E5=90=AB=E4=B9=89?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proto/trpc.proto | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index 9e25470..616bb7d 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -70,8 +70,8 @@ message TrpcStreamInitMeta { // init响应元信息 TrpcStreamInitResponseMeta response_meta = 2; - // 本端stream buff的大小 - uint32 recv_buff_size = 3; + // 由接收端告知发送端初始的发送窗口大小 + uint32 init_window_size = 3; // 请求数据的序列化类型 // 比如: proto/jce/json, 默认proto @@ -124,11 +124,8 @@ message TrpcStreamInitResponseMeta { // trpc流式的流控帧头元信息定义 message TrpcStreamFeedBackMeta { - // 本端生产值,传给对端 - uint64 produce = 1; - - // 本端消费值,传给对端 - uint64 consume = 2; + // 增加的窗口大小 + uint32 window_size_increment = 1; } // trpc流式关闭类型 From dfda0ef803c8d13244c9abca97fdc28f38694679 Mon Sep 17 00:00:00 2001 From: treycheng Date: Mon, 1 Feb 2021 14:39:04 +0800 Subject: [PATCH 51/85] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0xml=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8C=96=E5=AF=B9=E5=BA=94=E5=AD=97=E6=AE=B5TRPC=5FXM?= =?UTF-8?q?L=5FENCODE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proto/trpc.proto | 141 ++++++++++++++++++++++++----------------------- 1 file changed, 72 insertions(+), 69 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index 616bb7d..f8946ec 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -10,7 +10,7 @@ option java_outer_classname = "TRPCProtocol"; enum TrpcMagic { // trpc不用这个值,为了提供给pb工具生成代码 TRPC_DEFAULT_NONE = 0x00; - + // trpc协议默认使用这个魔数 TRPC_MAGIC_VALUE = 0x930; } @@ -22,7 +22,7 @@ enum TrpcMagic { enum TrpcDataFrameType { // trpc一应一答模式的二进制数据帧类型 TRPC_UNARY_FRAME = 0x00; - + // trpc流式模式的二进制数据帧类型 TRPC_STREAM_FRAME = 0x01; } @@ -33,7 +33,7 @@ enum TrpcDataFrameType { //enum TrpcDataFrameState { // // 不包括任何状态 // TRPC_NO_STATE = 0x00; -// +// // // trpc流式模式下的结束状态 // TRPC_STREAM_FINISH = 0x01; //} @@ -51,7 +51,7 @@ enum TrpcStreamFrameType { // 流式INIT帧类型 TRPC_STREAM_FRAME_INIT = 0x01; - + // 流式DATA帧类型 TRPC_STREAM_FRAME_DATA = 0x02; @@ -64,7 +64,7 @@ enum TrpcStreamFrameType { // trpc流式的流控帧头消息定义 message TrpcStreamInitMeta { - // init请求元信息 + // init请求元信息 TrpcStreamInitRequestMeta request_meta = 1; // init响应元信息 @@ -72,12 +72,12 @@ message TrpcStreamInitMeta { // 由接收端告知发送端初始的发送窗口大小 uint32 init_window_size = 3; - + // 请求数据的序列化类型 // 比如: proto/jce/json, 默认proto // 具体值与TrpcContentEncodeType对应 uint32 content_type = 4; - + // 请求数据使用的压缩方式 // 比如: gzip/snappy/..., 默认不使用 // 具体值与TrpcCompressType对应 @@ -89,12 +89,12 @@ message TrpcStreamInitRequestMeta { // 主调服务的名称 // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 bytes caller = 1; - + // 被调服务的路由名称 // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] // 前4段是必须有,接口可选。 bytes callee = 2; - + // 调用服务的接口名 // 规范格式: /package.Service名称/接口名 bytes func = 3; @@ -103,7 +103,7 @@ message TrpcStreamInitRequestMeta { // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 // 具体值与TrpcMessageType对应 uint32 message_type = 4; - + // 框架透传的信息key-value对,目前分两部分 // 1是框架层要透传的信息,key的名字要以trpc-开头 // 2是业务层要透传的信息,业务可以自行设置 @@ -116,14 +116,14 @@ message TrpcStreamInitResponseMeta { // 请求在框架层的错误返回码 // 具体值与TrpcRetCode对应 int32 ret = 1; - + // 调用结果信息描述 // 失败的时候用 bytes error_msg = 2; }; // trpc流式的流控帧头元信息定义 -message TrpcStreamFeedBackMeta { +message TrpcStreamFeedBackMeta { // 增加的窗口大小 uint32 window_size_increment = 1; } @@ -132,20 +132,20 @@ message TrpcStreamFeedBackMeta { enum TrpcStreamCloseType { // 正常单向流关闭 TRPC_STREAM_CLOSE = 0; - + // 异常关闭双向流 TRPC_STREAM_RESET = 1; } // trpc流式的RESET帧头消息定义 -message TrpcStreamCloseMeta { +message TrpcStreamCloseMeta { // 关闭的类型,关闭一端,还是全部关闭 int32 close_type = 1; // close返回码 // 代表框架层的错误 int32 ret = 2; - + // close信息描述 bytes msg = 3; @@ -153,7 +153,7 @@ message TrpcStreamCloseMeta { // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 // 具体值与TrpcMessageType对应 uint32 message_type = 4; - + // 框架透传的信息key-value对,目前分两部分 // 1是框架层要透传的信息,key的名字要以trpc-开头 // 2是业务层要透传的信息,业务可以自行设置 @@ -175,38 +175,38 @@ enum TrpcProtoVersion { enum TrpcCallType { // 一应一答调用,包括同步、异步 TRPC_UNARY_CALL = 0; - + // 单向调用 TRPC_ONEWAY_CALL = 1; - + // 客户端流式请求调用, 删除 //TRPC_CLIENT_STREAM_CALL = 2; - + // 服务端流式回应,删除 //TRPC_SERVER_STREAM_CALL = 3; - + // 客户端和服务端流式请求和回应,删除 //TRPC_BIDI_STREAM_CALL = 4; } // trpc协议中的消息透传支持的类型 enum TrpcMessageType { - + // trpc 不用这个值,为了提供给 pb 工具生成代码 TRPC_DEFAULT = 0x00; - + // 染色 TRPC_DYEING_MESSAGE = 0x01; - + // 调用链 TRPC_TRACE_MESSAGE = 0x02; - + // 多环境 TRPC_MULTI_ENV_MESSAGE = 0x04; - + // 灰度 TRPC_GRID_MESSAGE = 0x08; - + // set名 TRPC_SETNAME_MESSAGE = 0x10; } @@ -217,18 +217,21 @@ enum TrpcMessageType { enum TrpcContentEncodeType { // pb TRPC_PROTO_ENCODE = 0; - + // jce TRPC_JCE_ENCODE = 1; - + // json TRPC_JSON_ENCODE = 2; - + // flatbuffer TRPC_FLATBUFFER_ENCODE = 3; // 不序列化 TRPC_NOOP_ENCODE = 4; + + // xml + TRPC_XML_ENCODE = 5; } // trpc协议中 data 内容的压缩类型 @@ -236,13 +239,13 @@ enum TrpcContentEncodeType { enum TrpcCompressType { // 默认不使用压缩 TRPC_DEFAULT_COMPRESS = 0; - + // 使用gzip TRPC_GZIP_COMPRESS = 1; - + // 使用snappy TRPC_SNAPPY_COMPRESS = 2; - + // 使用zlib TRPC_ZLIB_COMPRESS = 3; } @@ -251,68 +254,68 @@ enum TrpcCompressType { enum TrpcRetCode { // 调用成功 TRPC_INVOKE_SUCCESS = 0; - + // 服务端的错误码 // 主要分几类: // 1.协议,2.service或者func路由,3.队列超时或过载 // 其它待补充 - + // 协议错误码 // 服务端解码错误 TRPC_SERVER_DECODE_ERR = 1; // 服务端编码错误 TRPC_SERVER_ENCODE_ERR = 2; - + // service或者func路由错误码 // 服务端没有调用相应的service实现 TRPC_SERVER_NOSERVICE_ERR = 11; // 服务端没有调用相应的接口实现 TRPC_SERVER_NOFUNC_ERR = 12; - + // 队列超时或过载错误码 // 请求在服务端超时 TRPC_SERVER_TIMEOUT_ERR = 21; // 请求在服务端过载 TRPC_SERVER_OVERLOAD_ERR = 22; - + // 服务端系统错误 TRPC_SERVER_SYSTEM_ERR = 31; - + // 服务端鉴权失败错误 TRPC_SERVER_AUTH_ERR = 41; - + // 服务端请求参数自动校验失败错误 TRPC_SERVER_VALIDATE_ERR = 51; - + // 客户端的错误码 // 主要分几类: // 1.超时,2.网络,3.协议,4.路由 // 其它待补充 - + // 超时错误码 // 请求在客户端调用超时 TRPC_CLIENT_INVOKE_TIMEOUT_ERR = 101; - + // 网络相关错误码 // 客户端连接错误 TRPC_CLIENT_CONNECT_ERR = 111; - + // 协议相关错误码 // 客户端编码错误 TRPC_CLIENT_ENCODE_ERR = 121; // 客户端解码错误 TRPC_CLIENT_DECODE_ERR = 122; - + // 路由相关错误码 // 客户端选ip路由错误 TRPC_CLIENT_ROUTER_ERR = 131; - + // 客户端网络错误 TRPC_CLIENT_NETWORK_ERR = 141; - + // 客户端响应参数自动校验失败错误 TRPC_CLIENT_VALIDATE_ERR = 151; - + // 上游主动断开连接,提前取消请求错误 TRPC_CLIENT_CANCELED_ERR = 161; @@ -373,7 +376,7 @@ enum TrpcRetCode { TRPC_STREAM_CLIENT_READ_CLOSE_ERR = 352; TRPC_STREAM_CLIENT_READ_EMPTY_ERR = 353; TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR = 354; - + // 未明确的错误 TRPC_INVOKE_UNKNOWN_ERR = 999; // 未明确的错误 @@ -387,47 +390,47 @@ enum TrpcRetCode { message RequestProtocol { // 协议版本 // 具体值与TrpcProtoVersion对应 - uint32 version = 1; - + uint32 version = 1; + // 请求的调用类型 // 比如: 普通调用,单向调用 // 具体值与TrpcCallType对应 uint32 call_type = 2; - + // 请求唯一id uint32 request_id = 3; - + // 请求的超时时间,单位ms uint32 timeout = 4; - + // 主调服务的名称 // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 bytes caller = 5; - + // 被调服务的路由名称 // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] // 前4段是必须有,接口可选。 bytes callee = 6; - + // 调用服务的接口名 // 规范格式: /package.Service名称/接口名 bytes func = 7; - + // 框架信息透传的消息类型 // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 // 具体值与TrpcMessageType对应 uint32 message_type = 8; - + // 框架透传的信息key-value对,目前分两部分 // 1是框架层要透传的信息,key的名字要以trpc-开头 // 2是业务层要透传的信息,业务可以自行设置 map trans_info = 9; - + // 请求数据的序列化类型 // 比如: proto/jce/json, 默认proto // 具体值与TrpcContentEncodeType对应 uint32 content_type = 10; - + // 请求数据使用的压缩方式 // 比如: gzip/snappy/..., 默认不使用 // 具体值与TrpcCompressType对应 @@ -438,44 +441,44 @@ message RequestProtocol { message ResponseProtocol { // 协议版本 // 具体值与TrpcProtoVersion对应 - uint32 version = 1; - + uint32 version = 1; + // 请求的调用类型 // 比如: 普通调用,单向调用 // 具体值与TrpcCallType对应 uint32 call_type = 2; - + // 请求唯一id uint32 request_id = 3; - + // 请求在框架层的错误返回码 // 具体值与TrpcRetCode对应 int32 ret = 4; - + // 接口的错误返回码 // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 int32 func_ret = 5; - + // 调用结果信息描述 // 失败的时候用 bytes error_msg = 6; - + // 框架信息透传的消息类型 // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 // 具体值与TrpcMessageType对应 uint32 message_type = 7; - + // 框架透传回来的信息key-value对, // 目前分两部分 // 1是框架层透传回来的信息,key的名字要以trpc-开头 // 2是业务层透传回来的信息,业务可以自行设置 map trans_info = 8; - + // 响应数据的编码类型 // 比如: proto/jce/json, 默认proto // 具体值与TrpcContentEncodeType对应 uint32 content_type = 9; - + // 响应数据使用的压缩方式 // 比如: gzip/snappy/..., 默认不使用 // 具体值与TrpcCompressType对应 From db6d665d9dc2efb2391202984c1df9c37eda406c Mon Sep 17 00:00:00 2001 From: cooperyan Date: Fri, 3 Sep 2021 17:42:20 +0800 Subject: [PATCH 52/85] add limiter errors. --story=868056107 --- proto/trpc.proto | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/proto/trpc.proto b/proto/trpc.proto index f8946ec..68ea4bf 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -277,6 +277,9 @@ enum TrpcRetCode { TRPC_SERVER_TIMEOUT_ERR = 21; // 请求在服务端过载 TRPC_SERVER_OVERLOAD_ERR = 22; + // 请求在服务端被限流 + TRPC_SERVER_LIMITED_ERR = 23; + // 服务端系统错误 TRPC_SERVER_SYSTEM_ERR = 31; @@ -306,6 +309,10 @@ enum TrpcRetCode { // 客户端解码错误 TRPC_CLIENT_DECODE_ERR = 122; + // 请求被客户端限流 + TRPC_CLIENT_LIMITED_ERR = 123; + + // 路由相关错误码 // 客户端选ip路由错误 TRPC_CLIENT_ROUTER_ERR = 131; From 9518a494a2d6534f8ddba2f65f5157c881a99f49 Mon Sep 17 00:00:00 2001 From: suziliu Date: Wed, 8 Dec 2021 11:46:42 +0800 Subject: [PATCH 53/85] =?UTF-8?q?optimize:=20trpc=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E9=92=88=E5=AF=B9=E5=85=A8=E9=93=BE=E8=B7=AF=E8=B6=85=E6=97=B6?= =?UTF-8?q?/=E8=BF=87=E8=BD=BD/=E6=B5=81=E6=8E=A7=E7=AD=89=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --story=870664279 trpc协议返回码优化 --- proto/trpc.proto | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/proto/trpc.proto b/proto/trpc.proto index 68ea4bf..4cc0f34 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -272,14 +272,17 @@ enum TrpcRetCode { // 服务端没有调用相应的接口实现 TRPC_SERVER_NOFUNC_ERR = 12; - // 队列超时或过载错误码 + // 超时/过载/限流错误码 // 请求在服务端超时 TRPC_SERVER_TIMEOUT_ERR = 21; - // 请求在服务端过载 + // 请求在服务端被过载保护而丢弃请求 + // 主要用在框架内部实现的过载保护插件上 TRPC_SERVER_OVERLOAD_ERR = 22; // 请求在服务端被限流 + // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 TRPC_SERVER_LIMITED_ERR = 23; - + // 请求在服务端因全链路超时时间而超时 + TRPC_SERVER_FULL_LINK_TIMEOUT_ERR = 24; // 服务端系统错误 TRPC_SERVER_SYSTEM_ERR = 31; @@ -298,6 +301,9 @@ enum TrpcRetCode { // 超时错误码 // 请求在客户端调用超时 TRPC_CLIENT_INVOKE_TIMEOUT_ERR = 101; + // 请求在客户端因全链路超时时间而超时 + TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR = 102; + // 网络相关错误码 // 客户端连接错误 @@ -309,9 +315,13 @@ enum TrpcRetCode { // 客户端解码错误 TRPC_CLIENT_DECODE_ERR = 122; - // 请求被客户端限流 + // 过载保护/限流相关错误码 + // 请求在客户端被限流 + // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 TRPC_CLIENT_LIMITED_ERR = 123; - + // 请求在客户端被过载保护而丢弃请求 + // 主要用在框架内部实现的过载保护插件上 + TRPC_CLIENT_OVERLOAD_ERR = 124; // 路由相关错误码 // 客户端选ip路由错误 From d1458cfbcf737aec805d189be0f13109e0ffd3d9 Mon Sep 17 00:00:00 2001 From: minchangwei Date: Fri, 6 May 2022 17:57:22 +0800 Subject: [PATCH 54/85] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81proto=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=9A=84alias?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --story=874271923 支持proto文件的alias --- proto/trpc.proto | 4 +++- proto/trpc_options.proto | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 proto/trpc_options.proto diff --git a/proto/trpc.proto b/proto/trpc.proto index 4cc0f34..e759a2d 100644 --- a/proto/trpc.proto +++ b/proto/trpc.proto @@ -232,6 +232,9 @@ enum TrpcContentEncodeType { // xml TRPC_XML_ENCODE = 5; + + // thrift + TRPC_THRIFT_ENCODE = 6; } // trpc协议中 data 内容的压缩类型 @@ -303,7 +306,6 @@ enum TrpcRetCode { TRPC_CLIENT_INVOKE_TIMEOUT_ERR = 101; // 请求在客户端因全链路超时时间而超时 TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR = 102; - // 网络相关错误码 // 客户端连接错误 diff --git a/proto/trpc_options.proto b/proto/trpc_options.proto new file mode 100644 index 0000000..dbfd7e1 --- /dev/null +++ b/proto/trpc_options.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + +package trpc; + +import "google/protobuf/descriptor.proto"; + +extend google.protobuf.MethodOptions { + string alias = 50001; +} From d533b3bdc35973415e3c595fd94cfe7acbe67d42 Mon Sep 17 00:00:00 2001 From: minchangwei Date: Mon, 9 May 2022 15:24:34 +0800 Subject: [PATCH 55/85] =?UTF-8?q?optimize:=20=E8=A7=84=E8=8C=83pb=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=9A=84=E5=BC=95=E5=85=A5=E8=B7=AF=E5=BE=84=E4=BB=A5?= =?UTF-8?q?=E5=8F=8Abazel=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改pb文件路径 - bazel化项目 - 接入提交构建流水线 --story=874326791 trpc-protocol仓库规范pb文件的引入路径以及bazel化 --- CHANGELOG.md | 16 ++++++++++++++++ readme.md => README.md | 3 ++- WORKSPACE | 17 +++++++++++++++++ test/BUILD | 0 test/README.md | 3 +++ test/cpp/BUILD | 13 +++++++++++++ trpc/BUILD | 0 trpc/proto/BUILD | 18 ++++++++++++++++++ {proto => trpc/proto}/trpc.proto | 0 {proto => trpc/proto}/trpc_options.proto | 0 10 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md rename readme.md => README.md (70%) create mode 100644 WORKSPACE create mode 100644 test/BUILD create mode 100644 test/README.md create mode 100644 test/cpp/BUILD create mode 100644 trpc/BUILD create mode 100644 trpc/proto/BUILD rename {proto => trpc/proto}/trpc.proto (100%) rename {proto => trpc/proto}/trpc_options.proto (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..f2f40e5 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,16 @@ +# Change Log + +## [0.2.0](https://git.woa.com/trpc/trpc-protocol/tree/v0.2.0)(2022-05-09) +### Features And Improvements +- 定义扩展option(trpc/proto/trpc_options.proto) +- 扩展option支持alias +- 为trpc协议的`TrpcContentEncodeType`新增枚举值`TRPC_THRIFT_ENCODE` +- 调整更合理的目录结构:从`proto`目录到`trpc/proto`目录 + +### Thanks to our Contributors +minchangwei(韦明昌) + +## [0.1.0](https://git.woa.com/trpc/trpc-protocol/tree/v0.1.0)(2021-12-10) +### Features And Improvements +- 定义trpc一应一答协议 +- 定义trpc流式协议 diff --git a/readme.md b/README.md similarity index 70% rename from readme.md rename to README.md index 8e1dbd0..d0b4c01 100644 --- a/readme.md +++ b/README.md @@ -2,7 +2,8 @@ trpc 统一协议的设计和定义 协议设计文档:[protocol_design.md](docs/protocol_design.md). -协议/常量/返回码定义:[trpc.proto](proto/trpc.proto). +协议/常量/返回码定义:[trpc.proto](trpc/proto/trpc.proto). +拓展选项定义:[trpc_options.proto](trpc/proto/trpc_options.proto) 协议中业务层在 `trans_info` 的 key 定义规范: diff --git a/WORKSPACE b/WORKSPACE new file mode 100644 index 0000000..669349d --- /dev/null +++ b/WORKSPACE @@ -0,0 +1,17 @@ +workspace(name = "trpc_protocol") + +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +http_archive( + name = "com_google_protobuf", + sha256 = "d0f5f605d0d656007ce6c8b5a82df3037e1d8fe8b121ed42e536f569dec16113", + strip_prefix = "protobuf-3.14.0", + urls = [ + "https://mirrors.tencent.com/github.com/protocolbuffers/protobuf/archive/v3.14.0.tar.gz", + "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.14.0.tar.gz", + "https://github.com/protocolbuffers/protobuf/archive/v3.14.0.tar.gz", + ], +) + +load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") +protobuf_deps() diff --git a/test/BUILD b/test/BUILD new file mode 100644 index 0000000..e69de29 diff --git a/test/README.md b/test/README.md new file mode 100644 index 0000000..95dce0b --- /dev/null +++ b/test/README.md @@ -0,0 +1,3 @@ +trpc各语言能正常生成可编译通过代码的测试 + +- cpp:c++语言能正常生成桩代码 diff --git a/test/cpp/BUILD b/test/cpp/BUILD new file mode 100644 index 0000000..634e0ff --- /dev/null +++ b/test/cpp/BUILD @@ -0,0 +1,13 @@ +cc_proto_library( + name = "cc_trpc_proto", + deps = [ + "//trpc/proto:trpc_proto", + ], +) + +cc_proto_library( + name = "cc_trpc_options_proto", + deps = [ + "//trpc/proto:trpc_options_proto", + ], +) diff --git a/trpc/BUILD b/trpc/BUILD new file mode 100644 index 0000000..e69de29 diff --git a/trpc/proto/BUILD b/trpc/proto/BUILD new file mode 100644 index 0000000..81864a3 --- /dev/null +++ b/trpc/proto/BUILD @@ -0,0 +1,18 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "trpc_proto", + srcs = [ + "trpc.proto", + ], +) + +proto_library( + name = "trpc_options_proto", + srcs = [ + "trpc_options.proto", + ], + deps = [ + "@com_google_protobuf//:descriptor_proto", + ], +) diff --git a/proto/trpc.proto b/trpc/proto/trpc.proto similarity index 100% rename from proto/trpc.proto rename to trpc/proto/trpc.proto diff --git a/proto/trpc_options.proto b/trpc/proto/trpc_options.proto similarity index 100% rename from proto/trpc_options.proto rename to trpc/proto/trpc_options.proto From c3f8c68a136156dac2c09d519bbe28546716f3af Mon Sep 17 00:00:00 2001 From: zhijiezhang Date: Mon, 8 Aug 2022 08:19:34 +0000 Subject: [PATCH 56/85] update trpc.proto link --- docs/protocol_design.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/protocol_design.md b/docs/protocol_design.md index 28d6d8f..8374225 100644 --- a/docs/protocol_design.md +++ b/docs/protocol_design.md @@ -38,4 +38,4 @@ RPC 是远端过程调用的简称,其协议通常包含传输协议和编码 2. 流式id从2字节变成4字节,保留字段由原来的4字节变成2字节 3. 流式协议下固定帧头的包头大小设置为0 -协议头的字段使用 pb v3 版本定义,参见:[trpc.proto](../proto/trpc.proto)。 +协议头的字段使用 pb v3 版本定义,参见:[trpc.proto](../trpc/proto/trpc.proto)。 From 7d0eb6ba17279c9277c243a75ac700670fe29c96 Mon Sep 17 00:00:00 2001 From: wineguo Date: Fri, 5 Aug 2022 19:00:50 +0800 Subject: [PATCH 57/85] =?UTF-8?q?trpc-go=20proto=20=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E8=87=B3=20trpc-protocol=20=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --story=876806947 trpc-go proto 文件移动至 trpc-protocol 项目下 --- trpc/EXTEND.md | 14 + trpc/Makefile | 5 + trpc/README.md | 70 + trpc/api/annotations.proto | 12 + trpc/api/annotations/annotations.pb.go | 98 + trpc/api/annotations/http.pb.go | 402 +++ trpc/api/http.proto | 69 + trpc/go.mod | 8 + trpc/go.sum | 67 + trpc/swagger.pb.go | 182 ++ trpc/swagger.proto | 24 + trpc/trpc.ext.pb.go | 114 + trpc/trpc.ext.proto | 15 + trpc/validate.ext.pb.go | 3269 ++++++++++++++++++++++++ trpc/validate.ext.proto | 875 +++++++ 15 files changed, 5224 insertions(+) create mode 100644 trpc/EXTEND.md create mode 100644 trpc/Makefile create mode 100644 trpc/README.md create mode 100644 trpc/api/annotations.proto create mode 100644 trpc/api/annotations/annotations.pb.go create mode 100644 trpc/api/annotations/http.pb.go create mode 100644 trpc/api/http.proto create mode 100644 trpc/go.mod create mode 100644 trpc/go.sum create mode 100644 trpc/swagger.pb.go create mode 100644 trpc/swagger.proto create mode 100644 trpc/trpc.ext.pb.go create mode 100644 trpc/trpc.ext.proto create mode 100644 trpc/validate.ext.pb.go create mode 100644 trpc/validate.ext.proto diff --git a/trpc/EXTEND.md b/trpc/EXTEND.md new file mode 100644 index 0000000..fb0610b --- /dev/null +++ b/trpc/EXTEND.md @@ -0,0 +1,14 @@ +[TOC] + +# 背景 +目前trpc框架使用extend的tag比较分散,这里统一记录并预分配extend tag号段 + +# trpc.ext.proto +50001-50100 + +# swagger.proto +50101-50200 + +# api/annotations.proto +50201-50300 + diff --git a/trpc/Makefile b/trpc/Makefile new file mode 100644 index 0000000..a02f83e --- /dev/null +++ b/trpc/Makefile @@ -0,0 +1,5 @@ +all: trpc.proto + protoc --go_out=paths=source_relative:. trpc.proto swagger.proto + +clean: + rm *.pb.go diff --git a/trpc/README.md b/trpc/README.md new file mode 100644 index 0000000..6777955 --- /dev/null +++ b/trpc/README.md @@ -0,0 +1,70 @@ +该仓库维护了一些trpc框架脚手架工具使用的pb扩展: +- trpc.ext.proto,定义了rpc service methodoption,允许定义别名; +- swagger.proto,定义了生成swagger apidocs时的一些swagger描述; +- validate.proto,定义了protoc-gen-secv依赖的一些校验规则; +- api/annotations.proto,定义了RESTful api需要的扩展option + +## Examples + +下面是几个使用示例。 + +### 自定义名称:rpc方法、go tag +```protobuf + +import "trpc.proto"; + +// 自定义rpc方法名 by `trpc.alias` method option +service HelloSvr { + // Here, trpc.alias will build the bridge between `cmd` 0x1000/0x1 and handlefunc `Hello`. + // Actually, trpc framework will pass the option `trpc.alias = "ilive/0x1000/0x1"` to `codec`, + // then codec will split "/ilive/0x1000/0x1" as `bigcmd=0x1000` and `subcmd=0x1". + // + // By this way, we can generally support nearly all kinds of existed protocols in our company. + rpc Hello(HelloReq) returns(HelloRsp) { + option (trpc.alias) = "/ilive/0x1000/0x1"; + } +} + +// 自定义go tag by `trpc.tag` field option +message SayHello { + string name = 1 [(trpc.go_tag)='xml:"name"']; +} +``` + +### 定义 RESTful API +```protobuf + +syntax = "proto3"; +package helloworld; + +import "trpc/api/annotations.proto"; + +option go_package="git.code.oa.com/examples/helloworld"; + +// HelloReq request +message HelloReq{} + +// HelloRsp response +message HelloRsp{} + +service helloworld_svr { + // Hello say hello + rpc Hello(HelloReq) returns(HelloRsp) { + option (trpc.api.http) = { + get: "/say/{name}" + additional_bindings: { + get: "/say/strval/{strVal}", + } + }; + }; +} + +``` + +## 注意事项 + +protoc、protoc-gen-go生成go代码时会检测同一个pb文件名重复注册的问题,未来版本可能会直接panic, +为避免此问题,特意将trpc.proto重命名为trpc.ext.proto,以避免与trpc默认协议文件trpc.proto冲突。 + +在使用工具trpc-go/trpc-go-cmdline进行代码生成时,import pb文件时,依然写`import "trpc.proto"`, +重命名trpc.ext.proto,这么做只是为了避免生成的桩代码panic,pb引用时写trpc.proto不受影响。 diff --git a/trpc/api/annotations.proto b/trpc/api/annotations.proto new file mode 100644 index 0000000..9922117 --- /dev/null +++ b/trpc/api/annotations.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package trpc.api; + +import "trpc/api/http.proto"; +import "google/protobuf/descriptor.proto"; + +option go_package = "git.code.oa.com/trpc-go/trpc/api/annotations"; + +extend google.protobuf.MethodOptions { + HttpRule http = 50201; +} diff --git a/trpc/api/annotations/annotations.pb.go b/trpc/api/annotations/annotations.pb.go new file mode 100644 index 0000000..69d006e --- /dev/null +++ b/trpc/api/annotations/annotations.pb.go @@ -0,0 +1,98 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.15.6 +// source: trpc/api/annotations.proto + +package annotations + +import ( + "reflect" + + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/runtime/protoimpl" + "google.golang.org/protobuf/types/descriptorpb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var file_trpc_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.MethodOptions)(nil), + ExtensionType: (*HttpRule)(nil), + Field: 50201, + Name: "trpc.api.http", + Tag: "bytes,50201,opt,name=http", + Filename: "trpc/api/annotations.proto", + }, +} + +// Extension fields to descriptorpb.MethodOptions. +var ( + // optional trpc.api.HttpRule http = 50201; + E_Http = &file_trpc_api_annotations_proto_extTypes[0] +) + +var File_trpc_api_annotations_proto protoreflect.FileDescriptor + +var file_trpc_api_annotations_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x1a, 0x13, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x48, 0x0a, + 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x88, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x2e, 0x63, + 0x6f, 0x64, 0x65, 0x2e, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, + 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_trpc_api_annotations_proto_goTypes = []interface{}{ + (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*HttpRule)(nil), // 1: trpc.api.HttpRule +} +var file_trpc_api_annotations_proto_depIdxs = []int32{ + 0, // 0: trpc.api.http:extendee -> google.protobuf.MethodOptions + 1, // 1: trpc.api.http:type_name -> trpc.api.HttpRule + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 1, // [1:2] is the sub-list for extension type_name + 0, // [0:1] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_trpc_api_annotations_proto_init() } +func file_trpc_api_annotations_proto_init() { + if File_trpc_api_annotations_proto != nil { + return + } + file_trpc_api_http_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_api_annotations_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 1, + NumServices: 0, + }, + GoTypes: file_trpc_api_annotations_proto_goTypes, + DependencyIndexes: file_trpc_api_annotations_proto_depIdxs, + ExtensionInfos: file_trpc_api_annotations_proto_extTypes, + }.Build() + File_trpc_api_annotations_proto = out.File + file_trpc_api_annotations_proto_rawDesc = nil + file_trpc_api_annotations_proto_goTypes = nil + file_trpc_api_annotations_proto_depIdxs = nil +} diff --git a/trpc/api/annotations/http.pb.go b/trpc/api/annotations/http.pb.go new file mode 100644 index 0000000..0cbb842 --- /dev/null +++ b/trpc/api/annotations/http.pb.go @@ -0,0 +1,402 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.15.6 +// source: trpc/api/http.proto + +package annotations + +import ( + "reflect" + "sync" + + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type HttpRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Selects a method to which this rule applies. + // + // Refer to [selector][google.api.DocumentationRule.selector] for syntax details. + Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"` + // Determines the URL pattern is matched by this rules. This pattern can be + // used with any of the {get|put|post|delete|patch} methods. A custom method + // can be defined using the 'custom' field. + // + // Types that are assignable to Pattern: + // *HttpRule_Get + // *HttpRule_Put + // *HttpRule_Post + // *HttpRule_Delete + // *HttpRule_Patch + // *HttpRule_Custom + Pattern isHttpRule_Pattern `protobuf_oneof:"pattern"` + // The name of the request field whose value is mapped to the HTTP request + // body, or `*` for mapping all request fields not captured by the path + // pattern to the HTTP body, or omitted for not having any HTTP request body. + // + // NOTE: the referred field must be present at the top-level of the request + // message type. + Body string `protobuf:"bytes,7,opt,name=body,proto3" json:"body,omitempty"` + // Optional. The name of the response field whose value is mapped to the HTTP + // response body. When omitted, the entire response message will be used + // as the HTTP response body. + // + // NOTE: The referred field must be present at the top-level of the response + // message type. + ResponseBody string `protobuf:"bytes,12,opt,name=response_body,json=responseBody,proto3" json:"response_body,omitempty"` + // Additional HTTP bindings for the selector. Nested bindings must + // not contain an `additional_bindings` field themselves (that is, + // the nesting may only be one level deep). + AdditionalBindings []*HttpRule `protobuf:"bytes,11,rep,name=additional_bindings,json=additionalBindings,proto3" json:"additional_bindings,omitempty"` +} + +func (x *HttpRule) Reset() { + *x = HttpRule{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_api_http_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HttpRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HttpRule) ProtoMessage() {} + +func (x *HttpRule) ProtoReflect() protoreflect.Message { + mi := &file_trpc_api_http_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HttpRule.ProtoReflect.Descriptor instead. +func (*HttpRule) Descriptor() ([]byte, []int) { + return file_trpc_api_http_proto_rawDescGZIP(), []int{0} +} + +func (x *HttpRule) GetSelector() string { + if x != nil { + return x.Selector + } + return "" +} + +func (m *HttpRule) GetPattern() isHttpRule_Pattern { + if m != nil { + return m.Pattern + } + return nil +} + +func (x *HttpRule) GetGet() string { + if x, ok := x.GetPattern().(*HttpRule_Get); ok { + return x.Get + } + return "" +} + +func (x *HttpRule) GetPut() string { + if x, ok := x.GetPattern().(*HttpRule_Put); ok { + return x.Put + } + return "" +} + +func (x *HttpRule) GetPost() string { + if x, ok := x.GetPattern().(*HttpRule_Post); ok { + return x.Post + } + return "" +} + +func (x *HttpRule) GetDelete() string { + if x, ok := x.GetPattern().(*HttpRule_Delete); ok { + return x.Delete + } + return "" +} + +func (x *HttpRule) GetPatch() string { + if x, ok := x.GetPattern().(*HttpRule_Patch); ok { + return x.Patch + } + return "" +} + +func (x *HttpRule) GetCustom() *CustomHttpPattern { + if x, ok := x.GetPattern().(*HttpRule_Custom); ok { + return x.Custom + } + return nil +} + +func (x *HttpRule) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + +func (x *HttpRule) GetResponseBody() string { + if x != nil { + return x.ResponseBody + } + return "" +} + +func (x *HttpRule) GetAdditionalBindings() []*HttpRule { + if x != nil { + return x.AdditionalBindings + } + return nil +} + +type isHttpRule_Pattern interface { + isHttpRule_Pattern() +} + +type HttpRule_Get struct { + // Maps to HTTP GET. Used for listing and getting information about + // resources. + Get string `protobuf:"bytes,2,opt,name=get,proto3,oneof"` +} + +type HttpRule_Put struct { + // Maps to HTTP PUT. Used for replacing a resource. + Put string `protobuf:"bytes,3,opt,name=put,proto3,oneof"` +} + +type HttpRule_Post struct { + // Maps to HTTP POST. Used for creating a resource or performing an action. + Post string `protobuf:"bytes,4,opt,name=post,proto3,oneof"` +} + +type HttpRule_Delete struct { + // Maps to HTTP DELETE. Used for deleting a resource. + Delete string `protobuf:"bytes,5,opt,name=delete,proto3,oneof"` +} + +type HttpRule_Patch struct { + // Maps to HTTP PATCH. Used for updating a resource. + Patch string `protobuf:"bytes,6,opt,name=patch,proto3,oneof"` +} + +type HttpRule_Custom struct { + // The custom pattern is used for specifying an HTTP method that is not + // included in the `pattern` field, such as HEAD, or "*" to leave the + // HTTP method unspecified for this rule. The wild-card rule is useful + // for services that provide content to Web (HTML) clients. + Custom *CustomHttpPattern `protobuf:"bytes,8,opt,name=custom,proto3,oneof"` +} + +func (*HttpRule_Get) isHttpRule_Pattern() {} + +func (*HttpRule_Put) isHttpRule_Pattern() {} + +func (*HttpRule_Post) isHttpRule_Pattern() {} + +func (*HttpRule_Delete) isHttpRule_Pattern() {} + +func (*HttpRule_Patch) isHttpRule_Pattern() {} + +func (*HttpRule_Custom) isHttpRule_Pattern() {} + +// A custom pattern is used for defining custom HTTP verb. +type CustomHttpPattern struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of this custom HTTP verb. + Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"` + // The path matched by this custom verb. + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` +} + +func (x *CustomHttpPattern) Reset() { + *x = CustomHttpPattern{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_api_http_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CustomHttpPattern) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CustomHttpPattern) ProtoMessage() {} + +func (x *CustomHttpPattern) ProtoReflect() protoreflect.Message { + mi := &file_trpc_api_http_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CustomHttpPattern.ProtoReflect.Descriptor instead. +func (*CustomHttpPattern) Descriptor() ([]byte, []int) { + return file_trpc_api_http_proto_rawDescGZIP(), []int{1} +} + +func (x *CustomHttpPattern) GetKind() string { + if x != nil { + return x.Kind + } + return "" +} + +func (x *CustomHttpPattern) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +var File_trpc_api_http_proto protoreflect.FileDescriptor + +var file_trpc_api_http_proto_rawDesc = []byte{ + 0x0a, 0x13, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x22, + 0xd6, 0x02, 0x0a, 0x08, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x03, + 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x70, 0x75, 0x74, + 0x12, 0x14, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x12, 0x16, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, + 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, + 0x62, 0x6f, 0x64, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x43, 0x0a, 0x13, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x12, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x09, 0x0a, + 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x22, 0x3b, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x64, + 0x65, 0x2e, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x67, 0x6f, + 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpc_api_http_proto_rawDescOnce sync.Once + file_trpc_api_http_proto_rawDescData = file_trpc_api_http_proto_rawDesc +) + +func file_trpc_api_http_proto_rawDescGZIP() []byte { + file_trpc_api_http_proto_rawDescOnce.Do(func() { + file_trpc_api_http_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_api_http_proto_rawDescData) + }) + return file_trpc_api_http_proto_rawDescData +} + +var file_trpc_api_http_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_trpc_api_http_proto_goTypes = []interface{}{ + (*HttpRule)(nil), // 0: trpc.api.HttpRule + (*CustomHttpPattern)(nil), // 1: trpc.api.CustomHttpPattern +} +var file_trpc_api_http_proto_depIdxs = []int32{ + 1, // 0: trpc.api.HttpRule.custom:type_name -> trpc.api.CustomHttpPattern + 0, // 1: trpc.api.HttpRule.additional_bindings:type_name -> trpc.api.HttpRule + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_trpc_api_http_proto_init() } +func file_trpc_api_http_proto_init() { + if File_trpc_api_http_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpc_api_http_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HttpRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_api_http_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CustomHttpPattern); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_trpc_api_http_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*HttpRule_Get)(nil), + (*HttpRule_Put)(nil), + (*HttpRule_Post)(nil), + (*HttpRule_Delete)(nil), + (*HttpRule_Patch)(nil), + (*HttpRule_Custom)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_api_http_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_trpc_api_http_proto_goTypes, + DependencyIndexes: file_trpc_api_http_proto_depIdxs, + MessageInfos: file_trpc_api_http_proto_msgTypes, + }.Build() + File_trpc_api_http_proto = out.File + file_trpc_api_http_proto_rawDesc = nil + file_trpc_api_http_proto_goTypes = nil + file_trpc_api_http_proto_depIdxs = nil +} diff --git a/trpc/api/http.proto b/trpc/api/http.proto new file mode 100644 index 0000000..010e2ab --- /dev/null +++ b/trpc/api/http.proto @@ -0,0 +1,69 @@ +syntax = "proto3"; + +package trpc.api; + +option go_package = "git.code.oa.com/trpc-go/trpc/api/annotations"; + +message HttpRule { + // Selects a method to which this rule applies. + // + // Refer to [selector][google.api.DocumentationRule.selector] for syntax details. + string selector = 1; + + // Determines the URL pattern is matched by this rules. This pattern can be + // used with any of the {get|put|post|delete|patch} methods. A custom method + // can be defined using the 'custom' field. + oneof pattern { + // Maps to HTTP GET. Used for listing and getting information about + // resources. + string get = 2; + + // Maps to HTTP PUT. Used for replacing a resource. + string put = 3; + + // Maps to HTTP POST. Used for creating a resource or performing an action. + string post = 4; + + // Maps to HTTP DELETE. Used for deleting a resource. + string delete = 5; + + // Maps to HTTP PATCH. Used for updating a resource. + string patch = 6; + + // The custom pattern is used for specifying an HTTP method that is not + // included in the `pattern` field, such as HEAD, or "*" to leave the + // HTTP method unspecified for this rule. The wild-card rule is useful + // for services that provide content to Web (HTML) clients. + CustomHttpPattern custom = 8; + } + + // The name of the request field whose value is mapped to the HTTP request + // body, or `*` for mapping all request fields not captured by the path + // pattern to the HTTP body, or omitted for not having any HTTP request body. + // + // NOTE: the referred field must be present at the top-level of the request + // message type. + string body = 7; + + // Optional. The name of the response field whose value is mapped to the HTTP + // response body. When omitted, the entire response message will be used + // as the HTTP response body. + // + // NOTE: The referred field must be present at the top-level of the response + // message type. + string response_body = 12; + + // Additional HTTP bindings for the selector. Nested bindings must + // not contain an `additional_bindings` field themselves (that is, + // the nesting may only be one level deep). + repeated HttpRule additional_bindings = 11; +} + +// A custom pattern is used for defining custom HTTP verb. +message CustomHttpPattern { + // The name of this custom HTTP verb. + string kind = 1; + + // The path matched by this custom verb. + string path = 2; +} diff --git a/trpc/go.mod b/trpc/go.mod new file mode 100644 index 0000000..377926b --- /dev/null +++ b/trpc/go.mod @@ -0,0 +1,8 @@ +module git.code.oa.com/trpc-go/trpc + +go 1.12 + +require ( + github.com/golang/protobuf v1.4.3 + google.golang.org/protobuf v1.25.0 +) diff --git a/trpc/go.sum b/trpc/go.sum new file mode 100644 index 0000000..2384568 --- /dev/null +++ b/trpc/go.sum @@ -0,0 +1,67 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/trpc/swagger.pb.go b/trpc/swagger.pb.go new file mode 100644 index 0000000..578acff --- /dev/null +++ b/trpc/swagger.pb.go @@ -0,0 +1,182 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: swagger.proto + +package trpc + +import ( + "fmt" + "math" + + "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/types/descriptorpb" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +// to gen swagger json +type SwaggerRule struct { + Title string `protobuf:"bytes,50103,opt,name=title,proto3" json:"title,omitempty"` + Method string `protobuf:"bytes,50104,opt,name=method,proto3" json:"method,omitempty"` + Description string `protobuf:"bytes,50105,opt,name=description,proto3" json:"description,omitempty"` + Params []*SwaggerParam `protobuf:"bytes,50106,rep,name=params,proto3" json:"params,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SwaggerRule) Reset() { *m = SwaggerRule{} } +func (m *SwaggerRule) String() string { return proto.CompactTextString(m) } +func (*SwaggerRule) ProtoMessage() {} +func (*SwaggerRule) Descriptor() ([]byte, []int) { + return fileDescriptor_49635b75e059a131, []int{0} +} + +func (m *SwaggerRule) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SwaggerRule.Unmarshal(m, b) +} +func (m *SwaggerRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SwaggerRule.Marshal(b, m, deterministic) +} +func (m *SwaggerRule) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwaggerRule.Merge(m, src) +} +func (m *SwaggerRule) XXX_Size() int { + return xxx_messageInfo_SwaggerRule.Size(m) +} +func (m *SwaggerRule) XXX_DiscardUnknown() { + xxx_messageInfo_SwaggerRule.DiscardUnknown(m) +} + +var xxx_messageInfo_SwaggerRule proto.InternalMessageInfo + +func (m *SwaggerRule) GetTitle() string { + if m != nil { + return m.Title + } + return "" +} + +func (m *SwaggerRule) GetMethod() string { + if m != nil { + return m.Method + } + return "" +} + +func (m *SwaggerRule) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + +func (m *SwaggerRule) GetParams() []*SwaggerParam { + if m != nil { + return m.Params + } + return nil +} + +type SwaggerParam struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Required bool `protobuf:"varint,2,opt,name=required,proto3" json:"required,omitempty"` + Default string `protobuf:"bytes,3,opt,name=default,proto3" json:"default,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SwaggerParam) Reset() { *m = SwaggerParam{} } +func (m *SwaggerParam) String() string { return proto.CompactTextString(m) } +func (*SwaggerParam) ProtoMessage() {} +func (*SwaggerParam) Descriptor() ([]byte, []int) { + return fileDescriptor_49635b75e059a131, []int{1} +} + +func (m *SwaggerParam) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SwaggerParam.Unmarshal(m, b) +} +func (m *SwaggerParam) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SwaggerParam.Marshal(b, m, deterministic) +} +func (m *SwaggerParam) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwaggerParam.Merge(m, src) +} +func (m *SwaggerParam) XXX_Size() int { + return xxx_messageInfo_SwaggerParam.Size(m) +} +func (m *SwaggerParam) XXX_DiscardUnknown() { + xxx_messageInfo_SwaggerParam.DiscardUnknown(m) +} + +var xxx_messageInfo_SwaggerParam proto.InternalMessageInfo + +func (m *SwaggerParam) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *SwaggerParam) GetRequired() bool { + if m != nil { + return m.Required + } + return false +} + +func (m *SwaggerParam) GetDefault() string { + if m != nil { + return m.Default + } + return "" +} + +var E_Swagger = &proto.ExtensionDesc{ + ExtendedType: (*descriptorpb.MethodOptions)(nil), + ExtensionType: (*SwaggerRule)(nil), + Field: 50101, + Name: "trpc.swagger", + Tag: "bytes,50101,opt,name=swagger", + Filename: "swagger.proto", +} + +func init() { + proto.RegisterType((*SwaggerRule)(nil), "trpc.SwaggerRule") + proto.RegisterType((*SwaggerParam)(nil), "trpc.SwaggerParam") + proto.RegisterExtension(E_Swagger) +} + +func init() { proto.RegisterFile("swagger.proto", fileDescriptor_49635b75e059a131) } + +var fileDescriptor_49635b75e059a131 = []byte{ + // 299 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x50, 0x3f, 0x4f, 0xfb, 0x30, + 0x14, 0x54, 0x7e, 0xed, 0xaf, 0x2d, 0x2f, 0x30, 0xe0, 0x01, 0x59, 0x15, 0xa0, 0xa8, 0x53, 0x06, + 0x70, 0xa4, 0xb2, 0x21, 0xb1, 0xb0, 0x57, 0xa0, 0xb0, 0x20, 0x36, 0xd7, 0x79, 0x35, 0x91, 0x92, + 0xbc, 0xe0, 0x38, 0x82, 0x6f, 0xd0, 0x99, 0x0f, 0x83, 0xf8, 0xf3, 0xe9, 0x50, 0x1c, 0xa7, 0x2a, + 0x93, 0x7d, 0xef, 0xce, 0xe7, 0x7b, 0x07, 0x47, 0xcd, 0xab, 0xd4, 0x1a, 0x8d, 0xa8, 0x0d, 0x59, + 0x62, 0x63, 0x6b, 0x6a, 0x35, 0x8f, 0x34, 0x91, 0x2e, 0x30, 0x71, 0xb3, 0x75, 0xbb, 0x49, 0x32, + 0x6c, 0x94, 0xc9, 0x6b, 0x4b, 0x5e, 0xb7, 0x78, 0x0f, 0x20, 0x7c, 0xe8, 0x5f, 0xa6, 0x6d, 0x81, + 0xec, 0x04, 0xfe, 0xdb, 0xdc, 0x16, 0xc8, 0x3f, 0xb7, 0xa3, 0x28, 0x88, 0x0f, 0xd2, 0x1e, 0x32, + 0x0e, 0x93, 0x12, 0xed, 0x33, 0x65, 0xfc, 0xcb, 0x13, 0x1e, 0xb3, 0x05, 0x84, 0x83, 0x6b, 0x4e, + 0x15, 0xff, 0xf6, 0xf4, 0xfe, 0x90, 0x5d, 0xc0, 0xa4, 0x96, 0x46, 0x96, 0x0d, 0xff, 0xd9, 0x8e, + 0xa2, 0x51, 0x1c, 0x2e, 0x99, 0xe8, 0x02, 0x0a, 0xff, 0xf5, 0x7d, 0x47, 0xa6, 0x5e, 0xb3, 0x78, + 0x84, 0xc3, 0xfd, 0x39, 0x63, 0x30, 0xae, 0x64, 0x89, 0x3c, 0x70, 0xc6, 0xee, 0xce, 0xe6, 0x30, + 0x33, 0xf8, 0xd2, 0xe6, 0x06, 0x33, 0xfe, 0x2f, 0x0a, 0xe2, 0x59, 0xba, 0xc3, 0x8c, 0xc3, 0x34, + 0xc3, 0x8d, 0x6c, 0x0b, 0xcb, 0xfb, 0x2c, 0x03, 0xbc, 0x5e, 0xc1, 0xd4, 0xd7, 0xc4, 0xce, 0x45, + 0xdf, 0x8d, 0x18, 0xba, 0x11, 0x2b, 0xb7, 0xcf, 0x9d, 0x4b, 0xdc, 0xf0, 0x0f, 0xb7, 0x47, 0xb8, + 0x3c, 0xfe, 0x13, 0xb4, 0xeb, 0x28, 0x1d, 0x3c, 0x6e, 0x6f, 0xe0, 0x4c, 0x51, 0x29, 0x2c, 0x56, + 0x0a, 0x2b, 0xdb, 0x0b, 0x77, 0x76, 0xf8, 0x66, 0x9f, 0x4e, 0x75, 0x6e, 0x85, 0xa2, 0x0c, 0x05, + 0x49, 0xa1, 0xa8, 0x4c, 0x3a, 0xc9, 0xa5, 0x26, 0x77, 0xae, 0x27, 0x4e, 0x7b, 0xf5, 0x1b, 0x00, + 0x00, 0xff, 0xff, 0xb7, 0xf7, 0x02, 0x96, 0xbb, 0x01, 0x00, 0x00, +} diff --git a/trpc/swagger.proto b/trpc/swagger.proto new file mode 100644 index 0000000..090f426 --- /dev/null +++ b/trpc/swagger.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; +import "google/protobuf/descriptor.proto"; +package trpc; + +option go_package = "git.code.oa.com/trpc-go/trpc"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +extend google.protobuf.MethodOptions { + SwaggerRule swagger = 50101; +} + +// to gen swagger json +message SwaggerRule { + string title = 50103; + string method = 50104; + string description = 50105; + repeated SwaggerParam params = 50106; +} + +message SwaggerParam { + string name = 1; + bool required = 2; + string default = 3; +} \ No newline at end of file diff --git a/trpc/trpc.ext.pb.go b/trpc/trpc.ext.pb.go new file mode 100644 index 0000000..7639237 --- /dev/null +++ b/trpc/trpc.ext.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.4 +// source: trpc.ext.proto + +package trpc + +import ( + proto "github.com/golang/protobuf/proto" + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +var file_trpc_ext_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptor.MethodOptions)(nil), + ExtensionType: (*string)(nil), + Field: 50001, + Name: "trpc.alias", + Tag: "bytes,50001,opt,name=alias", + Filename: "trpc.ext.proto", + }, + { + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 50050, + Name: "trpc.go_tag", + Tag: "bytes,50050,opt,name=go_tag", + Filename: "trpc.ext.proto", + }, +} + +// Extension fields to descriptor.MethodOptions. +var ( + // optional string alias = 50001; + E_Alias = &file_trpc_ext_proto_extTypes[0] +) + +// Extension fields to descriptor.FieldOptions. +var ( + // optional string go_tag = 50050; + E_GoTag = &file_trpc_ext_proto_extTypes[1] +) + +var File_trpc_ext_proto protoreflect.FileDescriptor + +var file_trpc_ext_proto_rawDesc = []byte{ + 0x0a, 0x0e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x04, 0x74, 0x72, 0x70, 0x63, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x36, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0xd1, 0x86, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, + 0x3a, 0x36, 0x0a, 0x06, 0x67, 0x6f, 0x5f, 0x74, 0x61, 0x67, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x82, 0x87, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x1e, 0x5a, 0x1c, 0x67, 0x69, 0x74, 0x2e, + 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, + 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_trpc_ext_proto_goTypes = []interface{}{ + (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*descriptor.FieldOptions)(nil), // 1: google.protobuf.FieldOptions +} +var file_trpc_ext_proto_depIdxs = []int32{ + 0, // 0: trpc.alias:extendee -> google.protobuf.MethodOptions + 1, // 1: trpc.go_tag:extendee -> google.protobuf.FieldOptions + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 0, // [0:2] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_trpc_ext_proto_init() } +func file_trpc_ext_proto_init() { + if File_trpc_ext_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_ext_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 2, + NumServices: 0, + }, + GoTypes: file_trpc_ext_proto_goTypes, + DependencyIndexes: file_trpc_ext_proto_depIdxs, + ExtensionInfos: file_trpc_ext_proto_extTypes, + }.Build() + File_trpc_ext_proto = out.File + file_trpc_ext_proto_rawDesc = nil + file_trpc_ext_proto_goTypes = nil + file_trpc_ext_proto_depIdxs = nil +} diff --git a/trpc/trpc.ext.proto b/trpc/trpc.ext.proto new file mode 100644 index 0000000..a71e925 --- /dev/null +++ b/trpc/trpc.ext.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +import "google/protobuf/descriptor.proto"; + +package trpc; + +option go_package = "git.code.oa.com/trpc-go/trpc"; + +extend google.protobuf.MethodOptions { + string alias = 50001; +} + +extend google.protobuf.FieldOptions { + string go_tag = 50050; +} diff --git a/trpc/validate.ext.pb.go b/trpc/validate.ext.pb.go new file mode 100644 index 0000000..27d9ed4 --- /dev/null +++ b/trpc/validate.ext.pb.go @@ -0,0 +1,3269 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: validate.ext.proto + +package trpc + +import ( + "fmt" + "math" + + "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/types/descriptorpb" + "google.golang.org/protobuf/types/known/durationpb" + "google.golang.org/protobuf/types/known/timestamppb" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +// WellKnownRegex contain some well-known patterns. +type KnownRegex int32 + +const ( + KnownRegex_UNKNOWN KnownRegex = 0 + // HTTP header name as defined by RFC 7230. + KnownRegex_HTTP_HEADER_NAME KnownRegex = 1 + // HTTP header value as defined by RFC 7230. + KnownRegex_HTTP_HEADER_VALUE KnownRegex = 2 +) + +var KnownRegex_name = map[int32]string{ + 0: "UNKNOWN", + 1: "HTTP_HEADER_NAME", + 2: "HTTP_HEADER_VALUE", +} + +var KnownRegex_value = map[string]int32{ + "UNKNOWN": 0, + "HTTP_HEADER_NAME": 1, + "HTTP_HEADER_VALUE": 2, +} + +func (x KnownRegex) Enum() *KnownRegex { + p := new(KnownRegex) + *p = x + return p +} + +func (x KnownRegex) String() string { + return proto.EnumName(KnownRegex_name, int32(x)) +} + +func (x *KnownRegex) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(KnownRegex_value, data, "KnownRegex") + if err != nil { + return err + } + *x = KnownRegex(value) + return nil +} + +func (KnownRegex) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{0} +} + +// FieldRules encapsulates the rules for each type of field. Depending on the +// field, the correct set should be used to ensure proper validations. +type FieldRules struct { + Message *MessageRules `protobuf:"bytes,17,opt,name=message" json:"message,omitempty"` + // Types that are valid to be assigned to Type: + // *FieldRules_Float + // *FieldRules_Double + // *FieldRules_Int32 + // *FieldRules_Int64 + // *FieldRules_Uint32 + // *FieldRules_Uint64 + // *FieldRules_Sint32 + // *FieldRules_Sint64 + // *FieldRules_Fixed32 + // *FieldRules_Fixed64 + // *FieldRules_Sfixed32 + // *FieldRules_Sfixed64 + // *FieldRules_Bool + // *FieldRules_String_ + // *FieldRules_Bytes + // *FieldRules_Enum + // *FieldRules_Repeated + // *FieldRules_Map + // *FieldRules_Any + // *FieldRules_Duration + // *FieldRules_Timestamp + Type isFieldRules_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FieldRules) Reset() { *m = FieldRules{} } +func (m *FieldRules) String() string { return proto.CompactTextString(m) } +func (*FieldRules) ProtoMessage() {} +func (*FieldRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{0} +} + +func (m *FieldRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FieldRules.Unmarshal(m, b) +} +func (m *FieldRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FieldRules.Marshal(b, m, deterministic) +} +func (m *FieldRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldRules.Merge(m, src) +} +func (m *FieldRules) XXX_Size() int { + return xxx_messageInfo_FieldRules.Size(m) +} +func (m *FieldRules) XXX_DiscardUnknown() { + xxx_messageInfo_FieldRules.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldRules proto.InternalMessageInfo + +func (m *FieldRules) GetMessage() *MessageRules { + if m != nil { + return m.Message + } + return nil +} + +type isFieldRules_Type interface { + isFieldRules_Type() +} + +type FieldRules_Float struct { + Float *FloatRules `protobuf:"bytes,1,opt,name=float,oneof"` +} + +type FieldRules_Double struct { + Double *DoubleRules `protobuf:"bytes,2,opt,name=double,oneof"` +} + +type FieldRules_Int32 struct { + Int32 *Int32Rules `protobuf:"bytes,3,opt,name=int32,oneof"` +} + +type FieldRules_Int64 struct { + Int64 *Int64Rules `protobuf:"bytes,4,opt,name=int64,oneof"` +} + +type FieldRules_Uint32 struct { + Uint32 *UInt32Rules `protobuf:"bytes,5,opt,name=uint32,oneof"` +} + +type FieldRules_Uint64 struct { + Uint64 *UInt64Rules `protobuf:"bytes,6,opt,name=uint64,oneof"` +} + +type FieldRules_Sint32 struct { + Sint32 *SInt32Rules `protobuf:"bytes,7,opt,name=sint32,oneof"` +} + +type FieldRules_Sint64 struct { + Sint64 *SInt64Rules `protobuf:"bytes,8,opt,name=sint64,oneof"` +} + +type FieldRules_Fixed32 struct { + Fixed32 *Fixed32Rules `protobuf:"bytes,9,opt,name=fixed32,oneof"` +} + +type FieldRules_Fixed64 struct { + Fixed64 *Fixed64Rules `protobuf:"bytes,10,opt,name=fixed64,oneof"` +} + +type FieldRules_Sfixed32 struct { + Sfixed32 *SFixed32Rules `protobuf:"bytes,11,opt,name=sfixed32,oneof"` +} + +type FieldRules_Sfixed64 struct { + Sfixed64 *SFixed64Rules `protobuf:"bytes,12,opt,name=sfixed64,oneof"` +} + +type FieldRules_Bool struct { + Bool *BoolRules `protobuf:"bytes,13,opt,name=bool,oneof"` +} + +type FieldRules_String_ struct { + String_ *StringRules `protobuf:"bytes,14,opt,name=string,oneof"` +} + +type FieldRules_Bytes struct { + Bytes *BytesRules `protobuf:"bytes,15,opt,name=bytes,oneof"` +} + +type FieldRules_Enum struct { + Enum *EnumRules `protobuf:"bytes,16,opt,name=enum,oneof"` +} + +type FieldRules_Repeated struct { + Repeated *RepeatedRules `protobuf:"bytes,18,opt,name=repeated,oneof"` +} + +type FieldRules_Map struct { + Map *MapRules `protobuf:"bytes,19,opt,name=map,oneof"` +} + +type FieldRules_Any struct { + Any *AnyRules `protobuf:"bytes,20,opt,name=any,oneof"` +} + +type FieldRules_Duration struct { + Duration *DurationRules `protobuf:"bytes,21,opt,name=duration,oneof"` +} + +type FieldRules_Timestamp struct { + Timestamp *TimestampRules `protobuf:"bytes,22,opt,name=timestamp,oneof"` +} + +func (*FieldRules_Float) isFieldRules_Type() {} + +func (*FieldRules_Double) isFieldRules_Type() {} + +func (*FieldRules_Int32) isFieldRules_Type() {} + +func (*FieldRules_Int64) isFieldRules_Type() {} + +func (*FieldRules_Uint32) isFieldRules_Type() {} + +func (*FieldRules_Uint64) isFieldRules_Type() {} + +func (*FieldRules_Sint32) isFieldRules_Type() {} + +func (*FieldRules_Sint64) isFieldRules_Type() {} + +func (*FieldRules_Fixed32) isFieldRules_Type() {} + +func (*FieldRules_Fixed64) isFieldRules_Type() {} + +func (*FieldRules_Sfixed32) isFieldRules_Type() {} + +func (*FieldRules_Sfixed64) isFieldRules_Type() {} + +func (*FieldRules_Bool) isFieldRules_Type() {} + +func (*FieldRules_String_) isFieldRules_Type() {} + +func (*FieldRules_Bytes) isFieldRules_Type() {} + +func (*FieldRules_Enum) isFieldRules_Type() {} + +func (*FieldRules_Repeated) isFieldRules_Type() {} + +func (*FieldRules_Map) isFieldRules_Type() {} + +func (*FieldRules_Any) isFieldRules_Type() {} + +func (*FieldRules_Duration) isFieldRules_Type() {} + +func (*FieldRules_Timestamp) isFieldRules_Type() {} + +func (m *FieldRules) GetType() isFieldRules_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *FieldRules) GetFloat() *FloatRules { + if x, ok := m.GetType().(*FieldRules_Float); ok { + return x.Float + } + return nil +} + +func (m *FieldRules) GetDouble() *DoubleRules { + if x, ok := m.GetType().(*FieldRules_Double); ok { + return x.Double + } + return nil +} + +func (m *FieldRules) GetInt32() *Int32Rules { + if x, ok := m.GetType().(*FieldRules_Int32); ok { + return x.Int32 + } + return nil +} + +func (m *FieldRules) GetInt64() *Int64Rules { + if x, ok := m.GetType().(*FieldRules_Int64); ok { + return x.Int64 + } + return nil +} + +func (m *FieldRules) GetUint32() *UInt32Rules { + if x, ok := m.GetType().(*FieldRules_Uint32); ok { + return x.Uint32 + } + return nil +} + +func (m *FieldRules) GetUint64() *UInt64Rules { + if x, ok := m.GetType().(*FieldRules_Uint64); ok { + return x.Uint64 + } + return nil +} + +func (m *FieldRules) GetSint32() *SInt32Rules { + if x, ok := m.GetType().(*FieldRules_Sint32); ok { + return x.Sint32 + } + return nil +} + +func (m *FieldRules) GetSint64() *SInt64Rules { + if x, ok := m.GetType().(*FieldRules_Sint64); ok { + return x.Sint64 + } + return nil +} + +func (m *FieldRules) GetFixed32() *Fixed32Rules { + if x, ok := m.GetType().(*FieldRules_Fixed32); ok { + return x.Fixed32 + } + return nil +} + +func (m *FieldRules) GetFixed64() *Fixed64Rules { + if x, ok := m.GetType().(*FieldRules_Fixed64); ok { + return x.Fixed64 + } + return nil +} + +func (m *FieldRules) GetSfixed32() *SFixed32Rules { + if x, ok := m.GetType().(*FieldRules_Sfixed32); ok { + return x.Sfixed32 + } + return nil +} + +func (m *FieldRules) GetSfixed64() *SFixed64Rules { + if x, ok := m.GetType().(*FieldRules_Sfixed64); ok { + return x.Sfixed64 + } + return nil +} + +func (m *FieldRules) GetBool() *BoolRules { + if x, ok := m.GetType().(*FieldRules_Bool); ok { + return x.Bool + } + return nil +} + +func (m *FieldRules) GetString_() *StringRules { + if x, ok := m.GetType().(*FieldRules_String_); ok { + return x.String_ + } + return nil +} + +func (m *FieldRules) GetBytes() *BytesRules { + if x, ok := m.GetType().(*FieldRules_Bytes); ok { + return x.Bytes + } + return nil +} + +func (m *FieldRules) GetEnum() *EnumRules { + if x, ok := m.GetType().(*FieldRules_Enum); ok { + return x.Enum + } + return nil +} + +func (m *FieldRules) GetRepeated() *RepeatedRules { + if x, ok := m.GetType().(*FieldRules_Repeated); ok { + return x.Repeated + } + return nil +} + +func (m *FieldRules) GetMap() *MapRules { + if x, ok := m.GetType().(*FieldRules_Map); ok { + return x.Map + } + return nil +} + +func (m *FieldRules) GetAny() *AnyRules { + if x, ok := m.GetType().(*FieldRules_Any); ok { + return x.Any + } + return nil +} + +func (m *FieldRules) GetDuration() *DurationRules { + if x, ok := m.GetType().(*FieldRules_Duration); ok { + return x.Duration + } + return nil +} + +func (m *FieldRules) GetTimestamp() *TimestampRules { + if x, ok := m.GetType().(*FieldRules_Timestamp); ok { + return x.Timestamp + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*FieldRules) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*FieldRules_Float)(nil), + (*FieldRules_Double)(nil), + (*FieldRules_Int32)(nil), + (*FieldRules_Int64)(nil), + (*FieldRules_Uint32)(nil), + (*FieldRules_Uint64)(nil), + (*FieldRules_Sint32)(nil), + (*FieldRules_Sint64)(nil), + (*FieldRules_Fixed32)(nil), + (*FieldRules_Fixed64)(nil), + (*FieldRules_Sfixed32)(nil), + (*FieldRules_Sfixed64)(nil), + (*FieldRules_Bool)(nil), + (*FieldRules_String_)(nil), + (*FieldRules_Bytes)(nil), + (*FieldRules_Enum)(nil), + (*FieldRules_Repeated)(nil), + (*FieldRules_Map)(nil), + (*FieldRules_Any)(nil), + (*FieldRules_Duration)(nil), + (*FieldRules_Timestamp)(nil), + } +} + +// FloatRules describes the constraints applied to `float` values +type FloatRules struct { + // Const specifies that this field must be exactly the specified value + Const *float32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *float32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *float32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *float32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *float32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []float32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []float32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FloatRules) Reset() { *m = FloatRules{} } +func (m *FloatRules) String() string { return proto.CompactTextString(m) } +func (*FloatRules) ProtoMessage() {} +func (*FloatRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{1} +} + +func (m *FloatRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FloatRules.Unmarshal(m, b) +} +func (m *FloatRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FloatRules.Marshal(b, m, deterministic) +} +func (m *FloatRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_FloatRules.Merge(m, src) +} +func (m *FloatRules) XXX_Size() int { + return xxx_messageInfo_FloatRules.Size(m) +} +func (m *FloatRules) XXX_DiscardUnknown() { + xxx_messageInfo_FloatRules.DiscardUnknown(m) +} + +var xxx_messageInfo_FloatRules proto.InternalMessageInfo + +func (m *FloatRules) GetConst() float32 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *FloatRules) GetLt() float32 { + if m != nil && m.Lt != nil { + return *m.Lt + } + return 0 +} + +func (m *FloatRules) GetLte() float32 { + if m != nil && m.Lte != nil { + return *m.Lte + } + return 0 +} + +func (m *FloatRules) GetGt() float32 { + if m != nil && m.Gt != nil { + return *m.Gt + } + return 0 +} + +func (m *FloatRules) GetGte() float32 { + if m != nil && m.Gte != nil { + return *m.Gte + } + return 0 +} + +func (m *FloatRules) GetIn() []float32 { + if m != nil { + return m.In + } + return nil +} + +func (m *FloatRules) GetNotIn() []float32 { + if m != nil { + return m.NotIn + } + return nil +} + +func (m *FloatRules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// DoubleRules describes the constraints applied to `double` values +type DoubleRules struct { + // Const specifies that this field must be exactly the specified value + Const *float64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *float64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *float64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *float64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *float64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []float64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []float64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DoubleRules) Reset() { *m = DoubleRules{} } +func (m *DoubleRules) String() string { return proto.CompactTextString(m) } +func (*DoubleRules) ProtoMessage() {} +func (*DoubleRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{2} +} + +func (m *DoubleRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DoubleRules.Unmarshal(m, b) +} +func (m *DoubleRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DoubleRules.Marshal(b, m, deterministic) +} +func (m *DoubleRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_DoubleRules.Merge(m, src) +} +func (m *DoubleRules) XXX_Size() int { + return xxx_messageInfo_DoubleRules.Size(m) +} +func (m *DoubleRules) XXX_DiscardUnknown() { + xxx_messageInfo_DoubleRules.DiscardUnknown(m) +} + +var xxx_messageInfo_DoubleRules proto.InternalMessageInfo + +func (m *DoubleRules) GetConst() float64 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *DoubleRules) GetLt() float64 { + if m != nil && m.Lt != nil { + return *m.Lt + } + return 0 +} + +func (m *DoubleRules) GetLte() float64 { + if m != nil && m.Lte != nil { + return *m.Lte + } + return 0 +} + +func (m *DoubleRules) GetGt() float64 { + if m != nil && m.Gt != nil { + return *m.Gt + } + return 0 +} + +func (m *DoubleRules) GetGte() float64 { + if m != nil && m.Gte != nil { + return *m.Gte + } + return 0 +} + +func (m *DoubleRules) GetIn() []float64 { + if m != nil { + return m.In + } + return nil +} + +func (m *DoubleRules) GetNotIn() []float64 { + if m != nil { + return m.NotIn + } + return nil +} + +func (m *DoubleRules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// Int32Rules describes the constraints applied to `int32` values +type Int32Rules struct { + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int32 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int32 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int32 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int32 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Int32Rules) Reset() { *m = Int32Rules{} } +func (m *Int32Rules) String() string { return proto.CompactTextString(m) } +func (*Int32Rules) ProtoMessage() {} +func (*Int32Rules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{3} +} + +func (m *Int32Rules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Int32Rules.Unmarshal(m, b) +} +func (m *Int32Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Int32Rules.Marshal(b, m, deterministic) +} +func (m *Int32Rules) XXX_Merge(src proto.Message) { + xxx_messageInfo_Int32Rules.Merge(m, src) +} +func (m *Int32Rules) XXX_Size() int { + return xxx_messageInfo_Int32Rules.Size(m) +} +func (m *Int32Rules) XXX_DiscardUnknown() { + xxx_messageInfo_Int32Rules.DiscardUnknown(m) +} + +var xxx_messageInfo_Int32Rules proto.InternalMessageInfo + +func (m *Int32Rules) GetConst() int32 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *Int32Rules) GetLt() int32 { + if m != nil && m.Lt != nil { + return *m.Lt + } + return 0 +} + +func (m *Int32Rules) GetLte() int32 { + if m != nil && m.Lte != nil { + return *m.Lte + } + return 0 +} + +func (m *Int32Rules) GetGt() int32 { + if m != nil && m.Gt != nil { + return *m.Gt + } + return 0 +} + +func (m *Int32Rules) GetGte() int32 { + if m != nil && m.Gte != nil { + return *m.Gte + } + return 0 +} + +func (m *Int32Rules) GetIn() []int32 { + if m != nil { + return m.In + } + return nil +} + +func (m *Int32Rules) GetNotIn() []int32 { + if m != nil { + return m.NotIn + } + return nil +} + +func (m *Int32Rules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// Int64Rules describes the constraints applied to `int64` values +type Int64Rules struct { + // Const specifies that this field must be exactly the specified value + Const *int64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int64 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int64 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int64 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int64 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Int64Rules) Reset() { *m = Int64Rules{} } +func (m *Int64Rules) String() string { return proto.CompactTextString(m) } +func (*Int64Rules) ProtoMessage() {} +func (*Int64Rules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{4} +} + +func (m *Int64Rules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Int64Rules.Unmarshal(m, b) +} +func (m *Int64Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Int64Rules.Marshal(b, m, deterministic) +} +func (m *Int64Rules) XXX_Merge(src proto.Message) { + xxx_messageInfo_Int64Rules.Merge(m, src) +} +func (m *Int64Rules) XXX_Size() int { + return xxx_messageInfo_Int64Rules.Size(m) +} +func (m *Int64Rules) XXX_DiscardUnknown() { + xxx_messageInfo_Int64Rules.DiscardUnknown(m) +} + +var xxx_messageInfo_Int64Rules proto.InternalMessageInfo + +func (m *Int64Rules) GetConst() int64 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *Int64Rules) GetLt() int64 { + if m != nil && m.Lt != nil { + return *m.Lt + } + return 0 +} + +func (m *Int64Rules) GetLte() int64 { + if m != nil && m.Lte != nil { + return *m.Lte + } + return 0 +} + +func (m *Int64Rules) GetGt() int64 { + if m != nil && m.Gt != nil { + return *m.Gt + } + return 0 +} + +func (m *Int64Rules) GetGte() int64 { + if m != nil && m.Gte != nil { + return *m.Gte + } + return 0 +} + +func (m *Int64Rules) GetIn() []int64 { + if m != nil { + return m.In + } + return nil +} + +func (m *Int64Rules) GetNotIn() []int64 { + if m != nil { + return m.NotIn + } + return nil +} + +func (m *Int64Rules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// UInt32Rules describes the constraints applied to `uint32` values +type UInt32Rules struct { + // Const specifies that this field must be exactly the specified value + Const *uint32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint32 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint32 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint32 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint32 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UInt32Rules) Reset() { *m = UInt32Rules{} } +func (m *UInt32Rules) String() string { return proto.CompactTextString(m) } +func (*UInt32Rules) ProtoMessage() {} +func (*UInt32Rules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{5} +} + +func (m *UInt32Rules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UInt32Rules.Unmarshal(m, b) +} +func (m *UInt32Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UInt32Rules.Marshal(b, m, deterministic) +} +func (m *UInt32Rules) XXX_Merge(src proto.Message) { + xxx_messageInfo_UInt32Rules.Merge(m, src) +} +func (m *UInt32Rules) XXX_Size() int { + return xxx_messageInfo_UInt32Rules.Size(m) +} +func (m *UInt32Rules) XXX_DiscardUnknown() { + xxx_messageInfo_UInt32Rules.DiscardUnknown(m) +} + +var xxx_messageInfo_UInt32Rules proto.InternalMessageInfo + +func (m *UInt32Rules) GetConst() uint32 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *UInt32Rules) GetLt() uint32 { + if m != nil && m.Lt != nil { + return *m.Lt + } + return 0 +} + +func (m *UInt32Rules) GetLte() uint32 { + if m != nil && m.Lte != nil { + return *m.Lte + } + return 0 +} + +func (m *UInt32Rules) GetGt() uint32 { + if m != nil && m.Gt != nil { + return *m.Gt + } + return 0 +} + +func (m *UInt32Rules) GetGte() uint32 { + if m != nil && m.Gte != nil { + return *m.Gte + } + return 0 +} + +func (m *UInt32Rules) GetIn() []uint32 { + if m != nil { + return m.In + } + return nil +} + +func (m *UInt32Rules) GetNotIn() []uint32 { + if m != nil { + return m.NotIn + } + return nil +} + +func (m *UInt32Rules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// UInt64Rules describes the constraints applied to `uint64` values +type UInt64Rules struct { + // Const specifies that this field must be exactly the specified value + Const *uint64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint64 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint64 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint64 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint64 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UInt64Rules) Reset() { *m = UInt64Rules{} } +func (m *UInt64Rules) String() string { return proto.CompactTextString(m) } +func (*UInt64Rules) ProtoMessage() {} +func (*UInt64Rules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{6} +} + +func (m *UInt64Rules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UInt64Rules.Unmarshal(m, b) +} +func (m *UInt64Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UInt64Rules.Marshal(b, m, deterministic) +} +func (m *UInt64Rules) XXX_Merge(src proto.Message) { + xxx_messageInfo_UInt64Rules.Merge(m, src) +} +func (m *UInt64Rules) XXX_Size() int { + return xxx_messageInfo_UInt64Rules.Size(m) +} +func (m *UInt64Rules) XXX_DiscardUnknown() { + xxx_messageInfo_UInt64Rules.DiscardUnknown(m) +} + +var xxx_messageInfo_UInt64Rules proto.InternalMessageInfo + +func (m *UInt64Rules) GetConst() uint64 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *UInt64Rules) GetLt() uint64 { + if m != nil && m.Lt != nil { + return *m.Lt + } + return 0 +} + +func (m *UInt64Rules) GetLte() uint64 { + if m != nil && m.Lte != nil { + return *m.Lte + } + return 0 +} + +func (m *UInt64Rules) GetGt() uint64 { + if m != nil && m.Gt != nil { + return *m.Gt + } + return 0 +} + +func (m *UInt64Rules) GetGte() uint64 { + if m != nil && m.Gte != nil { + return *m.Gte + } + return 0 +} + +func (m *UInt64Rules) GetIn() []uint64 { + if m != nil { + return m.In + } + return nil +} + +func (m *UInt64Rules) GetNotIn() []uint64 { + if m != nil { + return m.NotIn + } + return nil +} + +func (m *UInt64Rules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// SInt32Rules describes the constraints applied to `sint32` values +type SInt32Rules struct { + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"zigzag32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int32 `protobuf:"zigzag32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int32 `protobuf:"zigzag32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int32 `protobuf:"zigzag32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int32 `protobuf:"zigzag32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"zigzag32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"zigzag32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SInt32Rules) Reset() { *m = SInt32Rules{} } +func (m *SInt32Rules) String() string { return proto.CompactTextString(m) } +func (*SInt32Rules) ProtoMessage() {} +func (*SInt32Rules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{7} +} + +func (m *SInt32Rules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SInt32Rules.Unmarshal(m, b) +} +func (m *SInt32Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SInt32Rules.Marshal(b, m, deterministic) +} +func (m *SInt32Rules) XXX_Merge(src proto.Message) { + xxx_messageInfo_SInt32Rules.Merge(m, src) +} +func (m *SInt32Rules) XXX_Size() int { + return xxx_messageInfo_SInt32Rules.Size(m) +} +func (m *SInt32Rules) XXX_DiscardUnknown() { + xxx_messageInfo_SInt32Rules.DiscardUnknown(m) +} + +var xxx_messageInfo_SInt32Rules proto.InternalMessageInfo + +func (m *SInt32Rules) GetConst() int32 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *SInt32Rules) GetLt() int32 { + if m != nil && m.Lt != nil { + return *m.Lt + } + return 0 +} + +func (m *SInt32Rules) GetLte() int32 { + if m != nil && m.Lte != nil { + return *m.Lte + } + return 0 +} + +func (m *SInt32Rules) GetGt() int32 { + if m != nil && m.Gt != nil { + return *m.Gt + } + return 0 +} + +func (m *SInt32Rules) GetGte() int32 { + if m != nil && m.Gte != nil { + return *m.Gte + } + return 0 +} + +func (m *SInt32Rules) GetIn() []int32 { + if m != nil { + return m.In + } + return nil +} + +func (m *SInt32Rules) GetNotIn() []int32 { + if m != nil { + return m.NotIn + } + return nil +} + +func (m *SInt32Rules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// SInt64Rules describes the constraints applied to `sint64` values +type SInt64Rules struct { + // Const specifies that this field must be exactly the specified value + Const *int64 `protobuf:"zigzag64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int64 `protobuf:"zigzag64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int64 `protobuf:"zigzag64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int64 `protobuf:"zigzag64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int64 `protobuf:"zigzag64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int64 `protobuf:"zigzag64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int64 `protobuf:"zigzag64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SInt64Rules) Reset() { *m = SInt64Rules{} } +func (m *SInt64Rules) String() string { return proto.CompactTextString(m) } +func (*SInt64Rules) ProtoMessage() {} +func (*SInt64Rules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{8} +} + +func (m *SInt64Rules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SInt64Rules.Unmarshal(m, b) +} +func (m *SInt64Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SInt64Rules.Marshal(b, m, deterministic) +} +func (m *SInt64Rules) XXX_Merge(src proto.Message) { + xxx_messageInfo_SInt64Rules.Merge(m, src) +} +func (m *SInt64Rules) XXX_Size() int { + return xxx_messageInfo_SInt64Rules.Size(m) +} +func (m *SInt64Rules) XXX_DiscardUnknown() { + xxx_messageInfo_SInt64Rules.DiscardUnknown(m) +} + +var xxx_messageInfo_SInt64Rules proto.InternalMessageInfo + +func (m *SInt64Rules) GetConst() int64 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *SInt64Rules) GetLt() int64 { + if m != nil && m.Lt != nil { + return *m.Lt + } + return 0 +} + +func (m *SInt64Rules) GetLte() int64 { + if m != nil && m.Lte != nil { + return *m.Lte + } + return 0 +} + +func (m *SInt64Rules) GetGt() int64 { + if m != nil && m.Gt != nil { + return *m.Gt + } + return 0 +} + +func (m *SInt64Rules) GetGte() int64 { + if m != nil && m.Gte != nil { + return *m.Gte + } + return 0 +} + +func (m *SInt64Rules) GetIn() []int64 { + if m != nil { + return m.In + } + return nil +} + +func (m *SInt64Rules) GetNotIn() []int64 { + if m != nil { + return m.NotIn + } + return nil +} + +func (m *SInt64Rules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// Fixed32Rules describes the constraints applied to `fixed32` values +type Fixed32Rules struct { + // Const specifies that this field must be exactly the specified value + Const *uint32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Fixed32Rules) Reset() { *m = Fixed32Rules{} } +func (m *Fixed32Rules) String() string { return proto.CompactTextString(m) } +func (*Fixed32Rules) ProtoMessage() {} +func (*Fixed32Rules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{9} +} + +func (m *Fixed32Rules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Fixed32Rules.Unmarshal(m, b) +} +func (m *Fixed32Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Fixed32Rules.Marshal(b, m, deterministic) +} +func (m *Fixed32Rules) XXX_Merge(src proto.Message) { + xxx_messageInfo_Fixed32Rules.Merge(m, src) +} +func (m *Fixed32Rules) XXX_Size() int { + return xxx_messageInfo_Fixed32Rules.Size(m) +} +func (m *Fixed32Rules) XXX_DiscardUnknown() { + xxx_messageInfo_Fixed32Rules.DiscardUnknown(m) +} + +var xxx_messageInfo_Fixed32Rules proto.InternalMessageInfo + +func (m *Fixed32Rules) GetConst() uint32 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *Fixed32Rules) GetLt() uint32 { + if m != nil && m.Lt != nil { + return *m.Lt + } + return 0 +} + +func (m *Fixed32Rules) GetLte() uint32 { + if m != nil && m.Lte != nil { + return *m.Lte + } + return 0 +} + +func (m *Fixed32Rules) GetGt() uint32 { + if m != nil && m.Gt != nil { + return *m.Gt + } + return 0 +} + +func (m *Fixed32Rules) GetGte() uint32 { + if m != nil && m.Gte != nil { + return *m.Gte + } + return 0 +} + +func (m *Fixed32Rules) GetIn() []uint32 { + if m != nil { + return m.In + } + return nil +} + +func (m *Fixed32Rules) GetNotIn() []uint32 { + if m != nil { + return m.NotIn + } + return nil +} + +func (m *Fixed32Rules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// Fixed64Rules describes the constraints applied to `fixed64` values +type Fixed64Rules struct { + // Const specifies that this field must be exactly the specified value + Const *uint64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Fixed64Rules) Reset() { *m = Fixed64Rules{} } +func (m *Fixed64Rules) String() string { return proto.CompactTextString(m) } +func (*Fixed64Rules) ProtoMessage() {} +func (*Fixed64Rules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{10} +} + +func (m *Fixed64Rules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Fixed64Rules.Unmarshal(m, b) +} +func (m *Fixed64Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Fixed64Rules.Marshal(b, m, deterministic) +} +func (m *Fixed64Rules) XXX_Merge(src proto.Message) { + xxx_messageInfo_Fixed64Rules.Merge(m, src) +} +func (m *Fixed64Rules) XXX_Size() int { + return xxx_messageInfo_Fixed64Rules.Size(m) +} +func (m *Fixed64Rules) XXX_DiscardUnknown() { + xxx_messageInfo_Fixed64Rules.DiscardUnknown(m) +} + +var xxx_messageInfo_Fixed64Rules proto.InternalMessageInfo + +func (m *Fixed64Rules) GetConst() uint64 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *Fixed64Rules) GetLt() uint64 { + if m != nil && m.Lt != nil { + return *m.Lt + } + return 0 +} + +func (m *Fixed64Rules) GetLte() uint64 { + if m != nil && m.Lte != nil { + return *m.Lte + } + return 0 +} + +func (m *Fixed64Rules) GetGt() uint64 { + if m != nil && m.Gt != nil { + return *m.Gt + } + return 0 +} + +func (m *Fixed64Rules) GetGte() uint64 { + if m != nil && m.Gte != nil { + return *m.Gte + } + return 0 +} + +func (m *Fixed64Rules) GetIn() []uint64 { + if m != nil { + return m.In + } + return nil +} + +func (m *Fixed64Rules) GetNotIn() []uint64 { + if m != nil { + return m.NotIn + } + return nil +} + +func (m *Fixed64Rules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// SFixed32Rules describes the constraints applied to `sfixed32` values +type SFixed32Rules struct { + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SFixed32Rules) Reset() { *m = SFixed32Rules{} } +func (m *SFixed32Rules) String() string { return proto.CompactTextString(m) } +func (*SFixed32Rules) ProtoMessage() {} +func (*SFixed32Rules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{11} +} + +func (m *SFixed32Rules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SFixed32Rules.Unmarshal(m, b) +} +func (m *SFixed32Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SFixed32Rules.Marshal(b, m, deterministic) +} +func (m *SFixed32Rules) XXX_Merge(src proto.Message) { + xxx_messageInfo_SFixed32Rules.Merge(m, src) +} +func (m *SFixed32Rules) XXX_Size() int { + return xxx_messageInfo_SFixed32Rules.Size(m) +} +func (m *SFixed32Rules) XXX_DiscardUnknown() { + xxx_messageInfo_SFixed32Rules.DiscardUnknown(m) +} + +var xxx_messageInfo_SFixed32Rules proto.InternalMessageInfo + +func (m *SFixed32Rules) GetConst() int32 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *SFixed32Rules) GetLt() int32 { + if m != nil && m.Lt != nil { + return *m.Lt + } + return 0 +} + +func (m *SFixed32Rules) GetLte() int32 { + if m != nil && m.Lte != nil { + return *m.Lte + } + return 0 +} + +func (m *SFixed32Rules) GetGt() int32 { + if m != nil && m.Gt != nil { + return *m.Gt + } + return 0 +} + +func (m *SFixed32Rules) GetGte() int32 { + if m != nil && m.Gte != nil { + return *m.Gte + } + return 0 +} + +func (m *SFixed32Rules) GetIn() []int32 { + if m != nil { + return m.In + } + return nil +} + +func (m *SFixed32Rules) GetNotIn() []int32 { + if m != nil { + return m.NotIn + } + return nil +} + +func (m *SFixed32Rules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// SFixed64Rules describes the constraints applied to `sfixed64` values +type SFixed64Rules struct { + // Const specifies that this field must be exactly the specified value + Const *int64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SFixed64Rules) Reset() { *m = SFixed64Rules{} } +func (m *SFixed64Rules) String() string { return proto.CompactTextString(m) } +func (*SFixed64Rules) ProtoMessage() {} +func (*SFixed64Rules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{12} +} + +func (m *SFixed64Rules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SFixed64Rules.Unmarshal(m, b) +} +func (m *SFixed64Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SFixed64Rules.Marshal(b, m, deterministic) +} +func (m *SFixed64Rules) XXX_Merge(src proto.Message) { + xxx_messageInfo_SFixed64Rules.Merge(m, src) +} +func (m *SFixed64Rules) XXX_Size() int { + return xxx_messageInfo_SFixed64Rules.Size(m) +} +func (m *SFixed64Rules) XXX_DiscardUnknown() { + xxx_messageInfo_SFixed64Rules.DiscardUnknown(m) +} + +var xxx_messageInfo_SFixed64Rules proto.InternalMessageInfo + +func (m *SFixed64Rules) GetConst() int64 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *SFixed64Rules) GetLt() int64 { + if m != nil && m.Lt != nil { + return *m.Lt + } + return 0 +} + +func (m *SFixed64Rules) GetLte() int64 { + if m != nil && m.Lte != nil { + return *m.Lte + } + return 0 +} + +func (m *SFixed64Rules) GetGt() int64 { + if m != nil && m.Gt != nil { + return *m.Gt + } + return 0 +} + +func (m *SFixed64Rules) GetGte() int64 { + if m != nil && m.Gte != nil { + return *m.Gte + } + return 0 +} + +func (m *SFixed64Rules) GetIn() []int64 { + if m != nil { + return m.In + } + return nil +} + +func (m *SFixed64Rules) GetNotIn() []int64 { + if m != nil { + return m.NotIn + } + return nil +} + +func (m *SFixed64Rules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// BoolRules describes the constraints applied to `bool` values +type BoolRules struct { + // Const specifies that this field must be exactly the specified value + Const *bool `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BoolRules) Reset() { *m = BoolRules{} } +func (m *BoolRules) String() string { return proto.CompactTextString(m) } +func (*BoolRules) ProtoMessage() {} +func (*BoolRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{13} +} + +func (m *BoolRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BoolRules.Unmarshal(m, b) +} +func (m *BoolRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BoolRules.Marshal(b, m, deterministic) +} +func (m *BoolRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_BoolRules.Merge(m, src) +} +func (m *BoolRules) XXX_Size() int { + return xxx_messageInfo_BoolRules.Size(m) +} +func (m *BoolRules) XXX_DiscardUnknown() { + xxx_messageInfo_BoolRules.DiscardUnknown(m) +} + +var xxx_messageInfo_BoolRules proto.InternalMessageInfo + +func (m *BoolRules) GetConst() bool { + if m != nil && m.Const != nil { + return *m.Const + } + return false +} + +// StringRules describe the constraints applied to `string` values +type StringRules struct { + // Const specifies that this field must be exactly the specified value + Const *string `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"` + // Len specifies that this field must be the specified number of + // characters (Unicode code points). Note that the number of + // characters may differ from the number of bytes in the string. + Len *uint64 `protobuf:"varint,19,opt,name=len" json:"len,omitempty"` + // MinLen specifies that this field must be the specified number of + // characters (Unicode code points) at a minimum. Note that the number of + // characters may differ from the number of bytes in the string. + MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"` + // MaxLen specifies that this field must be the specified number of + // characters (Unicode code points) at a maximum. Note that the number of + // characters may differ from the number of bytes in the string. + MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"` + // LenBytes specifies that this field must be the specified number of bytes + // at a minimum + LenBytes *uint64 `protobuf:"varint,20,opt,name=len_bytes,json=lenBytes" json:"len_bytes,omitempty"` + // MinBytes specifies that this field must be the specified number of bytes + // at a minimum + MinBytes *uint64 `protobuf:"varint,4,opt,name=min_bytes,json=minBytes" json:"min_bytes,omitempty"` + // MaxBytes specifies that this field must be the specified number of bytes + // at a maximum + MaxBytes *uint64 `protobuf:"varint,5,opt,name=max_bytes,json=maxBytes" json:"max_bytes,omitempty"` + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + Pattern *string `protobuf:"bytes,6,opt,name=pattern" json:"pattern,omitempty"` + // Prefix specifies that this field must have the specified substring at + // the beginning of the string. + Prefix *string `protobuf:"bytes,7,opt,name=prefix" json:"prefix,omitempty"` + // Suffix specifies that this field must have the specified substring at + // the end of the string. + Suffix *string `protobuf:"bytes,8,opt,name=suffix" json:"suffix,omitempty"` + // Contains specifies that this field must have the specified substring + // anywhere in the string. + Contains *string `protobuf:"bytes,9,opt,name=contains" json:"contains,omitempty"` + // NotContains specifies that this field cannot have the specified substring + // anywhere in the string. + NotContains *string `protobuf:"bytes,23,opt,name=not_contains,json=notContains" json:"not_contains,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []string `protobuf:"bytes,10,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []string `protobuf:"bytes,11,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // WellKnown rules provide advanced constraints against common string + // patterns + // + // Types that are valid to be assigned to WellKnown: + // *StringRules_Email + // *StringRules_Hostname + // *StringRules_Ip + // *StringRules_Ipv4 + // *StringRules_Ipv6 + // *StringRules_Uri + // *StringRules_UriRef + // *StringRules_Address + // *StringRules_Uuid + // *StringRules_WellKnownRegex + // *StringRules_Alphabets + // *StringRules_Alphanums + // *StringRules_Lowercase + // *StringRules_Tsecstr + WellKnown isStringRules_WellKnown `protobuf_oneof:"well_known"` + // This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable + // strict header validation. + // By default, this is true, and HTTP header validations are RFC-compliant. + // Setting to false will enable a looser validations that only disallows + // \r\n\0 characters, which can be used to bypass header matching rules. + Strict *bool `protobuf:"varint,25,opt,name=strict,def=1" json:"strict,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,26,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StringRules) Reset() { *m = StringRules{} } +func (m *StringRules) String() string { return proto.CompactTextString(m) } +func (*StringRules) ProtoMessage() {} +func (*StringRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{14} +} + +func (m *StringRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StringRules.Unmarshal(m, b) +} +func (m *StringRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StringRules.Marshal(b, m, deterministic) +} +func (m *StringRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_StringRules.Merge(m, src) +} +func (m *StringRules) XXX_Size() int { + return xxx_messageInfo_StringRules.Size(m) +} +func (m *StringRules) XXX_DiscardUnknown() { + xxx_messageInfo_StringRules.DiscardUnknown(m) +} + +var xxx_messageInfo_StringRules proto.InternalMessageInfo + +const Default_StringRules_Strict bool = true + +func (m *StringRules) GetConst() string { + if m != nil && m.Const != nil { + return *m.Const + } + return "" +} + +func (m *StringRules) GetLen() uint64 { + if m != nil && m.Len != nil { + return *m.Len + } + return 0 +} + +func (m *StringRules) GetMinLen() uint64 { + if m != nil && m.MinLen != nil { + return *m.MinLen + } + return 0 +} + +func (m *StringRules) GetMaxLen() uint64 { + if m != nil && m.MaxLen != nil { + return *m.MaxLen + } + return 0 +} + +func (m *StringRules) GetLenBytes() uint64 { + if m != nil && m.LenBytes != nil { + return *m.LenBytes + } + return 0 +} + +func (m *StringRules) GetMinBytes() uint64 { + if m != nil && m.MinBytes != nil { + return *m.MinBytes + } + return 0 +} + +func (m *StringRules) GetMaxBytes() uint64 { + if m != nil && m.MaxBytes != nil { + return *m.MaxBytes + } + return 0 +} + +func (m *StringRules) GetPattern() string { + if m != nil && m.Pattern != nil { + return *m.Pattern + } + return "" +} + +func (m *StringRules) GetPrefix() string { + if m != nil && m.Prefix != nil { + return *m.Prefix + } + return "" +} + +func (m *StringRules) GetSuffix() string { + if m != nil && m.Suffix != nil { + return *m.Suffix + } + return "" +} + +func (m *StringRules) GetContains() string { + if m != nil && m.Contains != nil { + return *m.Contains + } + return "" +} + +func (m *StringRules) GetNotContains() string { + if m != nil && m.NotContains != nil { + return *m.NotContains + } + return "" +} + +func (m *StringRules) GetIn() []string { + if m != nil { + return m.In + } + return nil +} + +func (m *StringRules) GetNotIn() []string { + if m != nil { + return m.NotIn + } + return nil +} + +type isStringRules_WellKnown interface { + isStringRules_WellKnown() +} + +type StringRules_Email struct { + Email bool `protobuf:"varint,12,opt,name=email,oneof"` +} + +type StringRules_Hostname struct { + Hostname bool `protobuf:"varint,13,opt,name=hostname,oneof"` +} + +type StringRules_Ip struct { + Ip bool `protobuf:"varint,14,opt,name=ip,oneof"` +} + +type StringRules_Ipv4 struct { + Ipv4 bool `protobuf:"varint,15,opt,name=ipv4,oneof"` +} + +type StringRules_Ipv6 struct { + Ipv6 bool `protobuf:"varint,16,opt,name=ipv6,oneof"` +} + +type StringRules_Uri struct { + Uri bool `protobuf:"varint,17,opt,name=uri,oneof"` +} + +type StringRules_UriRef struct { + UriRef bool `protobuf:"varint,18,opt,name=uri_ref,json=uriRef,oneof"` +} + +type StringRules_Address struct { + Address bool `protobuf:"varint,21,opt,name=address,oneof"` +} + +type StringRules_Uuid struct { + Uuid bool `protobuf:"varint,22,opt,name=uuid,oneof"` +} + +type StringRules_WellKnownRegex struct { + WellKnownRegex KnownRegex `protobuf:"varint,24,opt,name=well_known_regex,json=wellKnownRegex,enum=trpc.KnownRegex,oneof"` +} + +type StringRules_Alphabets struct { + Alphabets bool `protobuf:"varint,27,opt,name=alphabets,oneof"` +} + +type StringRules_Alphanums struct { + Alphanums bool `protobuf:"varint,28,opt,name=alphanums,oneof"` +} + +type StringRules_Lowercase struct { + Lowercase bool `protobuf:"varint,29,opt,name=lowercase,oneof"` +} + +type StringRules_Tsecstr struct { + Tsecstr bool `protobuf:"varint,30,opt,name=tsecstr,oneof"` +} + +func (*StringRules_Email) isStringRules_WellKnown() {} + +func (*StringRules_Hostname) isStringRules_WellKnown() {} + +func (*StringRules_Ip) isStringRules_WellKnown() {} + +func (*StringRules_Ipv4) isStringRules_WellKnown() {} + +func (*StringRules_Ipv6) isStringRules_WellKnown() {} + +func (*StringRules_Uri) isStringRules_WellKnown() {} + +func (*StringRules_UriRef) isStringRules_WellKnown() {} + +func (*StringRules_Address) isStringRules_WellKnown() {} + +func (*StringRules_Uuid) isStringRules_WellKnown() {} + +func (*StringRules_WellKnownRegex) isStringRules_WellKnown() {} + +func (*StringRules_Alphabets) isStringRules_WellKnown() {} + +func (*StringRules_Alphanums) isStringRules_WellKnown() {} + +func (*StringRules_Lowercase) isStringRules_WellKnown() {} + +func (*StringRules_Tsecstr) isStringRules_WellKnown() {} + +func (m *StringRules) GetWellKnown() isStringRules_WellKnown { + if m != nil { + return m.WellKnown + } + return nil +} + +func (m *StringRules) GetEmail() bool { + if x, ok := m.GetWellKnown().(*StringRules_Email); ok { + return x.Email + } + return false +} + +func (m *StringRules) GetHostname() bool { + if x, ok := m.GetWellKnown().(*StringRules_Hostname); ok { + return x.Hostname + } + return false +} + +func (m *StringRules) GetIp() bool { + if x, ok := m.GetWellKnown().(*StringRules_Ip); ok { + return x.Ip + } + return false +} + +func (m *StringRules) GetIpv4() bool { + if x, ok := m.GetWellKnown().(*StringRules_Ipv4); ok { + return x.Ipv4 + } + return false +} + +func (m *StringRules) GetIpv6() bool { + if x, ok := m.GetWellKnown().(*StringRules_Ipv6); ok { + return x.Ipv6 + } + return false +} + +func (m *StringRules) GetUri() bool { + if x, ok := m.GetWellKnown().(*StringRules_Uri); ok { + return x.Uri + } + return false +} + +func (m *StringRules) GetUriRef() bool { + if x, ok := m.GetWellKnown().(*StringRules_UriRef); ok { + return x.UriRef + } + return false +} + +func (m *StringRules) GetAddress() bool { + if x, ok := m.GetWellKnown().(*StringRules_Address); ok { + return x.Address + } + return false +} + +func (m *StringRules) GetUuid() bool { + if x, ok := m.GetWellKnown().(*StringRules_Uuid); ok { + return x.Uuid + } + return false +} + +func (m *StringRules) GetWellKnownRegex() KnownRegex { + if x, ok := m.GetWellKnown().(*StringRules_WellKnownRegex); ok { + return x.WellKnownRegex + } + return KnownRegex_UNKNOWN +} + +func (m *StringRules) GetAlphabets() bool { + if x, ok := m.GetWellKnown().(*StringRules_Alphabets); ok { + return x.Alphabets + } + return false +} + +func (m *StringRules) GetAlphanums() bool { + if x, ok := m.GetWellKnown().(*StringRules_Alphanums); ok { + return x.Alphanums + } + return false +} + +func (m *StringRules) GetLowercase() bool { + if x, ok := m.GetWellKnown().(*StringRules_Lowercase); ok { + return x.Lowercase + } + return false +} + +func (m *StringRules) GetTsecstr() bool { + if x, ok := m.GetWellKnown().(*StringRules_Tsecstr); ok { + return x.Tsecstr + } + return false +} + +func (m *StringRules) GetStrict() bool { + if m != nil && m.Strict != nil { + return *m.Strict + } + return Default_StringRules_Strict +} + +func (m *StringRules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*StringRules) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*StringRules_Email)(nil), + (*StringRules_Hostname)(nil), + (*StringRules_Ip)(nil), + (*StringRules_Ipv4)(nil), + (*StringRules_Ipv6)(nil), + (*StringRules_Uri)(nil), + (*StringRules_UriRef)(nil), + (*StringRules_Address)(nil), + (*StringRules_Uuid)(nil), + (*StringRules_WellKnownRegex)(nil), + (*StringRules_Alphabets)(nil), + (*StringRules_Alphanums)(nil), + (*StringRules_Lowercase)(nil), + (*StringRules_Tsecstr)(nil), + } +} + +// BytesRules describe the constraints applied to `bytes` values +type BytesRules struct { + // Const specifies that this field must be exactly the specified value + Const []byte `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"` + // Len specifies that this field must be the specified number of bytes + Len *uint64 `protobuf:"varint,13,opt,name=len" json:"len,omitempty"` + // MinLen specifies that this field must be the specified number of bytes + // at a minimum + MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"` + // MaxLen specifies that this field must be the specified number of bytes + // at a maximum + MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"` + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + Pattern *string `protobuf:"bytes,4,opt,name=pattern" json:"pattern,omitempty"` + // Prefix specifies that this field must have the specified bytes at the + // beginning of the string. + Prefix []byte `protobuf:"bytes,5,opt,name=prefix" json:"prefix,omitempty"` + // Suffix specifies that this field must have the specified bytes at the + // end of the string. + Suffix []byte `protobuf:"bytes,6,opt,name=suffix" json:"suffix,omitempty"` + // Contains specifies that this field must have the specified bytes + // anywhere in the string. + Contains []byte `protobuf:"bytes,7,opt,name=contains" json:"contains,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In [][]byte `protobuf:"bytes,8,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn [][]byte `protobuf:"bytes,9,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // WellKnown rules provide advanced constraints against common byte + // patterns + // + // Types that are valid to be assigned to WellKnown: + // *BytesRules_Ip + // *BytesRules_Ipv4 + // *BytesRules_Ipv6 + WellKnown isBytesRules_WellKnown `protobuf_oneof:"well_known"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,14,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BytesRules) Reset() { *m = BytesRules{} } +func (m *BytesRules) String() string { return proto.CompactTextString(m) } +func (*BytesRules) ProtoMessage() {} +func (*BytesRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{15} +} + +func (m *BytesRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BytesRules.Unmarshal(m, b) +} +func (m *BytesRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BytesRules.Marshal(b, m, deterministic) +} +func (m *BytesRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_BytesRules.Merge(m, src) +} +func (m *BytesRules) XXX_Size() int { + return xxx_messageInfo_BytesRules.Size(m) +} +func (m *BytesRules) XXX_DiscardUnknown() { + xxx_messageInfo_BytesRules.DiscardUnknown(m) +} + +var xxx_messageInfo_BytesRules proto.InternalMessageInfo + +func (m *BytesRules) GetConst() []byte { + if m != nil { + return m.Const + } + return nil +} + +func (m *BytesRules) GetLen() uint64 { + if m != nil && m.Len != nil { + return *m.Len + } + return 0 +} + +func (m *BytesRules) GetMinLen() uint64 { + if m != nil && m.MinLen != nil { + return *m.MinLen + } + return 0 +} + +func (m *BytesRules) GetMaxLen() uint64 { + if m != nil && m.MaxLen != nil { + return *m.MaxLen + } + return 0 +} + +func (m *BytesRules) GetPattern() string { + if m != nil && m.Pattern != nil { + return *m.Pattern + } + return "" +} + +func (m *BytesRules) GetPrefix() []byte { + if m != nil { + return m.Prefix + } + return nil +} + +func (m *BytesRules) GetSuffix() []byte { + if m != nil { + return m.Suffix + } + return nil +} + +func (m *BytesRules) GetContains() []byte { + if m != nil { + return m.Contains + } + return nil +} + +func (m *BytesRules) GetIn() [][]byte { + if m != nil { + return m.In + } + return nil +} + +func (m *BytesRules) GetNotIn() [][]byte { + if m != nil { + return m.NotIn + } + return nil +} + +type isBytesRules_WellKnown interface { + isBytesRules_WellKnown() +} + +type BytesRules_Ip struct { + Ip bool `protobuf:"varint,10,opt,name=ip,oneof"` +} + +type BytesRules_Ipv4 struct { + Ipv4 bool `protobuf:"varint,11,opt,name=ipv4,oneof"` +} + +type BytesRules_Ipv6 struct { + Ipv6 bool `protobuf:"varint,12,opt,name=ipv6,oneof"` +} + +func (*BytesRules_Ip) isBytesRules_WellKnown() {} + +func (*BytesRules_Ipv4) isBytesRules_WellKnown() {} + +func (*BytesRules_Ipv6) isBytesRules_WellKnown() {} + +func (m *BytesRules) GetWellKnown() isBytesRules_WellKnown { + if m != nil { + return m.WellKnown + } + return nil +} + +func (m *BytesRules) GetIp() bool { + if x, ok := m.GetWellKnown().(*BytesRules_Ip); ok { + return x.Ip + } + return false +} + +func (m *BytesRules) GetIpv4() bool { + if x, ok := m.GetWellKnown().(*BytesRules_Ipv4); ok { + return x.Ipv4 + } + return false +} + +func (m *BytesRules) GetIpv6() bool { + if x, ok := m.GetWellKnown().(*BytesRules_Ipv6); ok { + return x.Ipv6 + } + return false +} + +func (m *BytesRules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*BytesRules) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*BytesRules_Ip)(nil), + (*BytesRules_Ipv4)(nil), + (*BytesRules_Ipv6)(nil), + } +} + +// EnumRules describe the constraints applied to enum values +type EnumRules struct { + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // DefinedOnly specifies that this field must be only one of the defined + // values for this enum, failing on any undefined value. + DefinedOnly *bool `protobuf:"varint,2,opt,name=defined_only,json=definedOnly" json:"defined_only,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"varint,3,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"varint,4,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EnumRules) Reset() { *m = EnumRules{} } +func (m *EnumRules) String() string { return proto.CompactTextString(m) } +func (*EnumRules) ProtoMessage() {} +func (*EnumRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{16} +} + +func (m *EnumRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EnumRules.Unmarshal(m, b) +} +func (m *EnumRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EnumRules.Marshal(b, m, deterministic) +} +func (m *EnumRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_EnumRules.Merge(m, src) +} +func (m *EnumRules) XXX_Size() int { + return xxx_messageInfo_EnumRules.Size(m) +} +func (m *EnumRules) XXX_DiscardUnknown() { + xxx_messageInfo_EnumRules.DiscardUnknown(m) +} + +var xxx_messageInfo_EnumRules proto.InternalMessageInfo + +func (m *EnumRules) GetConst() int32 { + if m != nil && m.Const != nil { + return *m.Const + } + return 0 +} + +func (m *EnumRules) GetDefinedOnly() bool { + if m != nil && m.DefinedOnly != nil { + return *m.DefinedOnly + } + return false +} + +func (m *EnumRules) GetIn() []int32 { + if m != nil { + return m.In + } + return nil +} + +func (m *EnumRules) GetNotIn() []int32 { + if m != nil { + return m.NotIn + } + return nil +} + +// MessageRules describe the constraints applied to embedded message values. +// For message-type fields, validation is performed recursively. +type MessageRules struct { + // Skip specifies that the validation rules of this field should not be + // evaluated + Skip *bool `protobuf:"varint,1,opt,name=skip" json:"skip,omitempty"` + // Required specifies that this field must be set + Required *bool `protobuf:"varint,2,opt,name=required" json:"required,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MessageRules) Reset() { *m = MessageRules{} } +func (m *MessageRules) String() string { return proto.CompactTextString(m) } +func (*MessageRules) ProtoMessage() {} +func (*MessageRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{17} +} + +func (m *MessageRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MessageRules.Unmarshal(m, b) +} +func (m *MessageRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MessageRules.Marshal(b, m, deterministic) +} +func (m *MessageRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_MessageRules.Merge(m, src) +} +func (m *MessageRules) XXX_Size() int { + return xxx_messageInfo_MessageRules.Size(m) +} +func (m *MessageRules) XXX_DiscardUnknown() { + xxx_messageInfo_MessageRules.DiscardUnknown(m) +} + +var xxx_messageInfo_MessageRules proto.InternalMessageInfo + +func (m *MessageRules) GetSkip() bool { + if m != nil && m.Skip != nil { + return *m.Skip + } + return false +} + +func (m *MessageRules) GetRequired() bool { + if m != nil && m.Required != nil { + return *m.Required + } + return false +} + +// RepeatedRules describe the constraints applied to `repeated` values +type RepeatedRules struct { + // MinItems specifies that this field must have the specified number of + // items at a minimum + MinItems *uint64 `protobuf:"varint,1,opt,name=min_items,json=minItems" json:"min_items,omitempty"` + // MaxItems specifies that this field must have the specified number of + // items at a maximum + MaxItems *uint64 `protobuf:"varint,2,opt,name=max_items,json=maxItems" json:"max_items,omitempty"` + // Unique specifies that all elements in this field must be unique. This + // contraint is only applicable to scalar and enum types (messages are not + // supported). + Unique *bool `protobuf:"varint,3,opt,name=unique" json:"unique,omitempty"` + // Items specifies the contraints to be applied to each item in the field. + // Repeated message fields will still execute validation against each item + // unless skip is specified here. + Items *FieldRules `protobuf:"bytes,4,opt,name=items" json:"items,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,5,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RepeatedRules) Reset() { *m = RepeatedRules{} } +func (m *RepeatedRules) String() string { return proto.CompactTextString(m) } +func (*RepeatedRules) ProtoMessage() {} +func (*RepeatedRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{18} +} + +func (m *RepeatedRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RepeatedRules.Unmarshal(m, b) +} +func (m *RepeatedRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RepeatedRules.Marshal(b, m, deterministic) +} +func (m *RepeatedRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_RepeatedRules.Merge(m, src) +} +func (m *RepeatedRules) XXX_Size() int { + return xxx_messageInfo_RepeatedRules.Size(m) +} +func (m *RepeatedRules) XXX_DiscardUnknown() { + xxx_messageInfo_RepeatedRules.DiscardUnknown(m) +} + +var xxx_messageInfo_RepeatedRules proto.InternalMessageInfo + +func (m *RepeatedRules) GetMinItems() uint64 { + if m != nil && m.MinItems != nil { + return *m.MinItems + } + return 0 +} + +func (m *RepeatedRules) GetMaxItems() uint64 { + if m != nil && m.MaxItems != nil { + return *m.MaxItems + } + return 0 +} + +func (m *RepeatedRules) GetUnique() bool { + if m != nil && m.Unique != nil { + return *m.Unique + } + return false +} + +func (m *RepeatedRules) GetItems() *FieldRules { + if m != nil { + return m.Items + } + return nil +} + +func (m *RepeatedRules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// MapRules describe the constraints applied to `map` values +type MapRules struct { + // MinPairs specifies that this field must have the specified number of + // KVs at a minimum + MinPairs *uint64 `protobuf:"varint,1,opt,name=min_pairs,json=minPairs" json:"min_pairs,omitempty"` + // MaxPairs specifies that this field must have the specified number of + // KVs at a maximum + MaxPairs *uint64 `protobuf:"varint,2,opt,name=max_pairs,json=maxPairs" json:"max_pairs,omitempty"` + // NoSparse specifies values in this field cannot be unset. This only + // applies to map's with message value types. + NoSparse *bool `protobuf:"varint,3,opt,name=no_sparse,json=noSparse" json:"no_sparse,omitempty"` + // Keys specifies the constraints to be applied to each key in the field. + Keys *FieldRules `protobuf:"bytes,4,opt,name=keys" json:"keys,omitempty"` + // Values specifies the constraints to be applied to the value of each key + // in the field. Message values will still have their validations evaluated + // unless skip is specified here. + Values *FieldRules `protobuf:"bytes,5,opt,name=values" json:"values,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,6,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MapRules) Reset() { *m = MapRules{} } +func (m *MapRules) String() string { return proto.CompactTextString(m) } +func (*MapRules) ProtoMessage() {} +func (*MapRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{19} +} + +func (m *MapRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MapRules.Unmarshal(m, b) +} +func (m *MapRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MapRules.Marshal(b, m, deterministic) +} +func (m *MapRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_MapRules.Merge(m, src) +} +func (m *MapRules) XXX_Size() int { + return xxx_messageInfo_MapRules.Size(m) +} +func (m *MapRules) XXX_DiscardUnknown() { + xxx_messageInfo_MapRules.DiscardUnknown(m) +} + +var xxx_messageInfo_MapRules proto.InternalMessageInfo + +func (m *MapRules) GetMinPairs() uint64 { + if m != nil && m.MinPairs != nil { + return *m.MinPairs + } + return 0 +} + +func (m *MapRules) GetMaxPairs() uint64 { + if m != nil && m.MaxPairs != nil { + return *m.MaxPairs + } + return 0 +} + +func (m *MapRules) GetNoSparse() bool { + if m != nil && m.NoSparse != nil { + return *m.NoSparse + } + return false +} + +func (m *MapRules) GetKeys() *FieldRules { + if m != nil { + return m.Keys + } + return nil +} + +func (m *MapRules) GetValues() *FieldRules { + if m != nil { + return m.Values + } + return nil +} + +func (m *MapRules) GetIgnoreEmpty() bool { + if m != nil && m.IgnoreEmpty != nil { + return *m.IgnoreEmpty + } + return false +} + +// AnyRules describe constraints applied exclusively to the +// `google.protobuf.Any` well-known type +type AnyRules struct { + // Required specifies that this field must be set + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` + // In specifies that this field's `type_url` must be equal to one of the + // specified values. + In []string `protobuf:"bytes,2,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field's `type_url` must not be equal to any of + // the specified values. + NotIn []string `protobuf:"bytes,3,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AnyRules) Reset() { *m = AnyRules{} } +func (m *AnyRules) String() string { return proto.CompactTextString(m) } +func (*AnyRules) ProtoMessage() {} +func (*AnyRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{20} +} + +func (m *AnyRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AnyRules.Unmarshal(m, b) +} +func (m *AnyRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AnyRules.Marshal(b, m, deterministic) +} +func (m *AnyRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_AnyRules.Merge(m, src) +} +func (m *AnyRules) XXX_Size() int { + return xxx_messageInfo_AnyRules.Size(m) +} +func (m *AnyRules) XXX_DiscardUnknown() { + xxx_messageInfo_AnyRules.DiscardUnknown(m) +} + +var xxx_messageInfo_AnyRules proto.InternalMessageInfo + +func (m *AnyRules) GetRequired() bool { + if m != nil && m.Required != nil { + return *m.Required + } + return false +} + +func (m *AnyRules) GetIn() []string { + if m != nil { + return m.In + } + return nil +} + +func (m *AnyRules) GetNotIn() []string { + if m != nil { + return m.NotIn + } + return nil +} + +// DurationRules describe the constraints applied exclusively to the +// `google.protobuf.Duration` well-known type +type DurationRules struct { + // Required specifies that this field must be set + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` + // Const specifies that this field must be exactly the specified value + Const *durationpb.Duration `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *durationpb.Duration `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` + // Lt specifies that this field must be less than the specified value, + // inclusive + Lte *durationpb.Duration `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive + Gt *durationpb.Duration `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than the specified value, + // inclusive + Gte *durationpb.Duration `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []*durationpb.Duration `protobuf:"bytes,7,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []*durationpb.Duration `protobuf:"bytes,8,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DurationRules) Reset() { *m = DurationRules{} } +func (m *DurationRules) String() string { return proto.CompactTextString(m) } +func (*DurationRules) ProtoMessage() {} +func (*DurationRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{21} +} + +func (m *DurationRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DurationRules.Unmarshal(m, b) +} +func (m *DurationRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DurationRules.Marshal(b, m, deterministic) +} +func (m *DurationRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_DurationRules.Merge(m, src) +} +func (m *DurationRules) XXX_Size() int { + return xxx_messageInfo_DurationRules.Size(m) +} +func (m *DurationRules) XXX_DiscardUnknown() { + xxx_messageInfo_DurationRules.DiscardUnknown(m) +} + +var xxx_messageInfo_DurationRules proto.InternalMessageInfo + +func (m *DurationRules) GetRequired() bool { + if m != nil && m.Required != nil { + return *m.Required + } + return false +} + +func (m *DurationRules) GetConst() *durationpb.Duration { + if m != nil { + return m.Const + } + return nil +} + +func (m *DurationRules) GetLt() *durationpb.Duration { + if m != nil { + return m.Lt + } + return nil +} + +func (m *DurationRules) GetLte() *durationpb.Duration { + if m != nil { + return m.Lte + } + return nil +} + +func (m *DurationRules) GetGt() *durationpb.Duration { + if m != nil { + return m.Gt + } + return nil +} + +func (m *DurationRules) GetGte() *durationpb.Duration { + if m != nil { + return m.Gte + } + return nil +} + +func (m *DurationRules) GetIn() []*durationpb.Duration { + if m != nil { + return m.In + } + return nil +} + +func (m *DurationRules) GetNotIn() []*durationpb.Duration { + if m != nil { + return m.NotIn + } + return nil +} + +// TimestampRules describe the constraints applied exclusively to the +// `google.protobuf.Timestamp` well-known type +type TimestampRules struct { + // Required specifies that this field must be set + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` + // Const specifies that this field must be exactly the specified value + Const *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than the specified value, + // inclusive + Lte *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive + Gt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than the specified value, + // inclusive + Gte *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` + // LtNow specifies that this must be less than the current time. LtNow + // can only be used with the Within rule. + LtNow *bool `protobuf:"varint,7,opt,name=lt_now,json=ltNow" json:"lt_now,omitempty"` + // GtNow specifies that this must be greater than the current time. GtNow + // can only be used with the Within rule. + GtNow *bool `protobuf:"varint,8,opt,name=gt_now,json=gtNow" json:"gt_now,omitempty"` + // Within specifies that this field must be within this duration of the + // current time. This constraint can be used alone or with the LtNow and + // GtNow rules. + Within *durationpb.Duration `protobuf:"bytes,9,opt,name=within" json:"within,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TimestampRules) Reset() { *m = TimestampRules{} } +func (m *TimestampRules) String() string { return proto.CompactTextString(m) } +func (*TimestampRules) ProtoMessage() {} +func (*TimestampRules) Descriptor() ([]byte, []int) { + return fileDescriptor_8d25120e14073ab5, []int{22} +} + +func (m *TimestampRules) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TimestampRules.Unmarshal(m, b) +} +func (m *TimestampRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TimestampRules.Marshal(b, m, deterministic) +} +func (m *TimestampRules) XXX_Merge(src proto.Message) { + xxx_messageInfo_TimestampRules.Merge(m, src) +} +func (m *TimestampRules) XXX_Size() int { + return xxx_messageInfo_TimestampRules.Size(m) +} +func (m *TimestampRules) XXX_DiscardUnknown() { + xxx_messageInfo_TimestampRules.DiscardUnknown(m) +} + +var xxx_messageInfo_TimestampRules proto.InternalMessageInfo + +func (m *TimestampRules) GetRequired() bool { + if m != nil && m.Required != nil { + return *m.Required + } + return false +} + +func (m *TimestampRules) GetConst() *timestamppb.Timestamp { + if m != nil { + return m.Const + } + return nil +} + +func (m *TimestampRules) GetLt() *timestamppb.Timestamp { + if m != nil { + return m.Lt + } + return nil +} + +func (m *TimestampRules) GetLte() *timestamppb.Timestamp { + if m != nil { + return m.Lte + } + return nil +} + +func (m *TimestampRules) GetGt() *timestamppb.Timestamp { + if m != nil { + return m.Gt + } + return nil +} + +func (m *TimestampRules) GetGte() *timestamppb.Timestamp { + if m != nil { + return m.Gte + } + return nil +} + +func (m *TimestampRules) GetLtNow() bool { + if m != nil && m.LtNow != nil { + return *m.LtNow + } + return false +} + +func (m *TimestampRules) GetGtNow() bool { + if m != nil && m.GtNow != nil { + return *m.GtNow + } + return false +} + +func (m *TimestampRules) GetWithin() *durationpb.Duration { + if m != nil { + return m.Within + } + return nil +} + +var E_Disabled = &proto.ExtensionDesc{ + ExtendedType: (*descriptorpb.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1071, + Name: "trpc.disabled", + Tag: "varint,1071,opt,name=disabled", + Filename: "validate.ext.proto", +} + +var E_Ignored = &proto.ExtensionDesc{ + ExtendedType: (*descriptorpb.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1072, + Name: "trpc.ignored", + Tag: "varint,1072,opt,name=ignored", + Filename: "validate.ext.proto", +} + +var E_Required = &proto.ExtensionDesc{ + ExtendedType: (*descriptorpb.OneofOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1071, + Name: "trpc.required", + Tag: "varint,1071,opt,name=required", + Filename: "validate.ext.proto", +} + +var E_Rules = &proto.ExtensionDesc{ + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*FieldRules)(nil), + Field: 1071, + Name: "trpc.rules", + Tag: "bytes,1071,opt,name=rules", + Filename: "validate.ext.proto", +} + +func init() { + proto.RegisterEnum("trpc.KnownRegex", KnownRegex_name, KnownRegex_value) + proto.RegisterType((*FieldRules)(nil), "trpc.FieldRules") + proto.RegisterType((*FloatRules)(nil), "trpc.FloatRules") + proto.RegisterType((*DoubleRules)(nil), "trpc.DoubleRules") + proto.RegisterType((*Int32Rules)(nil), "trpc.Int32Rules") + proto.RegisterType((*Int64Rules)(nil), "trpc.Int64Rules") + proto.RegisterType((*UInt32Rules)(nil), "trpc.UInt32Rules") + proto.RegisterType((*UInt64Rules)(nil), "trpc.UInt64Rules") + proto.RegisterType((*SInt32Rules)(nil), "trpc.SInt32Rules") + proto.RegisterType((*SInt64Rules)(nil), "trpc.SInt64Rules") + proto.RegisterType((*Fixed32Rules)(nil), "trpc.Fixed32Rules") + proto.RegisterType((*Fixed64Rules)(nil), "trpc.Fixed64Rules") + proto.RegisterType((*SFixed32Rules)(nil), "trpc.SFixed32Rules") + proto.RegisterType((*SFixed64Rules)(nil), "trpc.SFixed64Rules") + proto.RegisterType((*BoolRules)(nil), "trpc.BoolRules") + proto.RegisterType((*StringRules)(nil), "trpc.StringRules") + proto.RegisterType((*BytesRules)(nil), "trpc.BytesRules") + proto.RegisterType((*EnumRules)(nil), "trpc.EnumRules") + proto.RegisterType((*MessageRules)(nil), "trpc.MessageRules") + proto.RegisterType((*RepeatedRules)(nil), "trpc.RepeatedRules") + proto.RegisterType((*MapRules)(nil), "trpc.MapRules") + proto.RegisterType((*AnyRules)(nil), "trpc.AnyRules") + proto.RegisterType((*DurationRules)(nil), "trpc.DurationRules") + proto.RegisterType((*TimestampRules)(nil), "trpc.TimestampRules") + proto.RegisterExtension(E_Disabled) + proto.RegisterExtension(E_Ignored) + proto.RegisterExtension(E_Required) + proto.RegisterExtension(E_Rules) +} + +func init() { proto.RegisterFile("validate.ext.proto", fileDescriptor_8d25120e14073ab5) } + +var fileDescriptor_8d25120e14073ab5 = []byte{ + // 1889 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x98, 0xdd, 0x6e, 0x1b, 0xc7, + 0x15, 0xc7, 0xbd, 0xdc, 0x4f, 0x1e, 0x8a, 0x22, 0x39, 0x91, 0x9d, 0xb5, 0x62, 0x3b, 0x32, 0xd1, + 0x16, 0x8a, 0x93, 0xd2, 0x89, 0x23, 0xe8, 0x42, 0x48, 0x0b, 0x58, 0xb5, 0x04, 0x1b, 0x89, 0xe5, + 0x60, 0x6d, 0xb7, 0x40, 0x6f, 0x88, 0x15, 0x39, 0xa4, 0x17, 0x5e, 0xce, 0x6e, 0x76, 0x67, 0x2d, + 0xf2, 0x9d, 0x0a, 0x34, 0x6d, 0x5f, 0xa3, 0x97, 0x7d, 0x82, 0xde, 0xf5, 0xae, 0x40, 0x5f, 0xa0, + 0x98, 0x8f, 0xfd, 0x9a, 0x5d, 0x49, 0x95, 0x7b, 0x25, 0xcd, 0x39, 0xff, 0x39, 0xf3, 0x9b, 0x33, + 0x1f, 0x3c, 0x3b, 0x80, 0x3e, 0xf8, 0x61, 0x30, 0xf7, 0x29, 0x9e, 0xe0, 0x35, 0x9d, 0xc4, 0x49, + 0x44, 0x23, 0x64, 0xd0, 0x24, 0x9e, 0xed, 0xee, 0x2d, 0xa3, 0x68, 0x19, 0xe2, 0xc7, 0xdc, 0x76, + 0x9e, 0x2d, 0x1e, 0xcf, 0x71, 0x3a, 0x4b, 0x82, 0x98, 0x46, 0x89, 0xd0, 0xed, 0x3e, 0x68, 0x28, + 0xb2, 0xc4, 0xa7, 0x41, 0x44, 0xa4, 0xff, 0x73, 0xd5, 0x4f, 0x83, 0x15, 0x4e, 0xa9, 0xbf, 0x8a, + 0x85, 0x60, 0xfc, 0x6f, 0x1b, 0xe0, 0x34, 0xc0, 0xe1, 0xdc, 0xcb, 0x42, 0x9c, 0xa2, 0xaf, 0xc0, + 0x5e, 0xe1, 0x34, 0xf5, 0x97, 0xd8, 0x1d, 0xed, 0x69, 0xfb, 0xbd, 0x27, 0x68, 0xc2, 0x48, 0x26, + 0x2f, 0x85, 0x91, 0x8b, 0xbc, 0x5c, 0x82, 0xf6, 0xc1, 0x5c, 0x84, 0x91, 0x4f, 0x5d, 0x8d, 0x6b, + 0x87, 0x42, 0x7b, 0xca, 0x4c, 0x5c, 0xf9, 0xfc, 0x96, 0x27, 0x04, 0xe8, 0x4b, 0xb0, 0xe6, 0x51, + 0x76, 0x1e, 0x62, 0xb7, 0xc3, 0xa5, 0x23, 0x21, 0x7d, 0xc6, 0x6d, 0xb9, 0x56, 0x4a, 0x58, 0xd8, + 0x80, 0xd0, 0x6f, 0x9f, 0xb8, 0x7a, 0x35, 0xec, 0x0b, 0x66, 0x2a, 0xc2, 0x72, 0x81, 0x54, 0x1e, + 0x1e, 0xb8, 0x86, 0xa2, 0x3c, 0x3c, 0xa8, 0x2a, 0x0f, 0x0f, 0x18, 0x40, 0x26, 0x82, 0x9a, 0x55, + 0x80, 0xb7, 0xb5, 0xa8, 0x52, 0x92, 0x8b, 0x0f, 0x0f, 0x5c, 0x4b, 0x15, 0x97, 0x81, 0xa5, 0x84, + 0x89, 0x53, 0x11, 0xd9, 0xae, 0x8a, 0x5f, 0xd7, 0x23, 0xa7, 0x45, 0xe4, 0x54, 0x44, 0x76, 0x54, + 0x71, 0x25, 0xb2, 0x90, 0xa0, 0x09, 0xd8, 0x8b, 0x60, 0x8d, 0xe7, 0xdf, 0x3e, 0x71, 0xbb, 0xd5, + 0xc5, 0x38, 0x15, 0xc6, 0x5c, 0x9e, 0x8b, 0x0a, 0xfd, 0xe1, 0x81, 0x0b, 0x0d, 0x7d, 0x19, 0x3e, + 0x17, 0xa1, 0x6f, 0xc0, 0x49, 0xf3, 0x01, 0x7a, 0xbc, 0xc3, 0x27, 0x12, 0x47, 0x19, 0xa1, 0x90, + 0x95, 0x5d, 0x0e, 0x0f, 0xdc, 0xad, 0x66, 0x97, 0x72, 0x90, 0x42, 0x86, 0x7e, 0x09, 0xc6, 0x79, + 0x14, 0x85, 0x6e, 0x9f, 0xcb, 0x07, 0x42, 0x7e, 0x1c, 0x45, 0x61, 0x2e, 0xe5, 0x6e, 0x9e, 0x19, + 0x9a, 0x04, 0x64, 0xe9, 0x6e, 0xd7, 0x32, 0xc3, 0x6d, 0x65, 0x66, 0x78, 0x93, 0xad, 0xfb, 0xf9, + 0x86, 0xe2, 0xd4, 0x1d, 0x54, 0xd7, 0xfd, 0x98, 0x99, 0x8a, 0x75, 0xe7, 0x02, 0x36, 0x3a, 0x26, + 0xd9, 0xca, 0x1d, 0x56, 0x47, 0x3f, 0x21, 0xd9, 0xaa, 0x18, 0x9d, 0xb9, 0xd9, 0xbc, 0x12, 0x1c, + 0x63, 0x9f, 0xe2, 0xb9, 0x8b, 0xaa, 0xf3, 0xf2, 0xa4, 0xb5, 0x98, 0x57, 0x2e, 0x43, 0x63, 0xd0, + 0x57, 0x7e, 0xec, 0x7e, 0xc2, 0xd5, 0xdb, 0xf2, 0x98, 0xf8, 0x71, 0x2e, 0x64, 0x4e, 0xa6, 0xf1, + 0xc9, 0xc6, 0xdd, 0xa9, 0x6a, 0x9e, 0x92, 0x4d, 0xa1, 0xf1, 0xc9, 0x86, 0x0d, 0x9d, 0x1f, 0x5a, + 0xf7, 0x76, 0x75, 0xe8, 0x67, 0xd2, 0x5a, 0x0c, 0x9d, 0xcb, 0xd0, 0x01, 0x74, 0x8b, 0x73, 0xec, + 0xde, 0xe1, 0x7d, 0x76, 0x44, 0x9f, 0x37, 0xb9, 0x39, 0xef, 0x54, 0x0a, 0x8f, 0x2d, 0x30, 0xe8, + 0x26, 0xc6, 0xe3, 0x9f, 0x35, 0x80, 0xf2, 0x8c, 0xa2, 0x1d, 0x30, 0x67, 0x11, 0x49, 0xc5, 0x21, + 0xee, 0x78, 0xa2, 0x81, 0xb6, 0xa1, 0x13, 0x52, 0x7e, 0x58, 0x3b, 0x5e, 0x27, 0xa4, 0x68, 0x08, + 0x7a, 0x48, 0x31, 0x3f, 0x91, 0x1d, 0x8f, 0xfd, 0xcb, 0x14, 0x4b, 0xca, 0x0f, 0x5e, 0xc7, 0xeb, + 0x2c, 0xb9, 0x62, 0x49, 0x31, 0x3f, 0x5e, 0x1d, 0x8f, 0xfd, 0xcb, 0x14, 0x01, 0x71, 0xad, 0x3d, + 0x9d, 0x29, 0x02, 0x82, 0x6e, 0x83, 0x45, 0x22, 0x3a, 0x0d, 0x88, 0x6b, 0x73, 0x9b, 0x49, 0x22, + 0xfa, 0x82, 0xa0, 0x87, 0xb0, 0x15, 0x2c, 0x49, 0x94, 0xe0, 0x29, 0x5e, 0xc5, 0x74, 0xc3, 0x4f, + 0x86, 0xe3, 0xf5, 0x84, 0xed, 0x84, 0x99, 0xc6, 0x7f, 0xd1, 0xa0, 0x57, 0xb9, 0x2b, 0xea, 0xcc, + 0x5a, 0x93, 0x59, 0x53, 0x99, 0x35, 0x95, 0x59, 0x53, 0x99, 0x35, 0x95, 0x59, 0x6b, 0x61, 0xd6, + 0x6e, 0xc0, 0xcc, 0xd2, 0x5c, 0xde, 0x01, 0x75, 0x64, 0xb3, 0x89, 0x6c, 0xaa, 0xc8, 0xa6, 0x8a, + 0x6c, 0xaa, 0xc8, 0xa6, 0x8a, 0x6c, 0xb6, 0x20, 0x9b, 0x37, 0x47, 0x96, 0xa7, 0xb8, 0x8e, 0xac, + 0x37, 0x91, 0x75, 0x15, 0x59, 0x57, 0x91, 0x75, 0x15, 0x59, 0x57, 0x91, 0xf5, 0x16, 0x64, 0xfd, + 0x86, 0x3b, 0xe3, 0xed, 0x65, 0x69, 0xee, 0x37, 0x99, 0xfb, 0x2a, 0x73, 0x5f, 0x65, 0xee, 0xab, + 0xcc, 0x7d, 0x95, 0xb9, 0xdf, 0xc2, 0xdc, 0xff, 0x08, 0xe6, 0xd6, 0x3c, 0x1b, 0x4d, 0x66, 0x43, + 0x65, 0x36, 0x54, 0x66, 0x43, 0x65, 0x36, 0x54, 0x66, 0xa3, 0x85, 0xd9, 0xb8, 0x21, 0xf3, 0xeb, + 0xcb, 0xf2, 0x3c, 0x6a, 0x32, 0x8f, 0x54, 0xe6, 0x91, 0xca, 0x3c, 0x52, 0x99, 0x47, 0x2a, 0xf3, + 0xa8, 0x85, 0x79, 0xf4, 0x11, 0xcc, 0xad, 0x79, 0x46, 0x4d, 0x66, 0xa4, 0x32, 0x23, 0x95, 0x19, + 0xa9, 0xcc, 0x48, 0x65, 0x46, 0x2d, 0xcc, 0xe8, 0x06, 0xcc, 0x7f, 0xd5, 0x60, 0xab, 0xfa, 0xeb, + 0x5b, 0x87, 0xb6, 0x9b, 0xd0, 0xb6, 0x0a, 0x6d, 0xab, 0xd0, 0xb6, 0x0a, 0x6d, 0xab, 0xd0, 0x76, + 0x0b, 0xb4, 0xfd, 0x31, 0xd0, 0xad, 0x99, 0xb6, 0x9a, 0xd0, 0x96, 0x0a, 0x6d, 0xa9, 0xd0, 0x96, + 0x0a, 0x6d, 0xa9, 0xd0, 0x56, 0x0b, 0xb4, 0x75, 0x03, 0xe8, 0xbf, 0x69, 0xd0, 0x7f, 0x7d, 0x79, + 0xaa, 0x07, 0x4d, 0xea, 0x81, 0x4a, 0x3d, 0x50, 0xa9, 0x07, 0x2a, 0xf5, 0x40, 0xa5, 0x1e, 0xb4, + 0x50, 0x0f, 0x3e, 0x8a, 0xba, 0x35, 0xd7, 0xc3, 0x26, 0xf5, 0x50, 0xa5, 0x1e, 0xaa, 0xd4, 0x43, + 0x95, 0x7a, 0xa8, 0x52, 0x0f, 0x5b, 0xa8, 0x87, 0x37, 0xa0, 0x7e, 0x08, 0xdd, 0xa2, 0xe2, 0xab, + 0x03, 0x3b, 0x12, 0x78, 0xfc, 0x77, 0x0b, 0x7a, 0x95, 0x62, 0xaf, 0xae, 0xea, 0xe6, 0xd3, 0x62, + 0xd3, 0xc0, 0x84, 0x17, 0x5d, 0xec, 0x12, 0xc4, 0x04, 0x7d, 0x0a, 0xf6, 0x2a, 0x20, 0x53, 0x66, + 0x15, 0x77, 0xa5, 0xb5, 0x0a, 0xc8, 0x0f, 0xd2, 0xe1, 0xaf, 0xb9, 0x43, 0x97, 0x0e, 0x7f, 0xcd, + 0x1c, 0x9f, 0x41, 0x37, 0xc4, 0x64, 0x2a, 0x0a, 0xc8, 0x1d, 0xee, 0x72, 0x42, 0x4c, 0x78, 0xf5, + 0xc8, 0x9c, 0x2c, 0x9c, 0x70, 0x8a, 0xab, 0xd5, 0x59, 0x05, 0x15, 0xa7, 0xbf, 0x96, 0x4e, 0x53, + 0x3a, 0xfd, 0xb5, 0x70, 0xba, 0x60, 0xc7, 0x3e, 0xa5, 0x38, 0x21, 0xfc, 0xab, 0xa1, 0xeb, 0xe5, + 0x4d, 0x74, 0x07, 0xac, 0x38, 0xc1, 0x8b, 0x60, 0xcd, 0xbf, 0x10, 0xba, 0x9e, 0x6c, 0x31, 0x7b, + 0x9a, 0x2d, 0x98, 0xdd, 0x11, 0x76, 0xd1, 0x42, 0xbb, 0xe0, 0xcc, 0x22, 0x42, 0xfd, 0x80, 0xa4, + 0xbc, 0xf0, 0xef, 0x7a, 0x45, 0x9b, 0x25, 0x9b, 0xad, 0x41, 0xe1, 0xff, 0x94, 0xfb, 0x7b, 0x24, + 0xa2, 0xbf, 0xcb, 0x25, 0x62, 0xd9, 0x60, 0x4f, 0xdf, 0xef, 0x2a, 0xcb, 0xd6, 0xe3, 0x36, 0xb9, + 0x6c, 0x77, 0xc0, 0xc4, 0x2b, 0x3f, 0x08, 0x79, 0x1d, 0xef, 0xb0, 0x8a, 0x99, 0x37, 0xd1, 0x3d, + 0x70, 0xde, 0x45, 0x29, 0x25, 0xfe, 0x0a, 0xf3, 0x9a, 0x9d, 0xb9, 0x0a, 0x0b, 0x1a, 0x42, 0x27, + 0x88, 0x79, 0x89, 0xce, 0xec, 0x9d, 0x20, 0x46, 0x3b, 0x60, 0x04, 0xf1, 0x87, 0x03, 0x5e, 0x8a, + 0x33, 0x1b, 0x6f, 0x49, 0xeb, 0x21, 0xaf, 0xbb, 0x73, 0xeb, 0x21, 0x42, 0xa0, 0x67, 0x49, 0xc0, + 0x3f, 0x2d, 0x99, 0x91, 0x35, 0xd0, 0x5d, 0xb0, 0xb3, 0x24, 0x98, 0x26, 0x78, 0xc1, 0x2b, 0x6f, + 0x87, 0x7f, 0x5a, 0x25, 0x81, 0x87, 0x17, 0x68, 0x17, 0x6c, 0x7f, 0x3e, 0x4f, 0x70, 0x9a, 0xf2, + 0xca, 0x98, 0xb9, 0x72, 0x03, 0x1b, 0x20, 0xcb, 0x82, 0x39, 0x2f, 0x7f, 0xf9, 0x00, 0xac, 0x85, + 0xbe, 0x83, 0xe1, 0x05, 0x0e, 0xc3, 0xe9, 0x7b, 0x12, 0x5d, 0x90, 0x69, 0x82, 0x97, 0x78, 0xed, + 0xba, 0x7b, 0xda, 0xfe, 0x76, 0xfe, 0x8d, 0xf0, 0x3d, 0x73, 0x78, 0xcc, 0xfe, 0xfc, 0x96, 0xb7, + 0xcd, 0xb4, 0xa5, 0x05, 0x3d, 0x80, 0xae, 0x1f, 0xc6, 0xef, 0xfc, 0x73, 0x4c, 0x53, 0xf7, 0x33, + 0x19, 0xb8, 0x34, 0x15, 0x7e, 0x92, 0xad, 0x52, 0xf7, 0x5e, 0xcd, 0xcf, 0x4c, 0xcc, 0x1f, 0x46, + 0x17, 0x38, 0x99, 0xf9, 0x29, 0x76, 0xef, 0xe7, 0xfe, 0xc2, 0xc4, 0xe6, 0x43, 0x53, 0x3c, 0x4b, + 0x69, 0xe2, 0x3e, 0xc8, 0xe7, 0x23, 0x0d, 0xe8, 0x9e, 0xf8, 0xfe, 0x99, 0x51, 0xf7, 0x2e, 0x73, + 0x1d, 0x19, 0x34, 0xc9, 0xb0, 0x27, 0x6d, 0x8d, 0x33, 0xb6, 0xdb, 0x38, 0x63, 0xc7, 0x5b, 0x00, + 0xe5, 0xd4, 0xc7, 0xff, 0xec, 0x00, 0x94, 0xdf, 0x43, 0xf5, 0xd3, 0xb4, 0xa5, 0x9c, 0xa6, 0xfe, + 0xff, 0x73, 0x9a, 0x2a, 0xdb, 0xde, 0xb8, 0x6c, 0xdb, 0x9b, 0x7c, 0xd0, 0xe6, 0xb6, 0xb7, 0x84, + 0xbd, 0x65, 0xdb, 0xdb, 0xdc, 0x53, 0x6e, 0x7b, 0xb1, 0xa7, 0x9d, 0x3d, 0x7d, 0x7f, 0x4b, 0xd9, + 0xd3, 0x5d, 0x6e, 0x93, 0x7b, 0x5a, 0xec, 0x4e, 0x68, 0xd9, 0x9d, 0xbd, 0xd6, 0xdd, 0xb9, 0x55, + 0xdb, 0x9d, 0x6a, 0x92, 0xb7, 0xaf, 0x4b, 0xf2, 0x7b, 0xe8, 0x16, 0x9f, 0x92, 0x97, 0x14, 0xf8, + 0x0f, 0x61, 0x6b, 0x8e, 0x17, 0x01, 0xc1, 0xf3, 0x69, 0x44, 0xc2, 0x0d, 0xcf, 0xaa, 0xe3, 0xf5, + 0xa4, 0xed, 0x15, 0x09, 0x37, 0x72, 0x6e, 0x7a, 0x4b, 0xfd, 0x6e, 0x54, 0xea, 0xf7, 0xf1, 0x6f, + 0x61, 0xab, 0xfa, 0x0a, 0x83, 0x10, 0x18, 0xe9, 0xfb, 0x20, 0x96, 0xb7, 0x28, 0xff, 0x9f, 0xa5, + 0x30, 0xc1, 0x3f, 0x65, 0x41, 0x82, 0xe7, 0x72, 0xa4, 0xa2, 0x3d, 0xfe, 0x93, 0x06, 0xfd, 0xda, + 0xd7, 0x6c, 0x7e, 0xd7, 0x05, 0x14, 0xaf, 0x52, 0x59, 0x7b, 0xb2, 0xbb, 0xee, 0x05, 0x6b, 0xe7, + 0x77, 0x9d, 0x70, 0x76, 0x8a, 0xbb, 0x4e, 0x38, 0xef, 0x80, 0x95, 0x91, 0xe0, 0xa7, 0x4c, 0xfc, + 0xa0, 0x38, 0x9e, 0x6c, 0xa1, 0x5f, 0x81, 0x29, 0x3a, 0xd4, 0xde, 0x63, 0xca, 0xf7, 0x25, 0x4f, + 0xb8, 0x1b, 0x99, 0x36, 0x9b, 0x3f, 0x19, 0xff, 0xd0, 0xc0, 0xc9, 0x3f, 0xa7, 0x73, 0xd2, 0xd8, + 0x0f, 0x92, 0x2a, 0xe9, 0x8f, 0xac, 0x9d, 0x93, 0x0a, 0x67, 0x49, 0x5a, 0x38, 0x49, 0x34, 0x4d, + 0x63, 0x3f, 0x49, 0x73, 0x58, 0x87, 0x44, 0xaf, 0x79, 0x1b, 0xfd, 0x02, 0x8c, 0xf7, 0x78, 0x73, + 0x39, 0x2d, 0xf7, 0xa2, 0x7d, 0xb0, 0x3e, 0xf8, 0x61, 0x26, 0xaf, 0xfc, 0x36, 0x9d, 0xf4, 0x37, + 0xa6, 0x65, 0x35, 0xa7, 0xf5, 0x12, 0x9c, 0xfc, 0x01, 0xa0, 0xb6, 0x5a, 0x5a, 0x7d, 0xb5, 0xe4, + 0xa6, 0xe8, 0xb4, 0x5c, 0xe2, 0x7a, 0xe5, 0x12, 0x1f, 0xff, 0xab, 0x03, 0xfd, 0xda, 0x3b, 0xc1, + 0x95, 0x41, 0x1f, 0xe7, 0x5b, 0x54, 0x3c, 0xc2, 0xdd, 0x9d, 0x88, 0xd7, 0xc1, 0x49, 0xfe, 0x3a, + 0x58, 0x3e, 0x39, 0xc8, 0xdd, 0xfb, 0x05, 0xaf, 0x22, 0xf4, 0xeb, 0xd4, 0xac, 0xc0, 0xf8, 0x52, + 0x14, 0x18, 0xc6, 0x75, 0x5a, 0x5e, 0x7b, 0x7c, 0xc1, 0x6b, 0x0f, 0xf3, 0xda, 0xb8, 0x4b, 0x1e, + 0x97, 0x95, 0x25, 0xd6, 0xb5, 0x71, 0x97, 0x22, 0xae, 0xac, 0x4e, 0xae, 0x8e, 0x1b, 0x10, 0xf4, + 0x75, 0x91, 0x50, 0xe7, 0x3a, 0xb9, 0xcc, 0xf5, 0x7f, 0x3a, 0xb0, 0x5d, 0x7f, 0x5f, 0xb9, 0x32, + 0xd9, 0x5f, 0xd7, 0x93, 0xbd, 0xdb, 0x88, 0x5f, 0xc6, 0x92, 0xd9, 0x7e, 0x54, 0xc9, 0xf6, 0x55, + 0x72, 0x96, 0xee, 0xaf, 0xaa, 0xe9, 0xbe, 0x4a, 0xcc, 0xf3, 0xfd, 0xa8, 0x92, 0xef, 0x2b, 0x23, + 0x2f, 0x79, 0xe4, 0x32, 0xe1, 0x57, 0x46, 0x66, 0x19, 0xbf, 0x0d, 0x56, 0x48, 0xa7, 0x24, 0xba, + 0xe0, 0x57, 0xb6, 0xe3, 0x99, 0x21, 0x3d, 0x8b, 0x2e, 0x98, 0x79, 0x29, 0xcc, 0xa2, 0x1a, 0x34, + 0x97, 0xdc, 0xfc, 0x0d, 0x58, 0x17, 0x01, 0x7d, 0xc7, 0xaf, 0xed, 0x6b, 0xd6, 0x53, 0x0a, 0x1f, + 0x9d, 0x02, 0x54, 0x7e, 0xa1, 0x7b, 0x60, 0xbf, 0x3d, 0xfb, 0xfe, 0xec, 0xd5, 0x1f, 0xce, 0x86, + 0xb7, 0xd0, 0x0e, 0x0c, 0x9f, 0xbf, 0x79, 0xf3, 0xe3, 0xf4, 0xf9, 0xc9, 0xd3, 0x67, 0x27, 0xde, + 0xf4, 0xec, 0xe9, 0xcb, 0x93, 0xa1, 0x86, 0x6e, 0xc3, 0xa8, 0x6a, 0xfd, 0xfd, 0xd3, 0x1f, 0xde, + 0x9e, 0x0c, 0x3b, 0x47, 0xdf, 0x81, 0x33, 0x0f, 0x52, 0xff, 0x3c, 0xc4, 0x73, 0xf4, 0x79, 0x63, + 0x58, 0x79, 0xb3, 0xbe, 0x8a, 0xd9, 0xd8, 0xa9, 0xfb, 0x67, 0x41, 0x5d, 0xf4, 0x38, 0x3a, 0x02, + 0x5b, 0x9c, 0xe2, 0xff, 0xa1, 0xf3, 0xcf, 0xa2, 0x73, 0xde, 0xe1, 0xe8, 0xa8, 0xdc, 0x24, 0xe8, + 0x7e, 0xa3, 0xf3, 0x2b, 0x82, 0xa3, 0x85, 0x3a, 0x6e, 0xae, 0x3f, 0x3a, 0x05, 0x33, 0xe1, 0x3b, + 0xad, 0xd9, 0x91, 0xdf, 0x3f, 0xb5, 0x8e, 0xad, 0x17, 0x2e, 0xef, 0x7e, 0xfc, 0x1b, 0xb8, 0x3f, + 0x8b, 0x56, 0x13, 0x8a, 0xc9, 0x0c, 0x13, 0x2a, 0x54, 0x45, 0x24, 0xbc, 0xa6, 0x7f, 0xbc, 0xb7, + 0x0c, 0xe8, 0x64, 0x16, 0xcd, 0xf1, 0x24, 0xf2, 0x27, 0xb3, 0x68, 0xf5, 0x98, 0x49, 0x7e, 0xbd, + 0x8c, 0xf8, 0xdf, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x9b, 0x7e, 0x2d, 0xd1, 0xa3, 0x18, 0x00, + 0x00, +} diff --git a/trpc/validate.ext.proto b/trpc/validate.ext.proto new file mode 100644 index 0000000..1b06ec0 --- /dev/null +++ b/trpc/validate.ext.proto @@ -0,0 +1,875 @@ +syntax = "proto2"; +package trpc; + +option go_package = "git.code.oa.com/trpc-go/trpc"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +import "google/protobuf/descriptor.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +// Validation rules applied at the message level +extend google.protobuf.MessageOptions { + // Disabled nullifies any validation rules for this message, including any + // message fields associated with it that do support validation. + optional bool disabled = 1071; + // Ignore skips generation of validation methods for this message. + optional bool ignored = 1072; +} + +// Validation rules applied at the oneof level +extend google.protobuf.OneofOptions { + // Required ensures that exactly one the field options in a oneof is set; + // validation fails if no fields in the oneof are set. + optional bool required = 1071; +} + +// Validation rules applied at the field level +extend google.protobuf.FieldOptions { + // Rules specify the validations to be performed on this field. By default, + // no validation is performed against a field. + optional FieldRules rules = 1071; +} + +// FieldRules encapsulates the rules for each type of field. Depending on the +// field, the correct set should be used to ensure proper validations. +message FieldRules { + optional MessageRules message = 17; + oneof type { + // Scalar Field Types + FloatRules float = 1; + DoubleRules double = 2; + Int32Rules int32 = 3; + Int64Rules int64 = 4; + UInt32Rules uint32 = 5; + UInt64Rules uint64 = 6; + SInt32Rules sint32 = 7; + SInt64Rules sint64 = 8; + Fixed32Rules fixed32 = 9; + Fixed64Rules fixed64 = 10; + SFixed32Rules sfixed32 = 11; + SFixed64Rules sfixed64 = 12; + BoolRules bool = 13; + StringRules string = 14; + BytesRules bytes = 15; + + // Complex Field Types + EnumRules enum = 16; + RepeatedRules repeated = 18; + MapRules map = 19; + + // Well-Known Field Types + AnyRules any = 20; + DurationRules duration = 21; + TimestampRules timestamp = 22; + } +} + +// FloatRules describes the constraints applied to `float` values +message FloatRules { + // Const specifies that this field must be exactly the specified value + optional float const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional float lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional float lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional float gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional float gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated float in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated float not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// DoubleRules describes the constraints applied to `double` values +message DoubleRules { + // Const specifies that this field must be exactly the specified value + optional double const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional double lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional double lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional double gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional double gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated double in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated double not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// Int32Rules describes the constraints applied to `int32` values +message Int32Rules { + // Const specifies that this field must be exactly the specified value + optional int32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional int32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional int32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional int32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional int32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated int32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated int32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// Int64Rules describes the constraints applied to `int64` values +message Int64Rules { + // Const specifies that this field must be exactly the specified value + optional int64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional int64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional int64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional int64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional int64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated int64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated int64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// UInt32Rules describes the constraints applied to `uint32` values +message UInt32Rules { + // Const specifies that this field must be exactly the specified value + optional uint32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional uint32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional uint32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional uint32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional uint32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated uint32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated uint32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// UInt64Rules describes the constraints applied to `uint64` values +message UInt64Rules { + // Const specifies that this field must be exactly the specified value + optional uint64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional uint64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional uint64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional uint64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional uint64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated uint64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated uint64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// SInt32Rules describes the constraints applied to `sint32` values +message SInt32Rules { + // Const specifies that this field must be exactly the specified value + optional sint32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional sint32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional sint32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional sint32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional sint32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated sint32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated sint32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// SInt64Rules describes the constraints applied to `sint64` values +message SInt64Rules { + // Const specifies that this field must be exactly the specified value + optional sint64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional sint64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional sint64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional sint64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional sint64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated sint64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated sint64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// Fixed32Rules describes the constraints applied to `fixed32` values +message Fixed32Rules { + // Const specifies that this field must be exactly the specified value + optional fixed32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional fixed32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional fixed32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional fixed32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional fixed32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated fixed32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated fixed32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// Fixed64Rules describes the constraints applied to `fixed64` values +message Fixed64Rules { + // Const specifies that this field must be exactly the specified value + optional fixed64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional fixed64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional fixed64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional fixed64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional fixed64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated fixed64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated fixed64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// SFixed32Rules describes the constraints applied to `sfixed32` values +message SFixed32Rules { + // Const specifies that this field must be exactly the specified value + optional sfixed32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional sfixed32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional sfixed32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional sfixed32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional sfixed32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated sfixed32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated sfixed32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// SFixed64Rules describes the constraints applied to `sfixed64` values +message SFixed64Rules { + // Const specifies that this field must be exactly the specified value + optional sfixed64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional sfixed64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional sfixed64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional sfixed64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional sfixed64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated sfixed64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated sfixed64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// BoolRules describes the constraints applied to `bool` values +message BoolRules { + // Const specifies that this field must be exactly the specified value + optional bool const = 1; +} + +// StringRules describe the constraints applied to `string` values +message StringRules { + // Const specifies that this field must be exactly the specified value + optional string const = 1; + + // Len specifies that this field must be the specified number of + // characters (Unicode code points). Note that the number of + // characters may differ from the number of bytes in the string. + optional uint64 len = 19; + + // MinLen specifies that this field must be the specified number of + // characters (Unicode code points) at a minimum. Note that the number of + // characters may differ from the number of bytes in the string. + optional uint64 min_len = 2; + + // MaxLen specifies that this field must be the specified number of + // characters (Unicode code points) at a maximum. Note that the number of + // characters may differ from the number of bytes in the string. + optional uint64 max_len = 3; + + // LenBytes specifies that this field must be the specified number of bytes + // at a minimum + optional uint64 len_bytes = 20; + + // MinBytes specifies that this field must be the specified number of bytes + // at a minimum + optional uint64 min_bytes = 4; + + // MaxBytes specifies that this field must be the specified number of bytes + // at a maximum + optional uint64 max_bytes = 5; + + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + optional string pattern = 6; + + // Prefix specifies that this field must have the specified substring at + // the beginning of the string. + optional string prefix = 7; + + // Suffix specifies that this field must have the specified substring at + // the end of the string. + optional string suffix = 8; + + // Contains specifies that this field must have the specified substring + // anywhere in the string. + optional string contains = 9; + + // NotContains specifies that this field cannot have the specified substring + // anywhere in the string. + optional string not_contains = 23; + + // In specifies that this field must be equal to one of the specified + // values + repeated string in = 10; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated string not_in = 11; + + // WellKnown rules provide advanced constraints against common string + // patterns + oneof well_known { + // Email specifies that the field must be a valid email address as + // defined by RFC 5322 + bool email = 12; + + // Hostname specifies that the field must be a valid hostname as + // defined by RFC 1034. This constraint does not support + // internationalized domain names (IDNs). + bool hostname = 13; + + // Ip specifies that the field must be a valid IP (v4 or v6) address. + // Valid IPv6 addresses should not include surrounding square brackets. + bool ip = 14; + + // Ipv4 specifies that the field must be a valid IPv4 address. + bool ipv4 = 15; + + // Ipv6 specifies that the field must be a valid IPv6 address. Valid + // IPv6 addresses should not include surrounding square brackets. + bool ipv6 = 16; + + // Uri specifies that the field must be a valid, absolute URI as defined + // by RFC 3986 + bool uri = 17; + + // UriRef specifies that the field must be a valid URI as defined by RFC + // 3986 and may be relative or absolute. + bool uri_ref = 18; + + // Address specifies that the field must be either a valid hostname as + // defined by RFC 1034 (which does not support internationalized domain + // names or IDNs), or it can be a valid IP (v4 or v6). + bool address = 21; + + // Uuid specifies that the field must be a valid UUID as defined by + // RFC 4122 + bool uuid = 22; + + // WellKnownRegex specifies a common well known pattern defined as a regex. + KnownRegex well_known_regex = 24; + + // Alphabets specifies that the field can only contain alphabets. e.g. aA + bool alphabets = 27; + + // Alphanums specifies that the field should contain both alphabet(s) and number(s). e.g. aA1 + bool alphanums = 28; + + // Lowercase specifies that the field can only contain lowercase alphabet(s). e.g. aa + bool lowercase = 29; + + // tsecstr specifies that the field can only contain secured strings + bool tsecstr = 30; + } + + // This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable + // strict header validation. + // By default, this is true, and HTTP header validations are RFC-compliant. + // Setting to false will enable a looser validations that only disallows + // \r\n\0 characters, which can be used to bypass header matching rules. + optional bool strict = 25 [default = true]; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 26; +} + +// WellKnownRegex contain some well-known patterns. +enum KnownRegex { + UNKNOWN = 0; + + // HTTP header name as defined by RFC 7230. + HTTP_HEADER_NAME = 1; + + // HTTP header value as defined by RFC 7230. + HTTP_HEADER_VALUE = 2; +} + +// BytesRules describe the constraints applied to `bytes` values +message BytesRules { + // Const specifies that this field must be exactly the specified value + optional bytes const = 1; + + // Len specifies that this field must be the specified number of bytes + optional uint64 len = 13; + + // MinLen specifies that this field must be the specified number of bytes + // at a minimum + optional uint64 min_len = 2; + + // MaxLen specifies that this field must be the specified number of bytes + // at a maximum + optional uint64 max_len = 3; + + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + optional string pattern = 4; + + // Prefix specifies that this field must have the specified bytes at the + // beginning of the string. + optional bytes prefix = 5; + + // Suffix specifies that this field must have the specified bytes at the + // end of the string. + optional bytes suffix = 6; + + // Contains specifies that this field must have the specified bytes + // anywhere in the string. + optional bytes contains = 7; + + // In specifies that this field must be equal to one of the specified + // values + repeated bytes in = 8; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated bytes not_in = 9; + + // WellKnown rules provide advanced constraints against common byte + // patterns + oneof well_known { + // Ip specifies that the field must be a valid IP (v4 or v6) address in + // byte format + bool ip = 10; + + // Ipv4 specifies that the field must be a valid IPv4 address in byte + // format + bool ipv4 = 11; + + // Ipv6 specifies that the field must be a valid IPv6 address in byte + // format + bool ipv6 = 12; + } + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 14; +} + +// EnumRules describe the constraints applied to enum values +message EnumRules { + // Const specifies that this field must be exactly the specified value + optional int32 const = 1; + + // DefinedOnly specifies that this field must be only one of the defined + // values for this enum, failing on any undefined value. + optional bool defined_only = 2; + + // In specifies that this field must be equal to one of the specified + // values + repeated int32 in = 3; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated int32 not_in = 4; +} + +// MessageRules describe the constraints applied to embedded message values. +// For message-type fields, validation is performed recursively. +message MessageRules { + // Skip specifies that the validation rules of this field should not be + // evaluated + optional bool skip = 1; + + // Required specifies that this field must be set + optional bool required = 2; +} + +// RepeatedRules describe the constraints applied to `repeated` values +message RepeatedRules { + // MinItems specifies that this field must have the specified number of + // items at a minimum + optional uint64 min_items = 1; + + // MaxItems specifies that this field must have the specified number of + // items at a maximum + optional uint64 max_items = 2; + + // Unique specifies that all elements in this field must be unique. This + // contraint is only applicable to scalar and enum types (messages are not + // supported). + optional bool unique = 3; + + // Items specifies the contraints to be applied to each item in the field. + // Repeated message fields will still execute validation against each item + // unless skip is specified here. + optional FieldRules items = 4; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 5; +} + +// MapRules describe the constraints applied to `map` values +message MapRules { + // MinPairs specifies that this field must have the specified number of + // KVs at a minimum + optional uint64 min_pairs = 1; + + // MaxPairs specifies that this field must have the specified number of + // KVs at a maximum + optional uint64 max_pairs = 2; + + // NoSparse specifies values in this field cannot be unset. This only + // applies to map's with message value types. + optional bool no_sparse = 3; + + // Keys specifies the constraints to be applied to each key in the field. + optional FieldRules keys = 4; + + // Values specifies the constraints to be applied to the value of each key + // in the field. Message values will still have their validations evaluated + // unless skip is specified here. + optional FieldRules values = 5; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 6; +} + +// AnyRules describe constraints applied exclusively to the +// `google.protobuf.Any` well-known type +message AnyRules { + // Required specifies that this field must be set + optional bool required = 1; + + // In specifies that this field's `type_url` must be equal to one of the + // specified values. + repeated string in = 2; + + // NotIn specifies that this field's `type_url` must not be equal to any of + // the specified values. + repeated string not_in = 3; +} + +// DurationRules describe the constraints applied exclusively to the +// `google.protobuf.Duration` well-known type +message DurationRules { + // Required specifies that this field must be set + optional bool required = 1; + + // Const specifies that this field must be exactly the specified value + optional google.protobuf.Duration const = 2; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional google.protobuf.Duration lt = 3; + + // Lt specifies that this field must be less than the specified value, + // inclusive + optional google.protobuf.Duration lte = 4; + + // Gt specifies that this field must be greater than the specified value, + // exclusive + optional google.protobuf.Duration gt = 5; + + // Gte specifies that this field must be greater than the specified value, + // inclusive + optional google.protobuf.Duration gte = 6; + + // In specifies that this field must be equal to one of the specified + // values + repeated google.protobuf.Duration in = 7; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated google.protobuf.Duration not_in = 8; +} + +// TimestampRules describe the constraints applied exclusively to the +// `google.protobuf.Timestamp` well-known type +message TimestampRules { + // Required specifies that this field must be set + optional bool required = 1; + + // Const specifies that this field must be exactly the specified value + optional google.protobuf.Timestamp const = 2; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional google.protobuf.Timestamp lt = 3; + + // Lte specifies that this field must be less than the specified value, + // inclusive + optional google.protobuf.Timestamp lte = 4; + + // Gt specifies that this field must be greater than the specified value, + // exclusive + optional google.protobuf.Timestamp gt = 5; + + // Gte specifies that this field must be greater than the specified value, + // inclusive + optional google.protobuf.Timestamp gte = 6; + + // LtNow specifies that this must be less than the current time. LtNow + // can only be used with the Within rule. + optional bool lt_now = 7; + + // GtNow specifies that this must be greater than the current time. GtNow + // can only be used with the Within rule. + optional bool gt_now = 8; + + // Within specifies that this field must be within this duration of the + // current time. This constraint can be used alone or with the LtNow and + // GtNow rules. + optional google.protobuf.Duration within = 9; +} \ No newline at end of file From cdd62bcbb608139fd874e0bc94f1ddd87e0c5429 Mon Sep 17 00:00:00 2001 From: wineguo Date: Mon, 8 Aug 2022 11:51:13 +0800 Subject: [PATCH 58/85] update --- Makefile | 14 + pbgo/go.mod | 8 + pbgo/go.sum | 11 + .../trpc/api}/annotations.pb.go | 29 +- .../annotations => pbgo/trpc/api}/http.pb.go | 21 +- pbgo/trpc/proto/swagger.pb.go | 290 ++ pbgo/trpc/proto/trpc.pb.go | 1915 ++++++++ pbgo/trpc/proto/trpc_options.pb.go | 112 + pbgo/trpc/proto/validate.ext.pb.go | 4169 +++++++++++++++++ trpc/EXTEND.md | 14 - trpc/Makefile | 5 - trpc/README.md | 70 - trpc/api/annotations.proto | 2 +- trpc/api/http.proto | 2 +- trpc/go.mod | 8 - trpc/go.sum | 67 - trpc/{ => proto}/swagger.proto | 2 +- trpc/proto/trpc.proto | 2 +- trpc/proto/trpc_options.proto | 12 +- trpc/{ => proto}/validate.ext.proto | 2 +- trpc/swagger.pb.go | 182 - trpc/trpc.ext.pb.go | 114 - trpc/trpc.ext.proto | 15 - trpc/validate.ext.pb.go | 3269 ------------- 24 files changed, 6557 insertions(+), 3778 deletions(-) create mode 100644 Makefile create mode 100644 pbgo/go.mod create mode 100644 pbgo/go.sum rename {trpc/api/annotations => pbgo/trpc/api}/annotations.pb.go (81%) rename {trpc/api/annotations => pbgo/trpc/api}/http.pb.go (96%) create mode 100644 pbgo/trpc/proto/swagger.pb.go create mode 100644 pbgo/trpc/proto/trpc.pb.go create mode 100644 pbgo/trpc/proto/trpc_options.pb.go create mode 100644 pbgo/trpc/proto/validate.ext.pb.go delete mode 100644 trpc/EXTEND.md delete mode 100644 trpc/Makefile delete mode 100644 trpc/README.md delete mode 100644 trpc/go.mod delete mode 100644 trpc/go.sum rename trpc/{ => proto}/swagger.proto (87%) rename trpc/{ => proto}/validate.ext.proto (99%) delete mode 100644 trpc/swagger.pb.go delete mode 100644 trpc/trpc.ext.pb.go delete mode 100644 trpc/trpc.ext.proto delete mode 100644 trpc/validate.ext.pb.go diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ae5c7a7 --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +DIR=pbgo +all: + mkdir -p $(DIR) + protoc --go_out=paths=source_relative:./$(DIR) \ + ./trpc/proto/trpc.proto \ + ./trpc/proto/swagger.proto \ + ./trpc/proto/trpc_options.proto \ + ./trpc/proto/validate.ext.proto \ + ./trpc/api/annotations.proto \ + ./trpc/api/http.proto + cd ./pbgo && go mod init git.woa.com/trpc/trpc-protocol/$(DIR) && go mod tidy && cd - + +clean: + rm -rf $(DIR) diff --git a/pbgo/go.mod b/pbgo/go.mod new file mode 100644 index 0000000..ef09131 --- /dev/null +++ b/pbgo/go.mod @@ -0,0 +1,8 @@ +module git.woa.com/trpc/trpc-protocol/pbgo + +go 1.18 + +require ( + github.com/golang/protobuf v1.5.2 + google.golang.org/protobuf v1.28.1 +) diff --git a/pbgo/go.sum b/pbgo/go.sum new file mode 100644 index 0000000..f415d59 --- /dev/null +++ b/pbgo/go.sum @@ -0,0 +1,11 @@ +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= diff --git a/trpc/api/annotations/annotations.pb.go b/pbgo/trpc/api/annotations.pb.go similarity index 81% rename from trpc/api/annotations/annotations.pb.go rename to pbgo/trpc/api/annotations.pb.go index 69d006e..aedb4a0 100644 --- a/trpc/api/annotations/annotations.pb.go +++ b/pbgo/trpc/api/annotations.pb.go @@ -1,17 +1,16 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.15.6 +// protoc v3.6.1 // source: trpc/api/annotations.proto -package annotations +package api import ( - "reflect" - - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/runtime/protoimpl" - "google.golang.org/protobuf/types/descriptorpb" + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" ) const ( @@ -23,7 +22,7 @@ const ( var file_trpc_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ { - ExtendedType: (*descriptorpb.MethodOptions)(nil), + ExtendedType: (*descriptor.MethodOptions)(nil), ExtensionType: (*HttpRule)(nil), Field: 50201, Name: "trpc.api.http", @@ -32,7 +31,7 @@ var file_trpc_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ }, } -// Extension fields to descriptorpb.MethodOptions. +// Extension fields to descriptor.MethodOptions. var ( // optional trpc.api.HttpRule http = 50201; E_Http = &file_trpc_api_annotations_proto_extTypes[0] @@ -51,15 +50,15 @@ var file_trpc_api_annotations_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x88, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, - 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x2e, 0x63, - 0x6f, 0x64, 0x65, 0x2e, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, - 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x2e, 0x77, + 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, + 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_trpc_api_annotations_proto_goTypes = []interface{}{ - (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions - (*HttpRule)(nil), // 1: trpc.api.HttpRule + (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*HttpRule)(nil), // 1: trpc.api.HttpRule } var file_trpc_api_annotations_proto_depIdxs = []int32{ 0, // 0: trpc.api.http:extendee -> google.protobuf.MethodOptions diff --git a/trpc/api/annotations/http.pb.go b/pbgo/trpc/api/http.pb.go similarity index 96% rename from trpc/api/annotations/http.pb.go rename to pbgo/trpc/api/http.pb.go index 0cbb842..5ed95ec 100644 --- a/trpc/api/annotations/http.pb.go +++ b/pbgo/trpc/api/http.pb.go @@ -1,17 +1,16 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.15.6 +// protoc v3.6.1 // source: trpc/api/http.proto -package annotations +package api import ( - "reflect" - "sync" - - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/runtime/protoimpl" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) const ( @@ -309,10 +308,10 @@ var file_trpc_api_http_proto_rawDesc = []byte{ 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x64, - 0x65, 0x2e, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x67, 0x6f, - 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, + 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pbgo/trpc/proto/swagger.pb.go b/pbgo/trpc/proto/swagger.pb.go new file mode 100644 index 0000000..d3d039b --- /dev/null +++ b/pbgo/trpc/proto/swagger.pb.go @@ -0,0 +1,290 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 +// source: trpc/proto/swagger.proto + +package proto + +import ( + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// to gen swagger json +type SwaggerRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,50103,opt,name=title,proto3" json:"title,omitempty"` + Method string `protobuf:"bytes,50104,opt,name=method,proto3" json:"method,omitempty"` + Description string `protobuf:"bytes,50105,opt,name=description,proto3" json:"description,omitempty"` + Params []*SwaggerParam `protobuf:"bytes,50106,rep,name=params,proto3" json:"params,omitempty"` +} + +func (x *SwaggerRule) Reset() { + *x = SwaggerRule{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_swagger_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwaggerRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwaggerRule) ProtoMessage() {} + +func (x *SwaggerRule) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_swagger_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwaggerRule.ProtoReflect.Descriptor instead. +func (*SwaggerRule) Descriptor() ([]byte, []int) { + return file_trpc_proto_swagger_proto_rawDescGZIP(), []int{0} +} + +func (x *SwaggerRule) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *SwaggerRule) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +func (x *SwaggerRule) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *SwaggerRule) GetParams() []*SwaggerParam { + if x != nil { + return x.Params + } + return nil +} + +type SwaggerParam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Required bool `protobuf:"varint,2,opt,name=required,proto3" json:"required,omitempty"` + Default string `protobuf:"bytes,3,opt,name=default,proto3" json:"default,omitempty"` +} + +func (x *SwaggerParam) Reset() { + *x = SwaggerParam{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_swagger_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwaggerParam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwaggerParam) ProtoMessage() {} + +func (x *SwaggerParam) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_swagger_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwaggerParam.ProtoReflect.Descriptor instead. +func (*SwaggerParam) Descriptor() ([]byte, []int) { + return file_trpc_proto_swagger_proto_rawDescGZIP(), []int{1} +} + +func (x *SwaggerParam) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SwaggerParam) GetRequired() bool { + if x != nil { + return x.Required + } + return false +} + +func (x *SwaggerParam) GetDefault() string { + if x != nil { + return x.Default + } + return "" +} + +var file_trpc_proto_swagger_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptor.MethodOptions)(nil), + ExtensionType: (*SwaggerRule)(nil), + Field: 50101, + Name: "trpc.swagger", + Tag: "bytes,50101,opt,name=swagger", + Filename: "trpc/proto/swagger.proto", + }, +} + +// Extension fields to descriptor.MethodOptions. +var ( + // optional trpc.SwaggerRule swagger = 50101; + E_Swagger = &file_trpc_proto_swagger_proto_extTypes[0] +) + +var File_trpc_proto_swagger_proto protoreflect.FileDescriptor + +var file_trpc_proto_swagger_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x77, 0x61, + 0x67, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x74, 0x72, 0x70, 0x63, + 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x52, 0x75, + 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0xb7, 0x87, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x6d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x18, 0xb8, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x22, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0xb9, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x18, 0xba, 0x87, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x58, 0x0a, 0x0c, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x3a, 0x4d, 0x0a, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb5, 0x87, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, + 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x42, + 0x4f, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, + 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, + 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpc_proto_swagger_proto_rawDescOnce sync.Once + file_trpc_proto_swagger_proto_rawDescData = file_trpc_proto_swagger_proto_rawDesc +) + +func file_trpc_proto_swagger_proto_rawDescGZIP() []byte { + file_trpc_proto_swagger_proto_rawDescOnce.Do(func() { + file_trpc_proto_swagger_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_proto_swagger_proto_rawDescData) + }) + return file_trpc_proto_swagger_proto_rawDescData +} + +var file_trpc_proto_swagger_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_trpc_proto_swagger_proto_goTypes = []interface{}{ + (*SwaggerRule)(nil), // 0: trpc.SwaggerRule + (*SwaggerParam)(nil), // 1: trpc.SwaggerParam + (*descriptor.MethodOptions)(nil), // 2: google.protobuf.MethodOptions +} +var file_trpc_proto_swagger_proto_depIdxs = []int32{ + 1, // 0: trpc.SwaggerRule.params:type_name -> trpc.SwaggerParam + 2, // 1: trpc.swagger:extendee -> google.protobuf.MethodOptions + 0, // 2: trpc.swagger:type_name -> trpc.SwaggerRule + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 2, // [2:3] is the sub-list for extension type_name + 1, // [1:2] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_trpc_proto_swagger_proto_init() } +func file_trpc_proto_swagger_proto_init() { + if File_trpc_proto_swagger_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpc_proto_swagger_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwaggerRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_swagger_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwaggerParam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_proto_swagger_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 1, + NumServices: 0, + }, + GoTypes: file_trpc_proto_swagger_proto_goTypes, + DependencyIndexes: file_trpc_proto_swagger_proto_depIdxs, + MessageInfos: file_trpc_proto_swagger_proto_msgTypes, + ExtensionInfos: file_trpc_proto_swagger_proto_extTypes, + }.Build() + File_trpc_proto_swagger_proto = out.File + file_trpc_proto_swagger_proto_rawDesc = nil + file_trpc_proto_swagger_proto_goTypes = nil + file_trpc_proto_swagger_proto_depIdxs = nil +} diff --git a/pbgo/trpc/proto/trpc.pb.go b/pbgo/trpc/proto/trpc.pb.go new file mode 100644 index 0000000..a611d29 --- /dev/null +++ b/pbgo/trpc/proto/trpc.pb.go @@ -0,0 +1,1915 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 +// source: trpc/proto/trpc.proto + +package proto + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// 框架协议头里的魔数 +type TrpcMagic int32 + +const ( + // trpc不用这个值,为了提供给pb工具生成代码 + TrpcMagic_TRPC_DEFAULT_NONE TrpcMagic = 0 + // trpc协议默认使用这个魔数 + TrpcMagic_TRPC_MAGIC_VALUE TrpcMagic = 2352 +) + +// Enum value maps for TrpcMagic. +var ( + TrpcMagic_name = map[int32]string{ + 0: "TRPC_DEFAULT_NONE", + 2352: "TRPC_MAGIC_VALUE", + } + TrpcMagic_value = map[string]int32{ + "TRPC_DEFAULT_NONE": 0, + "TRPC_MAGIC_VALUE": 2352, + } +) + +func (x TrpcMagic) Enum() *TrpcMagic { + p := new(TrpcMagic) + *p = x + return p +} + +func (x TrpcMagic) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcMagic) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_proto_trpc_proto_enumTypes[0].Descriptor() +} + +func (TrpcMagic) Type() protoreflect.EnumType { + return &file_trpc_proto_trpc_proto_enumTypes[0] +} + +func (x TrpcMagic) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcMagic.Descriptor instead. +func (TrpcMagic) EnumDescriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{0} +} + +// trpc协议的二进制数据帧类型 +// 目前支持两种类型的二进制数据帧: +// 1. 一应一答模式的二进制数据帧类型 +// 2. 流式模式的二进制数据帧类型 +type TrpcDataFrameType int32 + +const ( + // trpc一应一答模式的二进制数据帧类型 + TrpcDataFrameType_TRPC_UNARY_FRAME TrpcDataFrameType = 0 + // trpc流式模式的二进制数据帧类型 + TrpcDataFrameType_TRPC_STREAM_FRAME TrpcDataFrameType = 1 +) + +// Enum value maps for TrpcDataFrameType. +var ( + TrpcDataFrameType_name = map[int32]string{ + 0: "TRPC_UNARY_FRAME", + 1: "TRPC_STREAM_FRAME", + } + TrpcDataFrameType_value = map[string]int32{ + "TRPC_UNARY_FRAME": 0, + "TRPC_STREAM_FRAME": 1, + } +) + +func (x TrpcDataFrameType) Enum() *TrpcDataFrameType { + p := new(TrpcDataFrameType) + *p = x + return p +} + +func (x TrpcDataFrameType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcDataFrameType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_proto_trpc_proto_enumTypes[1].Descriptor() +} + +func (TrpcDataFrameType) Type() protoreflect.EnumType { + return &file_trpc_proto_trpc_proto_enumTypes[1] +} + +func (x TrpcDataFrameType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcDataFrameType.Descriptor instead. +func (TrpcDataFrameType) EnumDescriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{1} +} + +// trpc协议流式的二进制数据帧类型 +// 目前流式帧类型分4种:INIT/DATA/FEEDBACK/CLOSE,其中CLOSE帧不带业务数据 +// INIT帧:FIXHEADER + TrpcStreamInitMeta +// DATA帧:FIXHEADER + body(业务序列化的数据) +// FEEDBACK帧:FIXHEADER + TrpcStreamFeedBackMeta(触发策略,高低水位+定时) +// CLOSE帧:FIXHEADER + TrpcStreamCloseMeta +// 连接和流空闲超时的回收机制不考虑 +type TrpcStreamFrameType int32 + +const ( + // 一应一答的默认取值 + TrpcStreamFrameType_TRPC_UNARY TrpcStreamFrameType = 0 + // 流式INIT帧类型 + TrpcStreamFrameType_TRPC_STREAM_FRAME_INIT TrpcStreamFrameType = 1 + // 流式DATA帧类型 + TrpcStreamFrameType_TRPC_STREAM_FRAME_DATA TrpcStreamFrameType = 2 + // 流式FEEDBACK帧类型 + TrpcStreamFrameType_TRPC_STREAM_FRAME_FEEDBACK TrpcStreamFrameType = 3 + // 流式CLOSE帧类型 + TrpcStreamFrameType_TRPC_STREAM_FRAME_CLOSE TrpcStreamFrameType = 4 +) + +// Enum value maps for TrpcStreamFrameType. +var ( + TrpcStreamFrameType_name = map[int32]string{ + 0: "TRPC_UNARY", + 1: "TRPC_STREAM_FRAME_INIT", + 2: "TRPC_STREAM_FRAME_DATA", + 3: "TRPC_STREAM_FRAME_FEEDBACK", + 4: "TRPC_STREAM_FRAME_CLOSE", + } + TrpcStreamFrameType_value = map[string]int32{ + "TRPC_UNARY": 0, + "TRPC_STREAM_FRAME_INIT": 1, + "TRPC_STREAM_FRAME_DATA": 2, + "TRPC_STREAM_FRAME_FEEDBACK": 3, + "TRPC_STREAM_FRAME_CLOSE": 4, + } +) + +func (x TrpcStreamFrameType) Enum() *TrpcStreamFrameType { + p := new(TrpcStreamFrameType) + *p = x + return p +} + +func (x TrpcStreamFrameType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcStreamFrameType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_proto_trpc_proto_enumTypes[2].Descriptor() +} + +func (TrpcStreamFrameType) Type() protoreflect.EnumType { + return &file_trpc_proto_trpc_proto_enumTypes[2] +} + +func (x TrpcStreamFrameType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcStreamFrameType.Descriptor instead. +func (TrpcStreamFrameType) EnumDescriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{2} +} + +// trpc流式关闭类型 +type TrpcStreamCloseType int32 + +const ( + // 正常单向流关闭 + TrpcStreamCloseType_TRPC_STREAM_CLOSE TrpcStreamCloseType = 0 + // 异常关闭双向流 + TrpcStreamCloseType_TRPC_STREAM_RESET TrpcStreamCloseType = 1 +) + +// Enum value maps for TrpcStreamCloseType. +var ( + TrpcStreamCloseType_name = map[int32]string{ + 0: "TRPC_STREAM_CLOSE", + 1: "TRPC_STREAM_RESET", + } + TrpcStreamCloseType_value = map[string]int32{ + "TRPC_STREAM_CLOSE": 0, + "TRPC_STREAM_RESET": 1, + } +) + +func (x TrpcStreamCloseType) Enum() *TrpcStreamCloseType { + p := new(TrpcStreamCloseType) + *p = x + return p +} + +func (x TrpcStreamCloseType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcStreamCloseType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_proto_trpc_proto_enumTypes[3].Descriptor() +} + +func (TrpcStreamCloseType) Type() protoreflect.EnumType { + return &file_trpc_proto_trpc_proto_enumTypes[3] +} + +func (x TrpcStreamCloseType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcStreamCloseType.Descriptor instead. +func (TrpcStreamCloseType) EnumDescriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{3} +} + +// trpc协议版本 +type TrpcProtoVersion int32 + +const ( + // 默认版本 + TrpcProtoVersion_TRPC_PROTO_V1 TrpcProtoVersion = 0 +) + +// Enum value maps for TrpcProtoVersion. +var ( + TrpcProtoVersion_name = map[int32]string{ + 0: "TRPC_PROTO_V1", + } + TrpcProtoVersion_value = map[string]int32{ + "TRPC_PROTO_V1": 0, + } +) + +func (x TrpcProtoVersion) Enum() *TrpcProtoVersion { + p := new(TrpcProtoVersion) + *p = x + return p +} + +func (x TrpcProtoVersion) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcProtoVersion) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_proto_trpc_proto_enumTypes[4].Descriptor() +} + +func (TrpcProtoVersion) Type() protoreflect.EnumType { + return &file_trpc_proto_trpc_proto_enumTypes[4] +} + +func (x TrpcProtoVersion) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcProtoVersion.Descriptor instead. +func (TrpcProtoVersion) EnumDescriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{4} +} + +// trpc协议中的调用类型 +type TrpcCallType int32 + +const ( + // 一应一答调用,包括同步、异步 + TrpcCallType_TRPC_UNARY_CALL TrpcCallType = 0 + // 单向调用 + TrpcCallType_TRPC_ONEWAY_CALL TrpcCallType = 1 +) + +// Enum value maps for TrpcCallType. +var ( + TrpcCallType_name = map[int32]string{ + 0: "TRPC_UNARY_CALL", + 1: "TRPC_ONEWAY_CALL", + } + TrpcCallType_value = map[string]int32{ + "TRPC_UNARY_CALL": 0, + "TRPC_ONEWAY_CALL": 1, + } +) + +func (x TrpcCallType) Enum() *TrpcCallType { + p := new(TrpcCallType) + *p = x + return p +} + +func (x TrpcCallType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcCallType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_proto_trpc_proto_enumTypes[5].Descriptor() +} + +func (TrpcCallType) Type() protoreflect.EnumType { + return &file_trpc_proto_trpc_proto_enumTypes[5] +} + +func (x TrpcCallType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcCallType.Descriptor instead. +func (TrpcCallType) EnumDescriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{5} +} + +// trpc协议中的消息透传支持的类型 +type TrpcMessageType int32 + +const ( + // trpc 不用这个值,为了提供给 pb 工具生成代码 + TrpcMessageType_TRPC_DEFAULT TrpcMessageType = 0 + // 染色 + TrpcMessageType_TRPC_DYEING_MESSAGE TrpcMessageType = 1 + // 调用链 + TrpcMessageType_TRPC_TRACE_MESSAGE TrpcMessageType = 2 + // 多环境 + TrpcMessageType_TRPC_MULTI_ENV_MESSAGE TrpcMessageType = 4 + // 灰度 + TrpcMessageType_TRPC_GRID_MESSAGE TrpcMessageType = 8 + // set名 + TrpcMessageType_TRPC_SETNAME_MESSAGE TrpcMessageType = 16 +) + +// Enum value maps for TrpcMessageType. +var ( + TrpcMessageType_name = map[int32]string{ + 0: "TRPC_DEFAULT", + 1: "TRPC_DYEING_MESSAGE", + 2: "TRPC_TRACE_MESSAGE", + 4: "TRPC_MULTI_ENV_MESSAGE", + 8: "TRPC_GRID_MESSAGE", + 16: "TRPC_SETNAME_MESSAGE", + } + TrpcMessageType_value = map[string]int32{ + "TRPC_DEFAULT": 0, + "TRPC_DYEING_MESSAGE": 1, + "TRPC_TRACE_MESSAGE": 2, + "TRPC_MULTI_ENV_MESSAGE": 4, + "TRPC_GRID_MESSAGE": 8, + "TRPC_SETNAME_MESSAGE": 16, + } +) + +func (x TrpcMessageType) Enum() *TrpcMessageType { + p := new(TrpcMessageType) + *p = x + return p +} + +func (x TrpcMessageType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcMessageType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_proto_trpc_proto_enumTypes[6].Descriptor() +} + +func (TrpcMessageType) Type() protoreflect.EnumType { + return &file_trpc_proto_trpc_proto_enumTypes[6] +} + +func (x TrpcMessageType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcMessageType.Descriptor instead. +func (TrpcMessageType) EnumDescriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{6} +} + +// trpc协议中 data 内容的编码类型 +// 默认使用pb +// 目前约定 0-127 范围的取值为框架规范的序列化方式,框架使用 +type TrpcContentEncodeType int32 + +const ( + // pb + TrpcContentEncodeType_TRPC_PROTO_ENCODE TrpcContentEncodeType = 0 + // jce + TrpcContentEncodeType_TRPC_JCE_ENCODE TrpcContentEncodeType = 1 + // json + TrpcContentEncodeType_TRPC_JSON_ENCODE TrpcContentEncodeType = 2 + // flatbuffer + TrpcContentEncodeType_TRPC_FLATBUFFER_ENCODE TrpcContentEncodeType = 3 + // 不序列化 + TrpcContentEncodeType_TRPC_NOOP_ENCODE TrpcContentEncodeType = 4 + // xml + TrpcContentEncodeType_TRPC_XML_ENCODE TrpcContentEncodeType = 5 + // thrift + TrpcContentEncodeType_TRPC_THRIFT_ENCODE TrpcContentEncodeType = 6 +) + +// Enum value maps for TrpcContentEncodeType. +var ( + TrpcContentEncodeType_name = map[int32]string{ + 0: "TRPC_PROTO_ENCODE", + 1: "TRPC_JCE_ENCODE", + 2: "TRPC_JSON_ENCODE", + 3: "TRPC_FLATBUFFER_ENCODE", + 4: "TRPC_NOOP_ENCODE", + 5: "TRPC_XML_ENCODE", + 6: "TRPC_THRIFT_ENCODE", + } + TrpcContentEncodeType_value = map[string]int32{ + "TRPC_PROTO_ENCODE": 0, + "TRPC_JCE_ENCODE": 1, + "TRPC_JSON_ENCODE": 2, + "TRPC_FLATBUFFER_ENCODE": 3, + "TRPC_NOOP_ENCODE": 4, + "TRPC_XML_ENCODE": 5, + "TRPC_THRIFT_ENCODE": 6, + } +) + +func (x TrpcContentEncodeType) Enum() *TrpcContentEncodeType { + p := new(TrpcContentEncodeType) + *p = x + return p +} + +func (x TrpcContentEncodeType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcContentEncodeType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_proto_trpc_proto_enumTypes[7].Descriptor() +} + +func (TrpcContentEncodeType) Type() protoreflect.EnumType { + return &file_trpc_proto_trpc_proto_enumTypes[7] +} + +func (x TrpcContentEncodeType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcContentEncodeType.Descriptor instead. +func (TrpcContentEncodeType) EnumDescriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{7} +} + +// trpc协议中 data 内容的压缩类型 +// 默认使用不压缩 +type TrpcCompressType int32 + +const ( + // 默认不使用压缩 + TrpcCompressType_TRPC_DEFAULT_COMPRESS TrpcCompressType = 0 + // 使用gzip + TrpcCompressType_TRPC_GZIP_COMPRESS TrpcCompressType = 1 + // 使用snappy + TrpcCompressType_TRPC_SNAPPY_COMPRESS TrpcCompressType = 2 + // 使用zlib + TrpcCompressType_TRPC_ZLIB_COMPRESS TrpcCompressType = 3 +) + +// Enum value maps for TrpcCompressType. +var ( + TrpcCompressType_name = map[int32]string{ + 0: "TRPC_DEFAULT_COMPRESS", + 1: "TRPC_GZIP_COMPRESS", + 2: "TRPC_SNAPPY_COMPRESS", + 3: "TRPC_ZLIB_COMPRESS", + } + TrpcCompressType_value = map[string]int32{ + "TRPC_DEFAULT_COMPRESS": 0, + "TRPC_GZIP_COMPRESS": 1, + "TRPC_SNAPPY_COMPRESS": 2, + "TRPC_ZLIB_COMPRESS": 3, + } +) + +func (x TrpcCompressType) Enum() *TrpcCompressType { + p := new(TrpcCompressType) + *p = x + return p +} + +func (x TrpcCompressType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcCompressType) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_proto_trpc_proto_enumTypes[8].Descriptor() +} + +func (TrpcCompressType) Type() protoreflect.EnumType { + return &file_trpc_proto_trpc_proto_enumTypes[8] +} + +func (x TrpcCompressType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcCompressType.Descriptor instead. +func (TrpcCompressType) EnumDescriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{8} +} + +// 框架层接口调用的返回码定义 +type TrpcRetCode int32 + +const ( + // 调用成功 + TrpcRetCode_TRPC_INVOKE_SUCCESS TrpcRetCode = 0 + // 协议错误码 + // 服务端解码错误 + TrpcRetCode_TRPC_SERVER_DECODE_ERR TrpcRetCode = 1 + // 服务端编码错误 + TrpcRetCode_TRPC_SERVER_ENCODE_ERR TrpcRetCode = 2 + // service或者func路由错误码 + // 服务端没有调用相应的service实现 + TrpcRetCode_TRPC_SERVER_NOSERVICE_ERR TrpcRetCode = 11 + // 服务端没有调用相应的接口实现 + TrpcRetCode_TRPC_SERVER_NOFUNC_ERR TrpcRetCode = 12 + // 超时/过载/限流错误码 + // 请求在服务端超时 + TrpcRetCode_TRPC_SERVER_TIMEOUT_ERR TrpcRetCode = 21 + // 请求在服务端被过载保护而丢弃请求 + // 主要用在框架内部实现的过载保护插件上 + TrpcRetCode_TRPC_SERVER_OVERLOAD_ERR TrpcRetCode = 22 + // 请求在服务端被限流 + // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + TrpcRetCode_TRPC_SERVER_LIMITED_ERR TrpcRetCode = 23 + // 请求在服务端因全链路超时时间而超时 + TrpcRetCode_TRPC_SERVER_FULL_LINK_TIMEOUT_ERR TrpcRetCode = 24 + // 服务端系统错误 + TrpcRetCode_TRPC_SERVER_SYSTEM_ERR TrpcRetCode = 31 + // 服务端鉴权失败错误 + TrpcRetCode_TRPC_SERVER_AUTH_ERR TrpcRetCode = 41 + // 服务端请求参数自动校验失败错误 + TrpcRetCode_TRPC_SERVER_VALIDATE_ERR TrpcRetCode = 51 + // 超时错误码 + // 请求在客户端调用超时 + TrpcRetCode_TRPC_CLIENT_INVOKE_TIMEOUT_ERR TrpcRetCode = 101 + // 请求在客户端因全链路超时时间而超时 + TrpcRetCode_TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR TrpcRetCode = 102 + // 网络相关错误码 + // 客户端连接错误 + TrpcRetCode_TRPC_CLIENT_CONNECT_ERR TrpcRetCode = 111 + // 协议相关错误码 + // 客户端编码错误 + TrpcRetCode_TRPC_CLIENT_ENCODE_ERR TrpcRetCode = 121 + // 客户端解码错误 + TrpcRetCode_TRPC_CLIENT_DECODE_ERR TrpcRetCode = 122 + // 过载保护/限流相关错误码 + // 请求在客户端被限流 + // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + TrpcRetCode_TRPC_CLIENT_LIMITED_ERR TrpcRetCode = 123 + // 请求在客户端被过载保护而丢弃请求 + // 主要用在框架内部实现的过载保护插件上 + TrpcRetCode_TRPC_CLIENT_OVERLOAD_ERR TrpcRetCode = 124 + // 路由相关错误码 + // 客户端选ip路由错误 + TrpcRetCode_TRPC_CLIENT_ROUTER_ERR TrpcRetCode = 131 + // 客户端网络错误 + TrpcRetCode_TRPC_CLIENT_NETWORK_ERR TrpcRetCode = 141 + // 客户端响应参数自动校验失败错误 + TrpcRetCode_TRPC_CLIENT_VALIDATE_ERR TrpcRetCode = 151 + // 上游主动断开连接,提前取消请求错误 + TrpcRetCode_TRPC_CLIENT_CANCELED_ERR TrpcRetCode = 161 + // 服务端流式网络错误, 详细错误码需要在实现过程中再梳理 + TrpcRetCode_TRPC_STREAM_SERVER_NETWORK_ERR TrpcRetCode = 201 + // 服务端流式传输错误, 详细错误码需要在实现过程中再梳理 + // 比如:流消息过大等 + TrpcRetCode_TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR TrpcRetCode = 211 + // 服务端流式编码错误 + TrpcRetCode_TRPC_STREAM_SERVER_ENCODE_ERR TrpcRetCode = 221 + // 客户端流式编解码错误 + TrpcRetCode_TRPC_STREAM_SERVER_DECODE_ERR TrpcRetCode = 222 + // 服务端流式写错误, 详细错误码需要在实现过程中再梳理 + TrpcRetCode_TRPC_STREAM_SERVER_WRITE_END TrpcRetCode = 231 + TrpcRetCode_TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR TrpcRetCode = 232 + TrpcRetCode_TRPC_STREAM_SERVER_WRITE_CLOSE_ERR TrpcRetCode = 233 + TrpcRetCode_TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR TrpcRetCode = 234 + // 服务端流式读错误, 详细错误码需要在实现过程中再梳理 + TrpcRetCode_TRPC_STREAM_SERVER_READ_END TrpcRetCode = 251 + TrpcRetCode_TRPC_STREAM_SERVER_READ_CLOSE_ERR TrpcRetCode = 252 + TrpcRetCode_TRPC_STREAM_SERVER_READ_EMPTY_ERR TrpcRetCode = 253 + TrpcRetCode_TRPC_STREAM_SERVER_READ_TIMEOUT_ERR TrpcRetCode = 254 + // 客户端流式网络错误, 详细错误码需要在实现过程中再梳理 + TrpcRetCode_TRPC_STREAM_CLIENT_NETWORK_ERR TrpcRetCode = 301 + // 客户端流式传输错误, 详细错误码需要在实现过程中再梳理 + // 比如:流消息过大等 + TrpcRetCode_TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR TrpcRetCode = 311 + // 客户端流式编码错误 + TrpcRetCode_TRPC_STREAM_CLIENT_ENCODE_ERR TrpcRetCode = 321 + // 客户端流式编解码错误 + TrpcRetCode_TRPC_STREAM_CLIENT_DECODE_ERR TrpcRetCode = 322 + // 客户端流式写错误, 详细错误码需要在实现过程中再梳理 + TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_END TrpcRetCode = 331 + TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR TrpcRetCode = 332 + TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR TrpcRetCode = 333 + TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR TrpcRetCode = 334 + // 客户端流式读错误, 详细错误码需要在实现过程中再梳理 + TrpcRetCode_TRPC_STREAM_CLIENT_READ_END TrpcRetCode = 351 + TrpcRetCode_TRPC_STREAM_CLIENT_READ_CLOSE_ERR TrpcRetCode = 352 + TrpcRetCode_TRPC_STREAM_CLIENT_READ_EMPTY_ERR TrpcRetCode = 353 + TrpcRetCode_TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR TrpcRetCode = 354 + // 未明确的错误 + TrpcRetCode_TRPC_INVOKE_UNKNOWN_ERR TrpcRetCode = 999 + // 未明确的错误 + TrpcRetCode_TRPC_STREAM_UNKNOWN_ERR TrpcRetCode = 1000 +) + +// Enum value maps for TrpcRetCode. +var ( + TrpcRetCode_name = map[int32]string{ + 0: "TRPC_INVOKE_SUCCESS", + 1: "TRPC_SERVER_DECODE_ERR", + 2: "TRPC_SERVER_ENCODE_ERR", + 11: "TRPC_SERVER_NOSERVICE_ERR", + 12: "TRPC_SERVER_NOFUNC_ERR", + 21: "TRPC_SERVER_TIMEOUT_ERR", + 22: "TRPC_SERVER_OVERLOAD_ERR", + 23: "TRPC_SERVER_LIMITED_ERR", + 24: "TRPC_SERVER_FULL_LINK_TIMEOUT_ERR", + 31: "TRPC_SERVER_SYSTEM_ERR", + 41: "TRPC_SERVER_AUTH_ERR", + 51: "TRPC_SERVER_VALIDATE_ERR", + 101: "TRPC_CLIENT_INVOKE_TIMEOUT_ERR", + 102: "TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR", + 111: "TRPC_CLIENT_CONNECT_ERR", + 121: "TRPC_CLIENT_ENCODE_ERR", + 122: "TRPC_CLIENT_DECODE_ERR", + 123: "TRPC_CLIENT_LIMITED_ERR", + 124: "TRPC_CLIENT_OVERLOAD_ERR", + 131: "TRPC_CLIENT_ROUTER_ERR", + 141: "TRPC_CLIENT_NETWORK_ERR", + 151: "TRPC_CLIENT_VALIDATE_ERR", + 161: "TRPC_CLIENT_CANCELED_ERR", + 201: "TRPC_STREAM_SERVER_NETWORK_ERR", + 211: "TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR", + 221: "TRPC_STREAM_SERVER_ENCODE_ERR", + 222: "TRPC_STREAM_SERVER_DECODE_ERR", + 231: "TRPC_STREAM_SERVER_WRITE_END", + 232: "TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR", + 233: "TRPC_STREAM_SERVER_WRITE_CLOSE_ERR", + 234: "TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR", + 251: "TRPC_STREAM_SERVER_READ_END", + 252: "TRPC_STREAM_SERVER_READ_CLOSE_ERR", + 253: "TRPC_STREAM_SERVER_READ_EMPTY_ERR", + 254: "TRPC_STREAM_SERVER_READ_TIMEOUT_ERR", + 301: "TRPC_STREAM_CLIENT_NETWORK_ERR", + 311: "TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR", + 321: "TRPC_STREAM_CLIENT_ENCODE_ERR", + 322: "TRPC_STREAM_CLIENT_DECODE_ERR", + 331: "TRPC_STREAM_CLIENT_WRITE_END", + 332: "TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR", + 333: "TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR", + 334: "TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR", + 351: "TRPC_STREAM_CLIENT_READ_END", + 352: "TRPC_STREAM_CLIENT_READ_CLOSE_ERR", + 353: "TRPC_STREAM_CLIENT_READ_EMPTY_ERR", + 354: "TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR", + 999: "TRPC_INVOKE_UNKNOWN_ERR", + 1000: "TRPC_STREAM_UNKNOWN_ERR", + } + TrpcRetCode_value = map[string]int32{ + "TRPC_INVOKE_SUCCESS": 0, + "TRPC_SERVER_DECODE_ERR": 1, + "TRPC_SERVER_ENCODE_ERR": 2, + "TRPC_SERVER_NOSERVICE_ERR": 11, + "TRPC_SERVER_NOFUNC_ERR": 12, + "TRPC_SERVER_TIMEOUT_ERR": 21, + "TRPC_SERVER_OVERLOAD_ERR": 22, + "TRPC_SERVER_LIMITED_ERR": 23, + "TRPC_SERVER_FULL_LINK_TIMEOUT_ERR": 24, + "TRPC_SERVER_SYSTEM_ERR": 31, + "TRPC_SERVER_AUTH_ERR": 41, + "TRPC_SERVER_VALIDATE_ERR": 51, + "TRPC_CLIENT_INVOKE_TIMEOUT_ERR": 101, + "TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR": 102, + "TRPC_CLIENT_CONNECT_ERR": 111, + "TRPC_CLIENT_ENCODE_ERR": 121, + "TRPC_CLIENT_DECODE_ERR": 122, + "TRPC_CLIENT_LIMITED_ERR": 123, + "TRPC_CLIENT_OVERLOAD_ERR": 124, + "TRPC_CLIENT_ROUTER_ERR": 131, + "TRPC_CLIENT_NETWORK_ERR": 141, + "TRPC_CLIENT_VALIDATE_ERR": 151, + "TRPC_CLIENT_CANCELED_ERR": 161, + "TRPC_STREAM_SERVER_NETWORK_ERR": 201, + "TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR": 211, + "TRPC_STREAM_SERVER_ENCODE_ERR": 221, + "TRPC_STREAM_SERVER_DECODE_ERR": 222, + "TRPC_STREAM_SERVER_WRITE_END": 231, + "TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR": 232, + "TRPC_STREAM_SERVER_WRITE_CLOSE_ERR": 233, + "TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR": 234, + "TRPC_STREAM_SERVER_READ_END": 251, + "TRPC_STREAM_SERVER_READ_CLOSE_ERR": 252, + "TRPC_STREAM_SERVER_READ_EMPTY_ERR": 253, + "TRPC_STREAM_SERVER_READ_TIMEOUT_ERR": 254, + "TRPC_STREAM_CLIENT_NETWORK_ERR": 301, + "TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR": 311, + "TRPC_STREAM_CLIENT_ENCODE_ERR": 321, + "TRPC_STREAM_CLIENT_DECODE_ERR": 322, + "TRPC_STREAM_CLIENT_WRITE_END": 331, + "TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR": 332, + "TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR": 333, + "TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR": 334, + "TRPC_STREAM_CLIENT_READ_END": 351, + "TRPC_STREAM_CLIENT_READ_CLOSE_ERR": 352, + "TRPC_STREAM_CLIENT_READ_EMPTY_ERR": 353, + "TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR": 354, + "TRPC_INVOKE_UNKNOWN_ERR": 999, + "TRPC_STREAM_UNKNOWN_ERR": 1000, + } +) + +func (x TrpcRetCode) Enum() *TrpcRetCode { + p := new(TrpcRetCode) + *p = x + return p +} + +func (x TrpcRetCode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcRetCode) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_proto_trpc_proto_enumTypes[9].Descriptor() +} + +func (TrpcRetCode) Type() protoreflect.EnumType { + return &file_trpc_proto_trpc_proto_enumTypes[9] +} + +func (x TrpcRetCode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcRetCode.Descriptor instead. +func (TrpcRetCode) EnumDescriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{9} +} + +// trpc流式的流控帧头消息定义 +type TrpcStreamInitMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // init请求元信息 + RequestMeta *TrpcStreamInitRequestMeta `protobuf:"bytes,1,opt,name=request_meta,json=requestMeta,proto3" json:"request_meta,omitempty"` + // init响应元信息 + ResponseMeta *TrpcStreamInitResponseMeta `protobuf:"bytes,2,opt,name=response_meta,json=responseMeta,proto3" json:"response_meta,omitempty"` + // 由接收端告知发送端初始的发送窗口大小 + InitWindowSize uint32 `protobuf:"varint,3,opt,name=init_window_size,json=initWindowSize,proto3" json:"init_window_size,omitempty"` + // 请求数据的序列化类型 + // 比如: proto/jce/json, 默认proto + // 具体值与TrpcContentEncodeType对应 + ContentType uint32 `protobuf:"varint,4,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` + // 请求数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + // 具体值与TrpcCompressType对应 + ContentEncoding uint32 `protobuf:"varint,5,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` +} + +func (x *TrpcStreamInitMeta) Reset() { + *x = TrpcStreamInitMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_trpc_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamInitMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamInitMeta) ProtoMessage() {} + +func (x *TrpcStreamInitMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_trpc_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamInitMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamInitMeta) Descriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{0} +} + +func (x *TrpcStreamInitMeta) GetRequestMeta() *TrpcStreamInitRequestMeta { + if x != nil { + return x.RequestMeta + } + return nil +} + +func (x *TrpcStreamInitMeta) GetResponseMeta() *TrpcStreamInitResponseMeta { + if x != nil { + return x.ResponseMeta + } + return nil +} + +func (x *TrpcStreamInitMeta) GetInitWindowSize() uint32 { + if x != nil { + return x.InitWindowSize + } + return 0 +} + +func (x *TrpcStreamInitMeta) GetContentType() uint32 { + if x != nil { + return x.ContentType + } + return 0 +} + +func (x *TrpcStreamInitMeta) GetContentEncoding() uint32 { + if x != nil { + return x.ContentEncoding + } + return 0 +} + +// trpc流式init头的请求元信息 +type TrpcStreamInitRequestMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 主调服务的名称 + // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + Caller []byte `protobuf:"bytes,1,opt,name=caller,proto3" json:"caller,omitempty"` + // 被调服务的路由名称 + // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] + // 前4段是必须有,接口可选。 + Callee []byte `protobuf:"bytes,2,opt,name=callee,proto3" json:"callee,omitempty"` + // 调用服务的接口名 + // 规范格式: /package.Service名称/接口名 + Func []byte `protobuf:"bytes,3,opt,name=func,proto3" json:"func,omitempty"` + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + MessageType uint32 `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc-开头 + // 2是业务层要透传的信息,业务可以自行设置 + // 注意: trans_info中的key-value对会全链路透传,业务请谨慎使用! + TransInfo map[string][]byte `protobuf:"bytes,5,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *TrpcStreamInitRequestMeta) Reset() { + *x = TrpcStreamInitRequestMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_trpc_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamInitRequestMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamInitRequestMeta) ProtoMessage() {} + +func (x *TrpcStreamInitRequestMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_trpc_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamInitRequestMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamInitRequestMeta) Descriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{1} +} + +func (x *TrpcStreamInitRequestMeta) GetCaller() []byte { + if x != nil { + return x.Caller + } + return nil +} + +func (x *TrpcStreamInitRequestMeta) GetCallee() []byte { + if x != nil { + return x.Callee + } + return nil +} + +func (x *TrpcStreamInitRequestMeta) GetFunc() []byte { + if x != nil { + return x.Func + } + return nil +} + +func (x *TrpcStreamInitRequestMeta) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *TrpcStreamInitRequestMeta) GetTransInfo() map[string][]byte { + if x != nil { + return x.TransInfo + } + return nil +} + +// trpc流式init头的响应元信息 +type TrpcStreamInitResponseMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 请求在框架层的错误返回码 + // 具体值与TrpcRetCode对应 + Ret int32 `protobuf:"varint,1,opt,name=ret,proto3" json:"ret,omitempty"` + // 调用结果信息描述 + // 失败的时候用 + ErrorMsg []byte `protobuf:"bytes,2,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` +} + +func (x *TrpcStreamInitResponseMeta) Reset() { + *x = TrpcStreamInitResponseMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_trpc_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamInitResponseMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamInitResponseMeta) ProtoMessage() {} + +func (x *TrpcStreamInitResponseMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_trpc_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamInitResponseMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamInitResponseMeta) Descriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{2} +} + +func (x *TrpcStreamInitResponseMeta) GetRet() int32 { + if x != nil { + return x.Ret + } + return 0 +} + +func (x *TrpcStreamInitResponseMeta) GetErrorMsg() []byte { + if x != nil { + return x.ErrorMsg + } + return nil +} + +// trpc流式的流控帧头元信息定义 +type TrpcStreamFeedBackMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 增加的窗口大小 + WindowSizeIncrement uint32 `protobuf:"varint,1,opt,name=window_size_increment,json=windowSizeIncrement,proto3" json:"window_size_increment,omitempty"` +} + +func (x *TrpcStreamFeedBackMeta) Reset() { + *x = TrpcStreamFeedBackMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_trpc_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamFeedBackMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamFeedBackMeta) ProtoMessage() {} + +func (x *TrpcStreamFeedBackMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_trpc_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamFeedBackMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamFeedBackMeta) Descriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{3} +} + +func (x *TrpcStreamFeedBackMeta) GetWindowSizeIncrement() uint32 { + if x != nil { + return x.WindowSizeIncrement + } + return 0 +} + +// trpc流式的RESET帧头消息定义 +type TrpcStreamCloseMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 关闭的类型,关闭一端,还是全部关闭 + CloseType int32 `protobuf:"varint,1,opt,name=close_type,json=closeType,proto3" json:"close_type,omitempty"` + // close返回码 + // 代表框架层的错误 + Ret int32 `protobuf:"varint,2,opt,name=ret,proto3" json:"ret,omitempty"` + // close信息描述 + Msg []byte `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + MessageType uint32 `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc-开头 + // 2是业务层要透传的信息,业务可以自行设置 + TransInfo map[string][]byte `protobuf:"bytes,5,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // 接口的错误返回码 + // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + FuncRet int32 `protobuf:"varint,6,opt,name=func_ret,json=funcRet,proto3" json:"func_ret,omitempty"` +} + +func (x *TrpcStreamCloseMeta) Reset() { + *x = TrpcStreamCloseMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_trpc_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamCloseMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamCloseMeta) ProtoMessage() {} + +func (x *TrpcStreamCloseMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_trpc_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamCloseMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamCloseMeta) Descriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{4} +} + +func (x *TrpcStreamCloseMeta) GetCloseType() int32 { + if x != nil { + return x.CloseType + } + return 0 +} + +func (x *TrpcStreamCloseMeta) GetRet() int32 { + if x != nil { + return x.Ret + } + return 0 +} + +func (x *TrpcStreamCloseMeta) GetMsg() []byte { + if x != nil { + return x.Msg + } + return nil +} + +func (x *TrpcStreamCloseMeta) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *TrpcStreamCloseMeta) GetTransInfo() map[string][]byte { + if x != nil { + return x.TransInfo + } + return nil +} + +func (x *TrpcStreamCloseMeta) GetFuncRet() int32 { + if x != nil { + return x.FuncRet + } + return 0 +} + +// 请求协议头 +type RequestProtocol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 协议版本 + // 具体值与TrpcProtoVersion对应 + Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + // 请求的调用类型 + // 比如: 普通调用,单向调用 + // 具体值与TrpcCallType对应 + CallType uint32 `protobuf:"varint,2,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` + // 请求唯一id + RequestId uint32 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // 请求的超时时间,单位ms + Timeout uint32 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"` + // 主调服务的名称 + // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + Caller []byte `protobuf:"bytes,5,opt,name=caller,proto3" json:"caller,omitempty"` + // 被调服务的路由名称 + // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] + // 前4段是必须有,接口可选。 + Callee []byte `protobuf:"bytes,6,opt,name=callee,proto3" json:"callee,omitempty"` + // 调用服务的接口名 + // 规范格式: /package.Service名称/接口名 + Func []byte `protobuf:"bytes,7,opt,name=func,proto3" json:"func,omitempty"` + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + MessageType uint32 `protobuf:"varint,8,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc-开头 + // 2是业务层要透传的信息,业务可以自行设置 + TransInfo map[string][]byte `protobuf:"bytes,9,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // 请求数据的序列化类型 + // 比如: proto/jce/json, 默认proto + // 具体值与TrpcContentEncodeType对应 + ContentType uint32 `protobuf:"varint,10,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` + // 请求数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + // 具体值与TrpcCompressType对应 + ContentEncoding uint32 `protobuf:"varint,11,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` +} + +func (x *RequestProtocol) Reset() { + *x = RequestProtocol{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_trpc_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RequestProtocol) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequestProtocol) ProtoMessage() {} + +func (x *RequestProtocol) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_trpc_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequestProtocol.ProtoReflect.Descriptor instead. +func (*RequestProtocol) Descriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{5} +} + +func (x *RequestProtocol) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *RequestProtocol) GetCallType() uint32 { + if x != nil { + return x.CallType + } + return 0 +} + +func (x *RequestProtocol) GetRequestId() uint32 { + if x != nil { + return x.RequestId + } + return 0 +} + +func (x *RequestProtocol) GetTimeout() uint32 { + if x != nil { + return x.Timeout + } + return 0 +} + +func (x *RequestProtocol) GetCaller() []byte { + if x != nil { + return x.Caller + } + return nil +} + +func (x *RequestProtocol) GetCallee() []byte { + if x != nil { + return x.Callee + } + return nil +} + +func (x *RequestProtocol) GetFunc() []byte { + if x != nil { + return x.Func + } + return nil +} + +func (x *RequestProtocol) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *RequestProtocol) GetTransInfo() map[string][]byte { + if x != nil { + return x.TransInfo + } + return nil +} + +func (x *RequestProtocol) GetContentType() uint32 { + if x != nil { + return x.ContentType + } + return 0 +} + +func (x *RequestProtocol) GetContentEncoding() uint32 { + if x != nil { + return x.ContentEncoding + } + return 0 +} + +// 响应协议头 +type ResponseProtocol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 协议版本 + // 具体值与TrpcProtoVersion对应 + Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + // 请求的调用类型 + // 比如: 普通调用,单向调用 + // 具体值与TrpcCallType对应 + CallType uint32 `protobuf:"varint,2,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` + // 请求唯一id + RequestId uint32 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // 请求在框架层的错误返回码 + // 具体值与TrpcRetCode对应 + Ret int32 `protobuf:"varint,4,opt,name=ret,proto3" json:"ret,omitempty"` + // 接口的错误返回码 + // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + FuncRet int32 `protobuf:"varint,5,opt,name=func_ret,json=funcRet,proto3" json:"func_ret,omitempty"` + // 调用结果信息描述 + // 失败的时候用 + ErrorMsg []byte `protobuf:"bytes,6,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + MessageType uint32 `protobuf:"varint,7,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // 框架透传回来的信息key-value对, + // 目前分两部分 + // 1是框架层透传回来的信息,key的名字要以trpc-开头 + // 2是业务层透传回来的信息,业务可以自行设置 + TransInfo map[string][]byte `protobuf:"bytes,8,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // 响应数据的编码类型 + // 比如: proto/jce/json, 默认proto + // 具体值与TrpcContentEncodeType对应 + ContentType uint32 `protobuf:"varint,9,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` + // 响应数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + // 具体值与TrpcCompressType对应 + ContentEncoding uint32 `protobuf:"varint,10,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` +} + +func (x *ResponseProtocol) Reset() { + *x = ResponseProtocol{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_trpc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResponseProtocol) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseProtocol) ProtoMessage() {} + +func (x *ResponseProtocol) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_trpc_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResponseProtocol.ProtoReflect.Descriptor instead. +func (*ResponseProtocol) Descriptor() ([]byte, []int) { + return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{6} +} + +func (x *ResponseProtocol) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *ResponseProtocol) GetCallType() uint32 { + if x != nil { + return x.CallType + } + return 0 +} + +func (x *ResponseProtocol) GetRequestId() uint32 { + if x != nil { + return x.RequestId + } + return 0 +} + +func (x *ResponseProtocol) GetRet() int32 { + if x != nil { + return x.Ret + } + return 0 +} + +func (x *ResponseProtocol) GetFuncRet() int32 { + if x != nil { + return x.FuncRet + } + return 0 +} + +func (x *ResponseProtocol) GetErrorMsg() []byte { + if x != nil { + return x.ErrorMsg + } + return nil +} + +func (x *ResponseProtocol) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *ResponseProtocol) GetTransInfo() map[string][]byte { + if x != nil { + return x.TransInfo + } + return nil +} + +func (x *ResponseProtocol) GetContentType() uint32 { + if x != nil { + return x.ContentType + } + return 0 +} + +func (x *ResponseProtocol) GetContentEncoding() uint32 { + if x != nil { + return x.ContentEncoding + } + return 0 +} + +var File_trpc_proto_trpc_proto protoreflect.FileDescriptor + +var file_trpc_proto_trpc_proto_rawDesc = []byte{ + 0x0a, 0x15, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x74, 0x72, 0x70, 0x63, 0x22, 0x97, 0x02, + 0x0a, 0x12, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0b, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, + 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, + 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x8f, 0x02, 0x0a, 0x19, 0x54, 0x72, 0x70, 0x63, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, + 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, + 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4d, 0x0a, 0x0a, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x1a, 0x54, 0x72, 0x70, + 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x4c, 0x0a, 0x16, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x46, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, + 0x12, 0x32, 0x0a, 0x15, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x13, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9d, 0x02, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, + 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, + 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x66, + 0x75, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, + 0x75, 0x6e, 0x63, 0x52, 0x65, 0x74, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb9, 0x03, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, + 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x21, 0x0a, 0x0c, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x43, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, + 0x6e, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0xa7, 0x03, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, + 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x66, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, + 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, + 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x39, 0x0a, 0x09, 0x54, 0x72, + 0x70, 0x63, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x15, + 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x5f, 0x56, 0x41, 0x4c, + 0x55, 0x45, 0x10, 0xb0, 0x12, 0x2a, 0x40, 0x0a, 0x11, 0x54, 0x72, 0x70, 0x63, 0x44, 0x61, 0x74, + 0x61, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x2a, 0x9a, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x0e, 0x0a, 0x0a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x00, 0x12, + 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, + 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, + 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x46, 0x45, 0x45, + 0x44, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x4f, + 0x53, 0x45, 0x10, 0x04, 0x2a, 0x43, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, + 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x10, 0x54, 0x72, 0x70, + 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x0a, + 0x0d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x56, 0x31, 0x10, 0x00, + 0x2a, 0x39, 0x0a, 0x0c, 0x54, 0x72, 0x70, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x43, + 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4f, 0x4e, + 0x45, 0x57, 0x41, 0x59, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x2a, 0xa1, 0x01, 0x0a, 0x0f, + 0x54, 0x72, 0x70, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x10, 0x0a, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, + 0x00, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x59, 0x45, 0x49, 0x4e, 0x47, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, + 0x5f, 0x45, 0x4e, 0x56, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, + 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x52, 0x49, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, + 0x54, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x2a, + 0xb8, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, + 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x00, + 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4a, 0x43, 0x45, 0x5f, 0x45, 0x4e, 0x43, + 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4a, 0x53, + 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x46, 0x4c, 0x41, 0x54, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x45, + 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x4e, 0x4f, 0x4f, 0x50, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, + 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, + 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, + 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x2a, 0x77, 0x0a, 0x10, 0x54, 0x72, + 0x70, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, + 0x0a, 0x15, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, + 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x47, 0x5a, 0x49, 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, + 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, + 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x5a, 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, + 0x53, 0x10, 0x03, 0x2a, 0xb0, 0x0d, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, + 0x4b, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, + 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0c, 0x12, + 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x54, + 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, 0x45, 0x52, + 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, + 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, + 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, + 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x59, + 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, + 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, 0x1b, 0x0a, + 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x7a, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7b, 0x12, + 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, + 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, 0x1b, 0x0a, + 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x4f, 0x55, + 0x54, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0xa1, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x54, + 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, + 0x52, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, + 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, 0x22, 0x0a, + 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xde, + 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, + 0x44, 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, + 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x01, + 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, + 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, + 0x45, 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, + 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, 0x12, 0x26, + 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, + 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, + 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfe, 0x01, + 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xad, 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, 0x47, 0x5f, + 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0xb7, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, 0x12, 0x2a, + 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, + 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, + 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0xcd, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, + 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, 0x12, 0x20, + 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, + 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xdf, 0x02, + 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, + 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, + 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe1, 0x02, + 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, + 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x66, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, + 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x42, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x2e, + 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, + 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, + 0x62, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpc_proto_trpc_proto_rawDescOnce sync.Once + file_trpc_proto_trpc_proto_rawDescData = file_trpc_proto_trpc_proto_rawDesc +) + +func file_trpc_proto_trpc_proto_rawDescGZIP() []byte { + file_trpc_proto_trpc_proto_rawDescOnce.Do(func() { + file_trpc_proto_trpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_proto_trpc_proto_rawDescData) + }) + return file_trpc_proto_trpc_proto_rawDescData +} + +var file_trpc_proto_trpc_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_trpc_proto_trpc_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_trpc_proto_trpc_proto_goTypes = []interface{}{ + (TrpcMagic)(0), // 0: trpc.TrpcMagic + (TrpcDataFrameType)(0), // 1: trpc.TrpcDataFrameType + (TrpcStreamFrameType)(0), // 2: trpc.TrpcStreamFrameType + (TrpcStreamCloseType)(0), // 3: trpc.TrpcStreamCloseType + (TrpcProtoVersion)(0), // 4: trpc.TrpcProtoVersion + (TrpcCallType)(0), // 5: trpc.TrpcCallType + (TrpcMessageType)(0), // 6: trpc.TrpcMessageType + (TrpcContentEncodeType)(0), // 7: trpc.TrpcContentEncodeType + (TrpcCompressType)(0), // 8: trpc.TrpcCompressType + (TrpcRetCode)(0), // 9: trpc.TrpcRetCode + (*TrpcStreamInitMeta)(nil), // 10: trpc.TrpcStreamInitMeta + (*TrpcStreamInitRequestMeta)(nil), // 11: trpc.TrpcStreamInitRequestMeta + (*TrpcStreamInitResponseMeta)(nil), // 12: trpc.TrpcStreamInitResponseMeta + (*TrpcStreamFeedBackMeta)(nil), // 13: trpc.TrpcStreamFeedBackMeta + (*TrpcStreamCloseMeta)(nil), // 14: trpc.TrpcStreamCloseMeta + (*RequestProtocol)(nil), // 15: trpc.RequestProtocol + (*ResponseProtocol)(nil), // 16: trpc.ResponseProtocol + nil, // 17: trpc.TrpcStreamInitRequestMeta.TransInfoEntry + nil, // 18: trpc.TrpcStreamCloseMeta.TransInfoEntry + nil, // 19: trpc.RequestProtocol.TransInfoEntry + nil, // 20: trpc.ResponseProtocol.TransInfoEntry +} +var file_trpc_proto_trpc_proto_depIdxs = []int32{ + 11, // 0: trpc.TrpcStreamInitMeta.request_meta:type_name -> trpc.TrpcStreamInitRequestMeta + 12, // 1: trpc.TrpcStreamInitMeta.response_meta:type_name -> trpc.TrpcStreamInitResponseMeta + 17, // 2: trpc.TrpcStreamInitRequestMeta.trans_info:type_name -> trpc.TrpcStreamInitRequestMeta.TransInfoEntry + 18, // 3: trpc.TrpcStreamCloseMeta.trans_info:type_name -> trpc.TrpcStreamCloseMeta.TransInfoEntry + 19, // 4: trpc.RequestProtocol.trans_info:type_name -> trpc.RequestProtocol.TransInfoEntry + 20, // 5: trpc.ResponseProtocol.trans_info:type_name -> trpc.ResponseProtocol.TransInfoEntry + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_trpc_proto_trpc_proto_init() } +func file_trpc_proto_trpc_proto_init() { + if File_trpc_proto_trpc_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpc_proto_trpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamInitMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_trpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamInitRequestMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_trpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamInitResponseMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_trpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamFeedBackMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_trpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamCloseMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_trpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestProtocol); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_trpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResponseProtocol); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_proto_trpc_proto_rawDesc, + NumEnums: 10, + NumMessages: 11, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_trpc_proto_trpc_proto_goTypes, + DependencyIndexes: file_trpc_proto_trpc_proto_depIdxs, + EnumInfos: file_trpc_proto_trpc_proto_enumTypes, + MessageInfos: file_trpc_proto_trpc_proto_msgTypes, + }.Build() + File_trpc_proto_trpc_proto = out.File + file_trpc_proto_trpc_proto_rawDesc = nil + file_trpc_proto_trpc_proto_goTypes = nil + file_trpc_proto_trpc_proto_depIdxs = nil +} diff --git a/pbgo/trpc/proto/trpc_options.pb.go b/pbgo/trpc/proto/trpc_options.pb.go new file mode 100644 index 0000000..2cc759e --- /dev/null +++ b/pbgo/trpc/proto/trpc_options.pb.go @@ -0,0 +1,112 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 +// source: trpc/proto/trpc_options.proto + +package proto + +import ( + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var file_trpc_proto_trpc_options_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptor.MethodOptions)(nil), + ExtensionType: (*string)(nil), + Field: 50001, + Name: "trpc.alias", + Tag: "bytes,50001,opt,name=alias", + Filename: "trpc/proto/trpc_options.proto", + }, + { + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 50050, + Name: "trpc.go_tag", + Tag: "bytes,50050,opt,name=go_tag", + Filename: "trpc/proto/trpc_options.proto", + }, +} + +// Extension fields to descriptor.MethodOptions. +var ( + // optional string alias = 50001; + E_Alias = &file_trpc_proto_trpc_options_proto_extTypes[0] +) + +// Extension fields to descriptor.FieldOptions. +var ( + // optional string go_tag = 50050; + E_GoTag = &file_trpc_proto_trpc_options_proto_extTypes[1] +) + +var File_trpc_proto_trpc_options_proto protoreflect.FileDescriptor + +var file_trpc_proto_trpc_options_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x72, 0x70, + 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x04, 0x74, 0x72, 0x70, 0x63, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x36, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, + 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0xd1, 0x86, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x3a, + 0x36, 0x0a, 0x06, 0x67, 0x6f, 0x5f, 0x74, 0x61, 0x67, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x82, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x2e, 0x77, + 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, + 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var file_trpc_proto_trpc_options_proto_goTypes = []interface{}{ + (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*descriptor.FieldOptions)(nil), // 1: google.protobuf.FieldOptions +} +var file_trpc_proto_trpc_options_proto_depIdxs = []int32{ + 0, // 0: trpc.alias:extendee -> google.protobuf.MethodOptions + 1, // 1: trpc.go_tag:extendee -> google.protobuf.FieldOptions + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 0, // [0:2] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_trpc_proto_trpc_options_proto_init() } +func file_trpc_proto_trpc_options_proto_init() { + if File_trpc_proto_trpc_options_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_proto_trpc_options_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 2, + NumServices: 0, + }, + GoTypes: file_trpc_proto_trpc_options_proto_goTypes, + DependencyIndexes: file_trpc_proto_trpc_options_proto_depIdxs, + ExtensionInfos: file_trpc_proto_trpc_options_proto_extTypes, + }.Build() + File_trpc_proto_trpc_options_proto = out.File + file_trpc_proto_trpc_options_proto_rawDesc = nil + file_trpc_proto_trpc_options_proto_goTypes = nil + file_trpc_proto_trpc_options_proto_depIdxs = nil +} diff --git a/pbgo/trpc/proto/validate.ext.pb.go b/pbgo/trpc/proto/validate.ext.pb.go new file mode 100644 index 0000000..b659567 --- /dev/null +++ b/pbgo/trpc/proto/validate.ext.pb.go @@ -0,0 +1,4169 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 +// source: trpc/proto/validate.ext.proto + +package proto + +import ( + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + duration "github.com/golang/protobuf/ptypes/duration" + timestamp "github.com/golang/protobuf/ptypes/timestamp" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// WellKnownRegex contain some well-known patterns. +type KnownRegex int32 + +const ( + KnownRegex_UNKNOWN KnownRegex = 0 + // HTTP header name as defined by RFC 7230. + KnownRegex_HTTP_HEADER_NAME KnownRegex = 1 + // HTTP header value as defined by RFC 7230. + KnownRegex_HTTP_HEADER_VALUE KnownRegex = 2 +) + +// Enum value maps for KnownRegex. +var ( + KnownRegex_name = map[int32]string{ + 0: "UNKNOWN", + 1: "HTTP_HEADER_NAME", + 2: "HTTP_HEADER_VALUE", + } + KnownRegex_value = map[string]int32{ + "UNKNOWN": 0, + "HTTP_HEADER_NAME": 1, + "HTTP_HEADER_VALUE": 2, + } +) + +func (x KnownRegex) Enum() *KnownRegex { + p := new(KnownRegex) + *p = x + return p +} + +func (x KnownRegex) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (KnownRegex) Descriptor() protoreflect.EnumDescriptor { + return file_trpc_proto_validate_ext_proto_enumTypes[0].Descriptor() +} + +func (KnownRegex) Type() protoreflect.EnumType { + return &file_trpc_proto_validate_ext_proto_enumTypes[0] +} + +func (x KnownRegex) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *KnownRegex) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = KnownRegex(num) + return nil +} + +// Deprecated: Use KnownRegex.Descriptor instead. +func (KnownRegex) EnumDescriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{0} +} + +// FieldRules encapsulates the rules for each type of field. Depending on the +// field, the correct set should be used to ensure proper validations. +type FieldRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message *MessageRules `protobuf:"bytes,17,opt,name=message" json:"message,omitempty"` + // Types that are assignable to Type: + // *FieldRules_Float + // *FieldRules_Double + // *FieldRules_Int32 + // *FieldRules_Int64 + // *FieldRules_Uint32 + // *FieldRules_Uint64 + // *FieldRules_Sint32 + // *FieldRules_Sint64 + // *FieldRules_Fixed32 + // *FieldRules_Fixed64 + // *FieldRules_Sfixed32 + // *FieldRules_Sfixed64 + // *FieldRules_Bool + // *FieldRules_String_ + // *FieldRules_Bytes + // *FieldRules_Enum + // *FieldRules_Repeated + // *FieldRules_Map + // *FieldRules_Any + // *FieldRules_Duration + // *FieldRules_Timestamp + Type isFieldRules_Type `protobuf_oneof:"type"` +} + +func (x *FieldRules) Reset() { + *x = FieldRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FieldRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FieldRules) ProtoMessage() {} + +func (x *FieldRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FieldRules.ProtoReflect.Descriptor instead. +func (*FieldRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{0} +} + +func (x *FieldRules) GetMessage() *MessageRules { + if x != nil { + return x.Message + } + return nil +} + +func (m *FieldRules) GetType() isFieldRules_Type { + if m != nil { + return m.Type + } + return nil +} + +func (x *FieldRules) GetFloat() *FloatRules { + if x, ok := x.GetType().(*FieldRules_Float); ok { + return x.Float + } + return nil +} + +func (x *FieldRules) GetDouble() *DoubleRules { + if x, ok := x.GetType().(*FieldRules_Double); ok { + return x.Double + } + return nil +} + +func (x *FieldRules) GetInt32() *Int32Rules { + if x, ok := x.GetType().(*FieldRules_Int32); ok { + return x.Int32 + } + return nil +} + +func (x *FieldRules) GetInt64() *Int64Rules { + if x, ok := x.GetType().(*FieldRules_Int64); ok { + return x.Int64 + } + return nil +} + +func (x *FieldRules) GetUint32() *UInt32Rules { + if x, ok := x.GetType().(*FieldRules_Uint32); ok { + return x.Uint32 + } + return nil +} + +func (x *FieldRules) GetUint64() *UInt64Rules { + if x, ok := x.GetType().(*FieldRules_Uint64); ok { + return x.Uint64 + } + return nil +} + +func (x *FieldRules) GetSint32() *SInt32Rules { + if x, ok := x.GetType().(*FieldRules_Sint32); ok { + return x.Sint32 + } + return nil +} + +func (x *FieldRules) GetSint64() *SInt64Rules { + if x, ok := x.GetType().(*FieldRules_Sint64); ok { + return x.Sint64 + } + return nil +} + +func (x *FieldRules) GetFixed32() *Fixed32Rules { + if x, ok := x.GetType().(*FieldRules_Fixed32); ok { + return x.Fixed32 + } + return nil +} + +func (x *FieldRules) GetFixed64() *Fixed64Rules { + if x, ok := x.GetType().(*FieldRules_Fixed64); ok { + return x.Fixed64 + } + return nil +} + +func (x *FieldRules) GetSfixed32() *SFixed32Rules { + if x, ok := x.GetType().(*FieldRules_Sfixed32); ok { + return x.Sfixed32 + } + return nil +} + +func (x *FieldRules) GetSfixed64() *SFixed64Rules { + if x, ok := x.GetType().(*FieldRules_Sfixed64); ok { + return x.Sfixed64 + } + return nil +} + +func (x *FieldRules) GetBool() *BoolRules { + if x, ok := x.GetType().(*FieldRules_Bool); ok { + return x.Bool + } + return nil +} + +func (x *FieldRules) GetString_() *StringRules { + if x, ok := x.GetType().(*FieldRules_String_); ok { + return x.String_ + } + return nil +} + +func (x *FieldRules) GetBytes() *BytesRules { + if x, ok := x.GetType().(*FieldRules_Bytes); ok { + return x.Bytes + } + return nil +} + +func (x *FieldRules) GetEnum() *EnumRules { + if x, ok := x.GetType().(*FieldRules_Enum); ok { + return x.Enum + } + return nil +} + +func (x *FieldRules) GetRepeated() *RepeatedRules { + if x, ok := x.GetType().(*FieldRules_Repeated); ok { + return x.Repeated + } + return nil +} + +func (x *FieldRules) GetMap() *MapRules { + if x, ok := x.GetType().(*FieldRules_Map); ok { + return x.Map + } + return nil +} + +func (x *FieldRules) GetAny() *AnyRules { + if x, ok := x.GetType().(*FieldRules_Any); ok { + return x.Any + } + return nil +} + +func (x *FieldRules) GetDuration() *DurationRules { + if x, ok := x.GetType().(*FieldRules_Duration); ok { + return x.Duration + } + return nil +} + +func (x *FieldRules) GetTimestamp() *TimestampRules { + if x, ok := x.GetType().(*FieldRules_Timestamp); ok { + return x.Timestamp + } + return nil +} + +type isFieldRules_Type interface { + isFieldRules_Type() +} + +type FieldRules_Float struct { + // Scalar Field Types + Float *FloatRules `protobuf:"bytes,1,opt,name=float,oneof"` +} + +type FieldRules_Double struct { + Double *DoubleRules `protobuf:"bytes,2,opt,name=double,oneof"` +} + +type FieldRules_Int32 struct { + Int32 *Int32Rules `protobuf:"bytes,3,opt,name=int32,oneof"` +} + +type FieldRules_Int64 struct { + Int64 *Int64Rules `protobuf:"bytes,4,opt,name=int64,oneof"` +} + +type FieldRules_Uint32 struct { + Uint32 *UInt32Rules `protobuf:"bytes,5,opt,name=uint32,oneof"` +} + +type FieldRules_Uint64 struct { + Uint64 *UInt64Rules `protobuf:"bytes,6,opt,name=uint64,oneof"` +} + +type FieldRules_Sint32 struct { + Sint32 *SInt32Rules `protobuf:"bytes,7,opt,name=sint32,oneof"` +} + +type FieldRules_Sint64 struct { + Sint64 *SInt64Rules `protobuf:"bytes,8,opt,name=sint64,oneof"` +} + +type FieldRules_Fixed32 struct { + Fixed32 *Fixed32Rules `protobuf:"bytes,9,opt,name=fixed32,oneof"` +} + +type FieldRules_Fixed64 struct { + Fixed64 *Fixed64Rules `protobuf:"bytes,10,opt,name=fixed64,oneof"` +} + +type FieldRules_Sfixed32 struct { + Sfixed32 *SFixed32Rules `protobuf:"bytes,11,opt,name=sfixed32,oneof"` +} + +type FieldRules_Sfixed64 struct { + Sfixed64 *SFixed64Rules `protobuf:"bytes,12,opt,name=sfixed64,oneof"` +} + +type FieldRules_Bool struct { + Bool *BoolRules `protobuf:"bytes,13,opt,name=bool,oneof"` +} + +type FieldRules_String_ struct { + String_ *StringRules `protobuf:"bytes,14,opt,name=string,oneof"` +} + +type FieldRules_Bytes struct { + Bytes *BytesRules `protobuf:"bytes,15,opt,name=bytes,oneof"` +} + +type FieldRules_Enum struct { + // Complex Field Types + Enum *EnumRules `protobuf:"bytes,16,opt,name=enum,oneof"` +} + +type FieldRules_Repeated struct { + Repeated *RepeatedRules `protobuf:"bytes,18,opt,name=repeated,oneof"` +} + +type FieldRules_Map struct { + Map *MapRules `protobuf:"bytes,19,opt,name=map,oneof"` +} + +type FieldRules_Any struct { + // Well-Known Field Types + Any *AnyRules `protobuf:"bytes,20,opt,name=any,oneof"` +} + +type FieldRules_Duration struct { + Duration *DurationRules `protobuf:"bytes,21,opt,name=duration,oneof"` +} + +type FieldRules_Timestamp struct { + Timestamp *TimestampRules `protobuf:"bytes,22,opt,name=timestamp,oneof"` +} + +func (*FieldRules_Float) isFieldRules_Type() {} + +func (*FieldRules_Double) isFieldRules_Type() {} + +func (*FieldRules_Int32) isFieldRules_Type() {} + +func (*FieldRules_Int64) isFieldRules_Type() {} + +func (*FieldRules_Uint32) isFieldRules_Type() {} + +func (*FieldRules_Uint64) isFieldRules_Type() {} + +func (*FieldRules_Sint32) isFieldRules_Type() {} + +func (*FieldRules_Sint64) isFieldRules_Type() {} + +func (*FieldRules_Fixed32) isFieldRules_Type() {} + +func (*FieldRules_Fixed64) isFieldRules_Type() {} + +func (*FieldRules_Sfixed32) isFieldRules_Type() {} + +func (*FieldRules_Sfixed64) isFieldRules_Type() {} + +func (*FieldRules_Bool) isFieldRules_Type() {} + +func (*FieldRules_String_) isFieldRules_Type() {} + +func (*FieldRules_Bytes) isFieldRules_Type() {} + +func (*FieldRules_Enum) isFieldRules_Type() {} + +func (*FieldRules_Repeated) isFieldRules_Type() {} + +func (*FieldRules_Map) isFieldRules_Type() {} + +func (*FieldRules_Any) isFieldRules_Type() {} + +func (*FieldRules_Duration) isFieldRules_Type() {} + +func (*FieldRules_Timestamp) isFieldRules_Type() {} + +// FloatRules describes the constraints applied to `float` values +type FloatRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *float32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *float32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *float32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *float32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *float32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []float32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []float32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *FloatRules) Reset() { + *x = FloatRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FloatRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FloatRules) ProtoMessage() {} + +func (x *FloatRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FloatRules.ProtoReflect.Descriptor instead. +func (*FloatRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{1} +} + +func (x *FloatRules) GetConst() float32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *FloatRules) GetLt() float32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *FloatRules) GetLte() float32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *FloatRules) GetGt() float32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *FloatRules) GetGte() float32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *FloatRules) GetIn() []float32 { + if x != nil { + return x.In + } + return nil +} + +func (x *FloatRules) GetNotIn() []float32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *FloatRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// DoubleRules describes the constraints applied to `double` values +type DoubleRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *float64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *float64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *float64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *float64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *float64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []float64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []float64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *DoubleRules) Reset() { + *x = DoubleRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DoubleRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DoubleRules) ProtoMessage() {} + +func (x *DoubleRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DoubleRules.ProtoReflect.Descriptor instead. +func (*DoubleRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{2} +} + +func (x *DoubleRules) GetConst() float64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *DoubleRules) GetLt() float64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *DoubleRules) GetLte() float64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *DoubleRules) GetGt() float64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *DoubleRules) GetGte() float64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *DoubleRules) GetIn() []float64 { + if x != nil { + return x.In + } + return nil +} + +func (x *DoubleRules) GetNotIn() []float64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *DoubleRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// Int32Rules describes the constraints applied to `int32` values +type Int32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int32 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int32 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int32 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int32 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *Int32Rules) Reset() { + *x = Int32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Int32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Int32Rules) ProtoMessage() {} + +func (x *Int32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Int32Rules.ProtoReflect.Descriptor instead. +func (*Int32Rules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{3} +} + +func (x *Int32Rules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *Int32Rules) GetLt() int32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *Int32Rules) GetLte() int32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *Int32Rules) GetGt() int32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *Int32Rules) GetGte() int32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *Int32Rules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *Int32Rules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Int32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// Int64Rules describes the constraints applied to `int64` values +type Int64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int64 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int64 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int64 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int64 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *Int64Rules) Reset() { + *x = Int64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Int64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Int64Rules) ProtoMessage() {} + +func (x *Int64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Int64Rules.ProtoReflect.Descriptor instead. +func (*Int64Rules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{4} +} + +func (x *Int64Rules) GetConst() int64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *Int64Rules) GetLt() int64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *Int64Rules) GetLte() int64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *Int64Rules) GetGt() int64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *Int64Rules) GetGte() int64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *Int64Rules) GetIn() []int64 { + if x != nil { + return x.In + } + return nil +} + +func (x *Int64Rules) GetNotIn() []int64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Int64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// UInt32Rules describes the constraints applied to `uint32` values +type UInt32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *uint32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint32 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint32 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint32 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint32 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *UInt32Rules) Reset() { + *x = UInt32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UInt32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UInt32Rules) ProtoMessage() {} + +func (x *UInt32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UInt32Rules.ProtoReflect.Descriptor instead. +func (*UInt32Rules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{5} +} + +func (x *UInt32Rules) GetConst() uint32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *UInt32Rules) GetLt() uint32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *UInt32Rules) GetLte() uint32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *UInt32Rules) GetGt() uint32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *UInt32Rules) GetGte() uint32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *UInt32Rules) GetIn() []uint32 { + if x != nil { + return x.In + } + return nil +} + +func (x *UInt32Rules) GetNotIn() []uint32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *UInt32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// UInt64Rules describes the constraints applied to `uint64` values +type UInt64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *uint64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint64 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint64 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint64 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint64 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *UInt64Rules) Reset() { + *x = UInt64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UInt64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UInt64Rules) ProtoMessage() {} + +func (x *UInt64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UInt64Rules.ProtoReflect.Descriptor instead. +func (*UInt64Rules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{6} +} + +func (x *UInt64Rules) GetConst() uint64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *UInt64Rules) GetLt() uint64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *UInt64Rules) GetLte() uint64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *UInt64Rules) GetGt() uint64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *UInt64Rules) GetGte() uint64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *UInt64Rules) GetIn() []uint64 { + if x != nil { + return x.In + } + return nil +} + +func (x *UInt64Rules) GetNotIn() []uint64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *UInt64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// SInt32Rules describes the constraints applied to `sint32` values +type SInt32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"zigzag32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int32 `protobuf:"zigzag32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int32 `protobuf:"zigzag32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int32 `protobuf:"zigzag32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int32 `protobuf:"zigzag32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"zigzag32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"zigzag32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *SInt32Rules) Reset() { + *x = SInt32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SInt32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SInt32Rules) ProtoMessage() {} + +func (x *SInt32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SInt32Rules.ProtoReflect.Descriptor instead. +func (*SInt32Rules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{7} +} + +func (x *SInt32Rules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *SInt32Rules) GetLt() int32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *SInt32Rules) GetLte() int32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *SInt32Rules) GetGt() int32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *SInt32Rules) GetGte() int32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *SInt32Rules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *SInt32Rules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SInt32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// SInt64Rules describes the constraints applied to `sint64` values +type SInt64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int64 `protobuf:"zigzag64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int64 `protobuf:"zigzag64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int64 `protobuf:"zigzag64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int64 `protobuf:"zigzag64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int64 `protobuf:"zigzag64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int64 `protobuf:"zigzag64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int64 `protobuf:"zigzag64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *SInt64Rules) Reset() { + *x = SInt64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SInt64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SInt64Rules) ProtoMessage() {} + +func (x *SInt64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SInt64Rules.ProtoReflect.Descriptor instead. +func (*SInt64Rules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{8} +} + +func (x *SInt64Rules) GetConst() int64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *SInt64Rules) GetLt() int64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *SInt64Rules) GetLte() int64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *SInt64Rules) GetGt() int64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *SInt64Rules) GetGte() int64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *SInt64Rules) GetIn() []int64 { + if x != nil { + return x.In + } + return nil +} + +func (x *SInt64Rules) GetNotIn() []int64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SInt64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// Fixed32Rules describes the constraints applied to `fixed32` values +type Fixed32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *uint32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *Fixed32Rules) Reset() { + *x = Fixed32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Fixed32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Fixed32Rules) ProtoMessage() {} + +func (x *Fixed32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Fixed32Rules.ProtoReflect.Descriptor instead. +func (*Fixed32Rules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{9} +} + +func (x *Fixed32Rules) GetConst() uint32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *Fixed32Rules) GetLt() uint32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *Fixed32Rules) GetLte() uint32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *Fixed32Rules) GetGt() uint32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *Fixed32Rules) GetGte() uint32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *Fixed32Rules) GetIn() []uint32 { + if x != nil { + return x.In + } + return nil +} + +func (x *Fixed32Rules) GetNotIn() []uint32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Fixed32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// Fixed64Rules describes the constraints applied to `fixed64` values +type Fixed64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *uint64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *Fixed64Rules) Reset() { + *x = Fixed64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Fixed64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Fixed64Rules) ProtoMessage() {} + +func (x *Fixed64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Fixed64Rules.ProtoReflect.Descriptor instead. +func (*Fixed64Rules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{10} +} + +func (x *Fixed64Rules) GetConst() uint64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *Fixed64Rules) GetLt() uint64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *Fixed64Rules) GetLte() uint64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *Fixed64Rules) GetGt() uint64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *Fixed64Rules) GetGte() uint64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *Fixed64Rules) GetIn() []uint64 { + if x != nil { + return x.In + } + return nil +} + +func (x *Fixed64Rules) GetNotIn() []uint64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Fixed64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// SFixed32Rules describes the constraints applied to `sfixed32` values +type SFixed32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *SFixed32Rules) Reset() { + *x = SFixed32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SFixed32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SFixed32Rules) ProtoMessage() {} + +func (x *SFixed32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SFixed32Rules.ProtoReflect.Descriptor instead. +func (*SFixed32Rules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{11} +} + +func (x *SFixed32Rules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *SFixed32Rules) GetLt() int32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *SFixed32Rules) GetLte() int32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *SFixed32Rules) GetGt() int32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *SFixed32Rules) GetGte() int32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *SFixed32Rules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *SFixed32Rules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SFixed32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// SFixed64Rules describes the constraints applied to `sfixed64` values +type SFixed64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *SFixed64Rules) Reset() { + *x = SFixed64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SFixed64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SFixed64Rules) ProtoMessage() {} + +func (x *SFixed64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SFixed64Rules.ProtoReflect.Descriptor instead. +func (*SFixed64Rules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{12} +} + +func (x *SFixed64Rules) GetConst() int64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *SFixed64Rules) GetLt() int64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *SFixed64Rules) GetLte() int64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *SFixed64Rules) GetGt() int64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *SFixed64Rules) GetGte() int64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *SFixed64Rules) GetIn() []int64 { + if x != nil { + return x.In + } + return nil +} + +func (x *SFixed64Rules) GetNotIn() []int64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SFixed64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// BoolRules describes the constraints applied to `bool` values +type BoolRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *bool `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` +} + +func (x *BoolRules) Reset() { + *x = BoolRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BoolRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BoolRules) ProtoMessage() {} + +func (x *BoolRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BoolRules.ProtoReflect.Descriptor instead. +func (*BoolRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{13} +} + +func (x *BoolRules) GetConst() bool { + if x != nil && x.Const != nil { + return *x.Const + } + return false +} + +// StringRules describe the constraints applied to `string` values +type StringRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *string `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"` + // Len specifies that this field must be the specified number of + // characters (Unicode code points). Note that the number of + // characters may differ from the number of bytes in the string. + Len *uint64 `protobuf:"varint,19,opt,name=len" json:"len,omitempty"` + // MinLen specifies that this field must be the specified number of + // characters (Unicode code points) at a minimum. Note that the number of + // characters may differ from the number of bytes in the string. + MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"` + // MaxLen specifies that this field must be the specified number of + // characters (Unicode code points) at a maximum. Note that the number of + // characters may differ from the number of bytes in the string. + MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"` + // LenBytes specifies that this field must be the specified number of bytes + // at a minimum + LenBytes *uint64 `protobuf:"varint,20,opt,name=len_bytes,json=lenBytes" json:"len_bytes,omitempty"` + // MinBytes specifies that this field must be the specified number of bytes + // at a minimum + MinBytes *uint64 `protobuf:"varint,4,opt,name=min_bytes,json=minBytes" json:"min_bytes,omitempty"` + // MaxBytes specifies that this field must be the specified number of bytes + // at a maximum + MaxBytes *uint64 `protobuf:"varint,5,opt,name=max_bytes,json=maxBytes" json:"max_bytes,omitempty"` + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + Pattern *string `protobuf:"bytes,6,opt,name=pattern" json:"pattern,omitempty"` + // Prefix specifies that this field must have the specified substring at + // the beginning of the string. + Prefix *string `protobuf:"bytes,7,opt,name=prefix" json:"prefix,omitempty"` + // Suffix specifies that this field must have the specified substring at + // the end of the string. + Suffix *string `protobuf:"bytes,8,opt,name=suffix" json:"suffix,omitempty"` + // Contains specifies that this field must have the specified substring + // anywhere in the string. + Contains *string `protobuf:"bytes,9,opt,name=contains" json:"contains,omitempty"` + // NotContains specifies that this field cannot have the specified substring + // anywhere in the string. + NotContains *string `protobuf:"bytes,23,opt,name=not_contains,json=notContains" json:"not_contains,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []string `protobuf:"bytes,10,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []string `protobuf:"bytes,11,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // WellKnown rules provide advanced constraints against common string + // patterns + // + // Types that are assignable to WellKnown: + // *StringRules_Email + // *StringRules_Hostname + // *StringRules_Ip + // *StringRules_Ipv4 + // *StringRules_Ipv6 + // *StringRules_Uri + // *StringRules_UriRef + // *StringRules_Address + // *StringRules_Uuid + // *StringRules_WellKnownRegex + // *StringRules_Alphabets + // *StringRules_Alphanums + // *StringRules_Lowercase + // *StringRules_Tsecstr + WellKnown isStringRules_WellKnown `protobuf_oneof:"well_known"` + // This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable + // strict header validation. + // By default, this is true, and HTTP header validations are RFC-compliant. + // Setting to false will enable a looser validations that only disallows + // \r\n\0 characters, which can be used to bypass header matching rules. + Strict *bool `protobuf:"varint,25,opt,name=strict,def=1" json:"strict,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,26,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +// Default values for StringRules fields. +const ( + Default_StringRules_Strict = bool(true) +) + +func (x *StringRules) Reset() { + *x = StringRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StringRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StringRules) ProtoMessage() {} + +func (x *StringRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StringRules.ProtoReflect.Descriptor instead. +func (*StringRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{14} +} + +func (x *StringRules) GetConst() string { + if x != nil && x.Const != nil { + return *x.Const + } + return "" +} + +func (x *StringRules) GetLen() uint64 { + if x != nil && x.Len != nil { + return *x.Len + } + return 0 +} + +func (x *StringRules) GetMinLen() uint64 { + if x != nil && x.MinLen != nil { + return *x.MinLen + } + return 0 +} + +func (x *StringRules) GetMaxLen() uint64 { + if x != nil && x.MaxLen != nil { + return *x.MaxLen + } + return 0 +} + +func (x *StringRules) GetLenBytes() uint64 { + if x != nil && x.LenBytes != nil { + return *x.LenBytes + } + return 0 +} + +func (x *StringRules) GetMinBytes() uint64 { + if x != nil && x.MinBytes != nil { + return *x.MinBytes + } + return 0 +} + +func (x *StringRules) GetMaxBytes() uint64 { + if x != nil && x.MaxBytes != nil { + return *x.MaxBytes + } + return 0 +} + +func (x *StringRules) GetPattern() string { + if x != nil && x.Pattern != nil { + return *x.Pattern + } + return "" +} + +func (x *StringRules) GetPrefix() string { + if x != nil && x.Prefix != nil { + return *x.Prefix + } + return "" +} + +func (x *StringRules) GetSuffix() string { + if x != nil && x.Suffix != nil { + return *x.Suffix + } + return "" +} + +func (x *StringRules) GetContains() string { + if x != nil && x.Contains != nil { + return *x.Contains + } + return "" +} + +func (x *StringRules) GetNotContains() string { + if x != nil && x.NotContains != nil { + return *x.NotContains + } + return "" +} + +func (x *StringRules) GetIn() []string { + if x != nil { + return x.In + } + return nil +} + +func (x *StringRules) GetNotIn() []string { + if x != nil { + return x.NotIn + } + return nil +} + +func (m *StringRules) GetWellKnown() isStringRules_WellKnown { + if m != nil { + return m.WellKnown + } + return nil +} + +func (x *StringRules) GetEmail() bool { + if x, ok := x.GetWellKnown().(*StringRules_Email); ok { + return x.Email + } + return false +} + +func (x *StringRules) GetHostname() bool { + if x, ok := x.GetWellKnown().(*StringRules_Hostname); ok { + return x.Hostname + } + return false +} + +func (x *StringRules) GetIp() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ip); ok { + return x.Ip + } + return false +} + +func (x *StringRules) GetIpv4() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ipv4); ok { + return x.Ipv4 + } + return false +} + +func (x *StringRules) GetIpv6() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ipv6); ok { + return x.Ipv6 + } + return false +} + +func (x *StringRules) GetUri() bool { + if x, ok := x.GetWellKnown().(*StringRules_Uri); ok { + return x.Uri + } + return false +} + +func (x *StringRules) GetUriRef() bool { + if x, ok := x.GetWellKnown().(*StringRules_UriRef); ok { + return x.UriRef + } + return false +} + +func (x *StringRules) GetAddress() bool { + if x, ok := x.GetWellKnown().(*StringRules_Address); ok { + return x.Address + } + return false +} + +func (x *StringRules) GetUuid() bool { + if x, ok := x.GetWellKnown().(*StringRules_Uuid); ok { + return x.Uuid + } + return false +} + +func (x *StringRules) GetWellKnownRegex() KnownRegex { + if x, ok := x.GetWellKnown().(*StringRules_WellKnownRegex); ok { + return x.WellKnownRegex + } + return KnownRegex_UNKNOWN +} + +func (x *StringRules) GetAlphabets() bool { + if x, ok := x.GetWellKnown().(*StringRules_Alphabets); ok { + return x.Alphabets + } + return false +} + +func (x *StringRules) GetAlphanums() bool { + if x, ok := x.GetWellKnown().(*StringRules_Alphanums); ok { + return x.Alphanums + } + return false +} + +func (x *StringRules) GetLowercase() bool { + if x, ok := x.GetWellKnown().(*StringRules_Lowercase); ok { + return x.Lowercase + } + return false +} + +func (x *StringRules) GetTsecstr() bool { + if x, ok := x.GetWellKnown().(*StringRules_Tsecstr); ok { + return x.Tsecstr + } + return false +} + +func (x *StringRules) GetStrict() bool { + if x != nil && x.Strict != nil { + return *x.Strict + } + return Default_StringRules_Strict +} + +func (x *StringRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +type isStringRules_WellKnown interface { + isStringRules_WellKnown() +} + +type StringRules_Email struct { + // Email specifies that the field must be a valid email address as + // defined by RFC 5322 + Email bool `protobuf:"varint,12,opt,name=email,oneof"` +} + +type StringRules_Hostname struct { + // Hostname specifies that the field must be a valid hostname as + // defined by RFC 1034. This constraint does not support + // internationalized domain names (IDNs). + Hostname bool `protobuf:"varint,13,opt,name=hostname,oneof"` +} + +type StringRules_Ip struct { + // Ip specifies that the field must be a valid IP (v4 or v6) address. + // Valid IPv6 addresses should not include surrounding square brackets. + Ip bool `protobuf:"varint,14,opt,name=ip,oneof"` +} + +type StringRules_Ipv4 struct { + // Ipv4 specifies that the field must be a valid IPv4 address. + Ipv4 bool `protobuf:"varint,15,opt,name=ipv4,oneof"` +} + +type StringRules_Ipv6 struct { + // Ipv6 specifies that the field must be a valid IPv6 address. Valid + // IPv6 addresses should not include surrounding square brackets. + Ipv6 bool `protobuf:"varint,16,opt,name=ipv6,oneof"` +} + +type StringRules_Uri struct { + // Uri specifies that the field must be a valid, absolute URI as defined + // by RFC 3986 + Uri bool `protobuf:"varint,17,opt,name=uri,oneof"` +} + +type StringRules_UriRef struct { + // UriRef specifies that the field must be a valid URI as defined by RFC + // 3986 and may be relative or absolute. + UriRef bool `protobuf:"varint,18,opt,name=uri_ref,json=uriRef,oneof"` +} + +type StringRules_Address struct { + // Address specifies that the field must be either a valid hostname as + // defined by RFC 1034 (which does not support internationalized domain + // names or IDNs), or it can be a valid IP (v4 or v6). + Address bool `protobuf:"varint,21,opt,name=address,oneof"` +} + +type StringRules_Uuid struct { + // Uuid specifies that the field must be a valid UUID as defined by + // RFC 4122 + Uuid bool `protobuf:"varint,22,opt,name=uuid,oneof"` +} + +type StringRules_WellKnownRegex struct { + // WellKnownRegex specifies a common well known pattern defined as a regex. + WellKnownRegex KnownRegex `protobuf:"varint,24,opt,name=well_known_regex,json=wellKnownRegex,enum=trpc.KnownRegex,oneof"` +} + +type StringRules_Alphabets struct { + // Alphabets specifies that the field can only contain alphabets. e.g. aA + Alphabets bool `protobuf:"varint,27,opt,name=alphabets,oneof"` +} + +type StringRules_Alphanums struct { + // Alphanums specifies that the field should contain both alphabet(s) and number(s). e.g. aA1 + Alphanums bool `protobuf:"varint,28,opt,name=alphanums,oneof"` +} + +type StringRules_Lowercase struct { + // Lowercase specifies that the field can only contain lowercase alphabet(s). e.g. aa + Lowercase bool `protobuf:"varint,29,opt,name=lowercase,oneof"` +} + +type StringRules_Tsecstr struct { + // tsecstr specifies that the field can only contain secured strings + Tsecstr bool `protobuf:"varint,30,opt,name=tsecstr,oneof"` +} + +func (*StringRules_Email) isStringRules_WellKnown() {} + +func (*StringRules_Hostname) isStringRules_WellKnown() {} + +func (*StringRules_Ip) isStringRules_WellKnown() {} + +func (*StringRules_Ipv4) isStringRules_WellKnown() {} + +func (*StringRules_Ipv6) isStringRules_WellKnown() {} + +func (*StringRules_Uri) isStringRules_WellKnown() {} + +func (*StringRules_UriRef) isStringRules_WellKnown() {} + +func (*StringRules_Address) isStringRules_WellKnown() {} + +func (*StringRules_Uuid) isStringRules_WellKnown() {} + +func (*StringRules_WellKnownRegex) isStringRules_WellKnown() {} + +func (*StringRules_Alphabets) isStringRules_WellKnown() {} + +func (*StringRules_Alphanums) isStringRules_WellKnown() {} + +func (*StringRules_Lowercase) isStringRules_WellKnown() {} + +func (*StringRules_Tsecstr) isStringRules_WellKnown() {} + +// BytesRules describe the constraints applied to `bytes` values +type BytesRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const []byte `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"` + // Len specifies that this field must be the specified number of bytes + Len *uint64 `protobuf:"varint,13,opt,name=len" json:"len,omitempty"` + // MinLen specifies that this field must be the specified number of bytes + // at a minimum + MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"` + // MaxLen specifies that this field must be the specified number of bytes + // at a maximum + MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"` + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + Pattern *string `protobuf:"bytes,4,opt,name=pattern" json:"pattern,omitempty"` + // Prefix specifies that this field must have the specified bytes at the + // beginning of the string. + Prefix []byte `protobuf:"bytes,5,opt,name=prefix" json:"prefix,omitempty"` + // Suffix specifies that this field must have the specified bytes at the + // end of the string. + Suffix []byte `protobuf:"bytes,6,opt,name=suffix" json:"suffix,omitempty"` + // Contains specifies that this field must have the specified bytes + // anywhere in the string. + Contains []byte `protobuf:"bytes,7,opt,name=contains" json:"contains,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In [][]byte `protobuf:"bytes,8,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn [][]byte `protobuf:"bytes,9,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // WellKnown rules provide advanced constraints against common byte + // patterns + // + // Types that are assignable to WellKnown: + // *BytesRules_Ip + // *BytesRules_Ipv4 + // *BytesRules_Ipv6 + WellKnown isBytesRules_WellKnown `protobuf_oneof:"well_known"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,14,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *BytesRules) Reset() { + *x = BytesRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BytesRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BytesRules) ProtoMessage() {} + +func (x *BytesRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BytesRules.ProtoReflect.Descriptor instead. +func (*BytesRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{15} +} + +func (x *BytesRules) GetConst() []byte { + if x != nil { + return x.Const + } + return nil +} + +func (x *BytesRules) GetLen() uint64 { + if x != nil && x.Len != nil { + return *x.Len + } + return 0 +} + +func (x *BytesRules) GetMinLen() uint64 { + if x != nil && x.MinLen != nil { + return *x.MinLen + } + return 0 +} + +func (x *BytesRules) GetMaxLen() uint64 { + if x != nil && x.MaxLen != nil { + return *x.MaxLen + } + return 0 +} + +func (x *BytesRules) GetPattern() string { + if x != nil && x.Pattern != nil { + return *x.Pattern + } + return "" +} + +func (x *BytesRules) GetPrefix() []byte { + if x != nil { + return x.Prefix + } + return nil +} + +func (x *BytesRules) GetSuffix() []byte { + if x != nil { + return x.Suffix + } + return nil +} + +func (x *BytesRules) GetContains() []byte { + if x != nil { + return x.Contains + } + return nil +} + +func (x *BytesRules) GetIn() [][]byte { + if x != nil { + return x.In + } + return nil +} + +func (x *BytesRules) GetNotIn() [][]byte { + if x != nil { + return x.NotIn + } + return nil +} + +func (m *BytesRules) GetWellKnown() isBytesRules_WellKnown { + if m != nil { + return m.WellKnown + } + return nil +} + +func (x *BytesRules) GetIp() bool { + if x, ok := x.GetWellKnown().(*BytesRules_Ip); ok { + return x.Ip + } + return false +} + +func (x *BytesRules) GetIpv4() bool { + if x, ok := x.GetWellKnown().(*BytesRules_Ipv4); ok { + return x.Ipv4 + } + return false +} + +func (x *BytesRules) GetIpv6() bool { + if x, ok := x.GetWellKnown().(*BytesRules_Ipv6); ok { + return x.Ipv6 + } + return false +} + +func (x *BytesRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +type isBytesRules_WellKnown interface { + isBytesRules_WellKnown() +} + +type BytesRules_Ip struct { + // Ip specifies that the field must be a valid IP (v4 or v6) address in + // byte format + Ip bool `protobuf:"varint,10,opt,name=ip,oneof"` +} + +type BytesRules_Ipv4 struct { + // Ipv4 specifies that the field must be a valid IPv4 address in byte + // format + Ipv4 bool `protobuf:"varint,11,opt,name=ipv4,oneof"` +} + +type BytesRules_Ipv6 struct { + // Ipv6 specifies that the field must be a valid IPv6 address in byte + // format + Ipv6 bool `protobuf:"varint,12,opt,name=ipv6,oneof"` +} + +func (*BytesRules_Ip) isBytesRules_WellKnown() {} + +func (*BytesRules_Ipv4) isBytesRules_WellKnown() {} + +func (*BytesRules_Ipv6) isBytesRules_WellKnown() {} + +// EnumRules describe the constraints applied to enum values +type EnumRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // DefinedOnly specifies that this field must be only one of the defined + // values for this enum, failing on any undefined value. + DefinedOnly *bool `protobuf:"varint,2,opt,name=defined_only,json=definedOnly" json:"defined_only,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"varint,3,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"varint,4,rep,name=not_in,json=notIn" json:"not_in,omitempty"` +} + +func (x *EnumRules) Reset() { + *x = EnumRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EnumRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumRules) ProtoMessage() {} + +func (x *EnumRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumRules.ProtoReflect.Descriptor instead. +func (*EnumRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{16} +} + +func (x *EnumRules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *EnumRules) GetDefinedOnly() bool { + if x != nil && x.DefinedOnly != nil { + return *x.DefinedOnly + } + return false +} + +func (x *EnumRules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *EnumRules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +// MessageRules describe the constraints applied to embedded message values. +// For message-type fields, validation is performed recursively. +type MessageRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Skip specifies that the validation rules of this field should not be + // evaluated + Skip *bool `protobuf:"varint,1,opt,name=skip" json:"skip,omitempty"` + // Required specifies that this field must be set + Required *bool `protobuf:"varint,2,opt,name=required" json:"required,omitempty"` +} + +func (x *MessageRules) Reset() { + *x = MessageRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageRules) ProtoMessage() {} + +func (x *MessageRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageRules.ProtoReflect.Descriptor instead. +func (*MessageRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{17} +} + +func (x *MessageRules) GetSkip() bool { + if x != nil && x.Skip != nil { + return *x.Skip + } + return false +} + +func (x *MessageRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +// RepeatedRules describe the constraints applied to `repeated` values +type RepeatedRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // MinItems specifies that this field must have the specified number of + // items at a minimum + MinItems *uint64 `protobuf:"varint,1,opt,name=min_items,json=minItems" json:"min_items,omitempty"` + // MaxItems specifies that this field must have the specified number of + // items at a maximum + MaxItems *uint64 `protobuf:"varint,2,opt,name=max_items,json=maxItems" json:"max_items,omitempty"` + // Unique specifies that all elements in this field must be unique. This + // contraint is only applicable to scalar and enum types (messages are not + // supported). + Unique *bool `protobuf:"varint,3,opt,name=unique" json:"unique,omitempty"` + // Items specifies the contraints to be applied to each item in the field. + // Repeated message fields will still execute validation against each item + // unless skip is specified here. + Items *FieldRules `protobuf:"bytes,4,opt,name=items" json:"items,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,5,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *RepeatedRules) Reset() { + *x = RepeatedRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RepeatedRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RepeatedRules) ProtoMessage() {} + +func (x *RepeatedRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RepeatedRules.ProtoReflect.Descriptor instead. +func (*RepeatedRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{18} +} + +func (x *RepeatedRules) GetMinItems() uint64 { + if x != nil && x.MinItems != nil { + return *x.MinItems + } + return 0 +} + +func (x *RepeatedRules) GetMaxItems() uint64 { + if x != nil && x.MaxItems != nil { + return *x.MaxItems + } + return 0 +} + +func (x *RepeatedRules) GetUnique() bool { + if x != nil && x.Unique != nil { + return *x.Unique + } + return false +} + +func (x *RepeatedRules) GetItems() *FieldRules { + if x != nil { + return x.Items + } + return nil +} + +func (x *RepeatedRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// MapRules describe the constraints applied to `map` values +type MapRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // MinPairs specifies that this field must have the specified number of + // KVs at a minimum + MinPairs *uint64 `protobuf:"varint,1,opt,name=min_pairs,json=minPairs" json:"min_pairs,omitempty"` + // MaxPairs specifies that this field must have the specified number of + // KVs at a maximum + MaxPairs *uint64 `protobuf:"varint,2,opt,name=max_pairs,json=maxPairs" json:"max_pairs,omitempty"` + // NoSparse specifies values in this field cannot be unset. This only + // applies to map's with message value types. + NoSparse *bool `protobuf:"varint,3,opt,name=no_sparse,json=noSparse" json:"no_sparse,omitempty"` + // Keys specifies the constraints to be applied to each key in the field. + Keys *FieldRules `protobuf:"bytes,4,opt,name=keys" json:"keys,omitempty"` + // Values specifies the constraints to be applied to the value of each key + // in the field. Message values will still have their validations evaluated + // unless skip is specified here. + Values *FieldRules `protobuf:"bytes,5,opt,name=values" json:"values,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,6,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *MapRules) Reset() { + *x = MapRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MapRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MapRules) ProtoMessage() {} + +func (x *MapRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MapRules.ProtoReflect.Descriptor instead. +func (*MapRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{19} +} + +func (x *MapRules) GetMinPairs() uint64 { + if x != nil && x.MinPairs != nil { + return *x.MinPairs + } + return 0 +} + +func (x *MapRules) GetMaxPairs() uint64 { + if x != nil && x.MaxPairs != nil { + return *x.MaxPairs + } + return 0 +} + +func (x *MapRules) GetNoSparse() bool { + if x != nil && x.NoSparse != nil { + return *x.NoSparse + } + return false +} + +func (x *MapRules) GetKeys() *FieldRules { + if x != nil { + return x.Keys + } + return nil +} + +func (x *MapRules) GetValues() *FieldRules { + if x != nil { + return x.Values + } + return nil +} + +func (x *MapRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// AnyRules describe constraints applied exclusively to the +// `google.protobuf.Any` well-known type +type AnyRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required specifies that this field must be set + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` + // In specifies that this field's `type_url` must be equal to one of the + // specified values. + In []string `protobuf:"bytes,2,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field's `type_url` must not be equal to any of + // the specified values. + NotIn []string `protobuf:"bytes,3,rep,name=not_in,json=notIn" json:"not_in,omitempty"` +} + +func (x *AnyRules) Reset() { + *x = AnyRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnyRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnyRules) ProtoMessage() {} + +func (x *AnyRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AnyRules.ProtoReflect.Descriptor instead. +func (*AnyRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{20} +} + +func (x *AnyRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +func (x *AnyRules) GetIn() []string { + if x != nil { + return x.In + } + return nil +} + +func (x *AnyRules) GetNotIn() []string { + if x != nil { + return x.NotIn + } + return nil +} + +// DurationRules describe the constraints applied exclusively to the +// `google.protobuf.Duration` well-known type +type DurationRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required specifies that this field must be set + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` + // Const specifies that this field must be exactly the specified value + Const *duration.Duration `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *duration.Duration `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` + // Lt specifies that this field must be less than the specified value, + // inclusive + Lte *duration.Duration `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive + Gt *duration.Duration `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than the specified value, + // inclusive + Gte *duration.Duration `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []*duration.Duration `protobuf:"bytes,7,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []*duration.Duration `protobuf:"bytes,8,rep,name=not_in,json=notIn" json:"not_in,omitempty"` +} + +func (x *DurationRules) Reset() { + *x = DurationRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DurationRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DurationRules) ProtoMessage() {} + +func (x *DurationRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DurationRules.ProtoReflect.Descriptor instead. +func (*DurationRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{21} +} + +func (x *DurationRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +func (x *DurationRules) GetConst() *duration.Duration { + if x != nil { + return x.Const + } + return nil +} + +func (x *DurationRules) GetLt() *duration.Duration { + if x != nil { + return x.Lt + } + return nil +} + +func (x *DurationRules) GetLte() *duration.Duration { + if x != nil { + return x.Lte + } + return nil +} + +func (x *DurationRules) GetGt() *duration.Duration { + if x != nil { + return x.Gt + } + return nil +} + +func (x *DurationRules) GetGte() *duration.Duration { + if x != nil { + return x.Gte + } + return nil +} + +func (x *DurationRules) GetIn() []*duration.Duration { + if x != nil { + return x.In + } + return nil +} + +func (x *DurationRules) GetNotIn() []*duration.Duration { + if x != nil { + return x.NotIn + } + return nil +} + +// TimestampRules describe the constraints applied exclusively to the +// `google.protobuf.Timestamp` well-known type +type TimestampRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required specifies that this field must be set + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` + // Const specifies that this field must be exactly the specified value + Const *timestamp.Timestamp `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *timestamp.Timestamp `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than the specified value, + // inclusive + Lte *timestamp.Timestamp `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive + Gt *timestamp.Timestamp `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than the specified value, + // inclusive + Gte *timestamp.Timestamp `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` + // LtNow specifies that this must be less than the current time. LtNow + // can only be used with the Within rule. + LtNow *bool `protobuf:"varint,7,opt,name=lt_now,json=ltNow" json:"lt_now,omitempty"` + // GtNow specifies that this must be greater than the current time. GtNow + // can only be used with the Within rule. + GtNow *bool `protobuf:"varint,8,opt,name=gt_now,json=gtNow" json:"gt_now,omitempty"` + // Within specifies that this field must be within this duration of the + // current time. This constraint can be used alone or with the LtNow and + // GtNow rules. + Within *duration.Duration `protobuf:"bytes,9,opt,name=within" json:"within,omitempty"` +} + +func (x *TimestampRules) Reset() { + *x = TimestampRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TimestampRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimestampRules) ProtoMessage() {} + +func (x *TimestampRules) ProtoReflect() protoreflect.Message { + mi := &file_trpc_proto_validate_ext_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TimestampRules.ProtoReflect.Descriptor instead. +func (*TimestampRules) Descriptor() ([]byte, []int) { + return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{22} +} + +func (x *TimestampRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +func (x *TimestampRules) GetConst() *timestamp.Timestamp { + if x != nil { + return x.Const + } + return nil +} + +func (x *TimestampRules) GetLt() *timestamp.Timestamp { + if x != nil { + return x.Lt + } + return nil +} + +func (x *TimestampRules) GetLte() *timestamp.Timestamp { + if x != nil { + return x.Lte + } + return nil +} + +func (x *TimestampRules) GetGt() *timestamp.Timestamp { + if x != nil { + return x.Gt + } + return nil +} + +func (x *TimestampRules) GetGte() *timestamp.Timestamp { + if x != nil { + return x.Gte + } + return nil +} + +func (x *TimestampRules) GetLtNow() bool { + if x != nil && x.LtNow != nil { + return *x.LtNow + } + return false +} + +func (x *TimestampRules) GetGtNow() bool { + if x != nil && x.GtNow != nil { + return *x.GtNow + } + return false +} + +func (x *TimestampRules) GetWithin() *duration.Duration { + if x != nil { + return x.Within + } + return nil +} + +var file_trpc_proto_validate_ext_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1071, + Name: "trpc.disabled", + Tag: "varint,1071,opt,name=disabled", + Filename: "trpc/proto/validate.ext.proto", + }, + { + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1072, + Name: "trpc.ignored", + Tag: "varint,1072,opt,name=ignored", + Filename: "trpc/proto/validate.ext.proto", + }, + { + ExtendedType: (*descriptor.OneofOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1071, + Name: "trpc.required", + Tag: "varint,1071,opt,name=required", + Filename: "trpc/proto/validate.ext.proto", + }, + { + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*FieldRules)(nil), + Field: 1071, + Name: "trpc.rules", + Tag: "bytes,1071,opt,name=rules", + Filename: "trpc/proto/validate.ext.proto", + }, +} + +// Extension fields to descriptor.MessageOptions. +var ( + // Disabled nullifies any validation rules for this message, including any + // message fields associated with it that do support validation. + // + // optional bool disabled = 1071; + E_Disabled = &file_trpc_proto_validate_ext_proto_extTypes[0] + // Ignore skips generation of validation methods for this message. + // + // optional bool ignored = 1072; + E_Ignored = &file_trpc_proto_validate_ext_proto_extTypes[1] +) + +// Extension fields to descriptor.OneofOptions. +var ( + // Required ensures that exactly one the field options in a oneof is set; + // validation fails if no fields in the oneof are set. + // + // optional bool required = 1071; + E_Required = &file_trpc_proto_validate_ext_proto_extTypes[2] +) + +// Extension fields to descriptor.FieldOptions. +var ( + // Rules specify the validations to be performed on this field. By default, + // no validation is performed against a field. + // + // optional trpc.FieldRules rules = 1071; + E_Rules = &file_trpc_proto_validate_ext_proto_extTypes[3] +) + +var File_trpc_proto_validate_ext_proto protoreflect.FileDescriptor + +var file_trpc_proto_validate_ext_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x04, 0x74, 0x72, 0x70, 0x63, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf0, 0x07, 0x0a, 0x0a, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, + 0x2b, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x05, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, + 0x05, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x28, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x12, 0x2b, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, + 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, + 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2e, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x33, 0x32, 0x12, 0x2e, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x36, 0x34, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x46, + 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x36, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, + 0x52, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x04, 0x62, 0x6f, + 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, + 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, + 0x6c, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x28, + 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, + 0x31, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x22, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x22, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x31, 0x0a, 0x08, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0a, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, + 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, + 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x02, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, + 0x01, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x01, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, + 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x01, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, + 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, + 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, + 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x67, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x02, + 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, + 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x04, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, + 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x11, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x11, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, + 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x12, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, + 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x12, 0x52, 0x05, + 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x6c, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x6c, 0x74, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x67, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, + 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x07, 0x52, + 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x07, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, + 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, + 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x06, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x06, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x06, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x06, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, + 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x06, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0f, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, + 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x05, + 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, + 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x6c, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, + 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x10, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x10, + 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x10, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, + 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x22, 0xcc, 0x06, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, + 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, + 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, + 0x65, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x6c, 0x65, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6e, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, + 0x49, 0x6e, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x08, 0x68, 0x6f, + 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, + 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, + 0x76, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, + 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x19, 0x0a, 0x07, 0x75, 0x72, + 0x69, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, + 0x72, 0x69, 0x52, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x14, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x10, 0x77, 0x65, 0x6c, 0x6c, 0x5f, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, + 0x67, 0x65, 0x78, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, + 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, + 0x74, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x62, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, + 0x6d, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, + 0x73, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, + 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, 0x72, + 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, + 0x72, 0x12, 0x1c, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, + 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x22, 0xe2, 0x02, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, + 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x75, 0x66, + 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x6e, 0x12, + 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x52, + 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, + 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, + 0x69, 0x70, 0x76, 0x36, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0x6b, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, + 0x49, 0x6e, 0x22, 0x3e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x22, 0xac, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0xd4, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x61, 0x78, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x6d, 0x61, 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x73, + 0x70, 0x61, 0x72, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x53, + 0x70, 0x61, 0x72, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x28, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, 0x0a, 0x08, 0x41, 0x6e, 0x79, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, + 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0xe9, 0x02, 0x0a, 0x0d, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6c, + 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x29, + 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x67, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x67, 0x74, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x69, + 0x6e, 0x12, 0x30, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x22, 0xf3, 0x02, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x2c, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x2a, + 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x67, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x67, 0x74, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x74, 0x5f, 0x6e, + 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x74, 0x4e, 0x6f, 0x77, 0x12, + 0x15, 0x0a, 0x06, 0x67, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x05, 0x67, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0x31, 0x0a, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x2a, 0x46, 0x0a, 0x0a, 0x4b, 0x6e, 0x6f, + 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, + 0x44, 0x45, 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x54, + 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, + 0x02, 0x3a, 0x3c, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, + 0x3a, 0x0a, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb0, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x08, 0x72, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x46, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0xaf, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x42, + 0x4f, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, + 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, + 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, +} + +var ( + file_trpc_proto_validate_ext_proto_rawDescOnce sync.Once + file_trpc_proto_validate_ext_proto_rawDescData = file_trpc_proto_validate_ext_proto_rawDesc +) + +func file_trpc_proto_validate_ext_proto_rawDescGZIP() []byte { + file_trpc_proto_validate_ext_proto_rawDescOnce.Do(func() { + file_trpc_proto_validate_ext_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_proto_validate_ext_proto_rawDescData) + }) + return file_trpc_proto_validate_ext_proto_rawDescData +} + +var file_trpc_proto_validate_ext_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_trpc_proto_validate_ext_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_trpc_proto_validate_ext_proto_goTypes = []interface{}{ + (KnownRegex)(0), // 0: trpc.KnownRegex + (*FieldRules)(nil), // 1: trpc.FieldRules + (*FloatRules)(nil), // 2: trpc.FloatRules + (*DoubleRules)(nil), // 3: trpc.DoubleRules + (*Int32Rules)(nil), // 4: trpc.Int32Rules + (*Int64Rules)(nil), // 5: trpc.Int64Rules + (*UInt32Rules)(nil), // 6: trpc.UInt32Rules + (*UInt64Rules)(nil), // 7: trpc.UInt64Rules + (*SInt32Rules)(nil), // 8: trpc.SInt32Rules + (*SInt64Rules)(nil), // 9: trpc.SInt64Rules + (*Fixed32Rules)(nil), // 10: trpc.Fixed32Rules + (*Fixed64Rules)(nil), // 11: trpc.Fixed64Rules + (*SFixed32Rules)(nil), // 12: trpc.SFixed32Rules + (*SFixed64Rules)(nil), // 13: trpc.SFixed64Rules + (*BoolRules)(nil), // 14: trpc.BoolRules + (*StringRules)(nil), // 15: trpc.StringRules + (*BytesRules)(nil), // 16: trpc.BytesRules + (*EnumRules)(nil), // 17: trpc.EnumRules + (*MessageRules)(nil), // 18: trpc.MessageRules + (*RepeatedRules)(nil), // 19: trpc.RepeatedRules + (*MapRules)(nil), // 20: trpc.MapRules + (*AnyRules)(nil), // 21: trpc.AnyRules + (*DurationRules)(nil), // 22: trpc.DurationRules + (*TimestampRules)(nil), // 23: trpc.TimestampRules + (*duration.Duration)(nil), // 24: google.protobuf.Duration + (*timestamp.Timestamp)(nil), // 25: google.protobuf.Timestamp + (*descriptor.MessageOptions)(nil), // 26: google.protobuf.MessageOptions + (*descriptor.OneofOptions)(nil), // 27: google.protobuf.OneofOptions + (*descriptor.FieldOptions)(nil), // 28: google.protobuf.FieldOptions +} +var file_trpc_proto_validate_ext_proto_depIdxs = []int32{ + 18, // 0: trpc.FieldRules.message:type_name -> trpc.MessageRules + 2, // 1: trpc.FieldRules.float:type_name -> trpc.FloatRules + 3, // 2: trpc.FieldRules.double:type_name -> trpc.DoubleRules + 4, // 3: trpc.FieldRules.int32:type_name -> trpc.Int32Rules + 5, // 4: trpc.FieldRules.int64:type_name -> trpc.Int64Rules + 6, // 5: trpc.FieldRules.uint32:type_name -> trpc.UInt32Rules + 7, // 6: trpc.FieldRules.uint64:type_name -> trpc.UInt64Rules + 8, // 7: trpc.FieldRules.sint32:type_name -> trpc.SInt32Rules + 9, // 8: trpc.FieldRules.sint64:type_name -> trpc.SInt64Rules + 10, // 9: trpc.FieldRules.fixed32:type_name -> trpc.Fixed32Rules + 11, // 10: trpc.FieldRules.fixed64:type_name -> trpc.Fixed64Rules + 12, // 11: trpc.FieldRules.sfixed32:type_name -> trpc.SFixed32Rules + 13, // 12: trpc.FieldRules.sfixed64:type_name -> trpc.SFixed64Rules + 14, // 13: trpc.FieldRules.bool:type_name -> trpc.BoolRules + 15, // 14: trpc.FieldRules.string:type_name -> trpc.StringRules + 16, // 15: trpc.FieldRules.bytes:type_name -> trpc.BytesRules + 17, // 16: trpc.FieldRules.enum:type_name -> trpc.EnumRules + 19, // 17: trpc.FieldRules.repeated:type_name -> trpc.RepeatedRules + 20, // 18: trpc.FieldRules.map:type_name -> trpc.MapRules + 21, // 19: trpc.FieldRules.any:type_name -> trpc.AnyRules + 22, // 20: trpc.FieldRules.duration:type_name -> trpc.DurationRules + 23, // 21: trpc.FieldRules.timestamp:type_name -> trpc.TimestampRules + 0, // 22: trpc.StringRules.well_known_regex:type_name -> trpc.KnownRegex + 1, // 23: trpc.RepeatedRules.items:type_name -> trpc.FieldRules + 1, // 24: trpc.MapRules.keys:type_name -> trpc.FieldRules + 1, // 25: trpc.MapRules.values:type_name -> trpc.FieldRules + 24, // 26: trpc.DurationRules.const:type_name -> google.protobuf.Duration + 24, // 27: trpc.DurationRules.lt:type_name -> google.protobuf.Duration + 24, // 28: trpc.DurationRules.lte:type_name -> google.protobuf.Duration + 24, // 29: trpc.DurationRules.gt:type_name -> google.protobuf.Duration + 24, // 30: trpc.DurationRules.gte:type_name -> google.protobuf.Duration + 24, // 31: trpc.DurationRules.in:type_name -> google.protobuf.Duration + 24, // 32: trpc.DurationRules.not_in:type_name -> google.protobuf.Duration + 25, // 33: trpc.TimestampRules.const:type_name -> google.protobuf.Timestamp + 25, // 34: trpc.TimestampRules.lt:type_name -> google.protobuf.Timestamp + 25, // 35: trpc.TimestampRules.lte:type_name -> google.protobuf.Timestamp + 25, // 36: trpc.TimestampRules.gt:type_name -> google.protobuf.Timestamp + 25, // 37: trpc.TimestampRules.gte:type_name -> google.protobuf.Timestamp + 24, // 38: trpc.TimestampRules.within:type_name -> google.protobuf.Duration + 26, // 39: trpc.disabled:extendee -> google.protobuf.MessageOptions + 26, // 40: trpc.ignored:extendee -> google.protobuf.MessageOptions + 27, // 41: trpc.required:extendee -> google.protobuf.OneofOptions + 28, // 42: trpc.rules:extendee -> google.protobuf.FieldOptions + 1, // 43: trpc.rules:type_name -> trpc.FieldRules + 44, // [44:44] is the sub-list for method output_type + 44, // [44:44] is the sub-list for method input_type + 43, // [43:44] is the sub-list for extension type_name + 39, // [39:43] is the sub-list for extension extendee + 0, // [0:39] is the sub-list for field type_name +} + +func init() { file_trpc_proto_validate_ext_proto_init() } +func file_trpc_proto_validate_ext_proto_init() { + if File_trpc_proto_validate_ext_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpc_proto_validate_ext_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FieldRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FloatRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DoubleRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Int32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Int64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UInt32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UInt64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SInt32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SInt64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Fixed32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Fixed64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SFixed32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SFixed64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BoolRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StringRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BytesRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EnumRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RepeatedRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MapRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnyRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DurationRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_proto_validate_ext_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TimestampRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_trpc_proto_validate_ext_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*FieldRules_Float)(nil), + (*FieldRules_Double)(nil), + (*FieldRules_Int32)(nil), + (*FieldRules_Int64)(nil), + (*FieldRules_Uint32)(nil), + (*FieldRules_Uint64)(nil), + (*FieldRules_Sint32)(nil), + (*FieldRules_Sint64)(nil), + (*FieldRules_Fixed32)(nil), + (*FieldRules_Fixed64)(nil), + (*FieldRules_Sfixed32)(nil), + (*FieldRules_Sfixed64)(nil), + (*FieldRules_Bool)(nil), + (*FieldRules_String_)(nil), + (*FieldRules_Bytes)(nil), + (*FieldRules_Enum)(nil), + (*FieldRules_Repeated)(nil), + (*FieldRules_Map)(nil), + (*FieldRules_Any)(nil), + (*FieldRules_Duration)(nil), + (*FieldRules_Timestamp)(nil), + } + file_trpc_proto_validate_ext_proto_msgTypes[14].OneofWrappers = []interface{}{ + (*StringRules_Email)(nil), + (*StringRules_Hostname)(nil), + (*StringRules_Ip)(nil), + (*StringRules_Ipv4)(nil), + (*StringRules_Ipv6)(nil), + (*StringRules_Uri)(nil), + (*StringRules_UriRef)(nil), + (*StringRules_Address)(nil), + (*StringRules_Uuid)(nil), + (*StringRules_WellKnownRegex)(nil), + (*StringRules_Alphabets)(nil), + (*StringRules_Alphanums)(nil), + (*StringRules_Lowercase)(nil), + (*StringRules_Tsecstr)(nil), + } + file_trpc_proto_validate_ext_proto_msgTypes[15].OneofWrappers = []interface{}{ + (*BytesRules_Ip)(nil), + (*BytesRules_Ipv4)(nil), + (*BytesRules_Ipv6)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_proto_validate_ext_proto_rawDesc, + NumEnums: 1, + NumMessages: 23, + NumExtensions: 4, + NumServices: 0, + }, + GoTypes: file_trpc_proto_validate_ext_proto_goTypes, + DependencyIndexes: file_trpc_proto_validate_ext_proto_depIdxs, + EnumInfos: file_trpc_proto_validate_ext_proto_enumTypes, + MessageInfos: file_trpc_proto_validate_ext_proto_msgTypes, + ExtensionInfos: file_trpc_proto_validate_ext_proto_extTypes, + }.Build() + File_trpc_proto_validate_ext_proto = out.File + file_trpc_proto_validate_ext_proto_rawDesc = nil + file_trpc_proto_validate_ext_proto_goTypes = nil + file_trpc_proto_validate_ext_proto_depIdxs = nil +} diff --git a/trpc/EXTEND.md b/trpc/EXTEND.md deleted file mode 100644 index fb0610b..0000000 --- a/trpc/EXTEND.md +++ /dev/null @@ -1,14 +0,0 @@ -[TOC] - -# 背景 -目前trpc框架使用extend的tag比较分散,这里统一记录并预分配extend tag号段 - -# trpc.ext.proto -50001-50100 - -# swagger.proto -50101-50200 - -# api/annotations.proto -50201-50300 - diff --git a/trpc/Makefile b/trpc/Makefile deleted file mode 100644 index a02f83e..0000000 --- a/trpc/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: trpc.proto - protoc --go_out=paths=source_relative:. trpc.proto swagger.proto - -clean: - rm *.pb.go diff --git a/trpc/README.md b/trpc/README.md deleted file mode 100644 index 6777955..0000000 --- a/trpc/README.md +++ /dev/null @@ -1,70 +0,0 @@ -该仓库维护了一些trpc框架脚手架工具使用的pb扩展: -- trpc.ext.proto,定义了rpc service methodoption,允许定义别名; -- swagger.proto,定义了生成swagger apidocs时的一些swagger描述; -- validate.proto,定义了protoc-gen-secv依赖的一些校验规则; -- api/annotations.proto,定义了RESTful api需要的扩展option - -## Examples - -下面是几个使用示例。 - -### 自定义名称:rpc方法、go tag -```protobuf - -import "trpc.proto"; - -// 自定义rpc方法名 by `trpc.alias` method option -service HelloSvr { - // Here, trpc.alias will build the bridge between `cmd` 0x1000/0x1 and handlefunc `Hello`. - // Actually, trpc framework will pass the option `trpc.alias = "ilive/0x1000/0x1"` to `codec`, - // then codec will split "/ilive/0x1000/0x1" as `bigcmd=0x1000` and `subcmd=0x1". - // - // By this way, we can generally support nearly all kinds of existed protocols in our company. - rpc Hello(HelloReq) returns(HelloRsp) { - option (trpc.alias) = "/ilive/0x1000/0x1"; - } -} - -// 自定义go tag by `trpc.tag` field option -message SayHello { - string name = 1 [(trpc.go_tag)='xml:"name"']; -} -``` - -### 定义 RESTful API -```protobuf - -syntax = "proto3"; -package helloworld; - -import "trpc/api/annotations.proto"; - -option go_package="git.code.oa.com/examples/helloworld"; - -// HelloReq request -message HelloReq{} - -// HelloRsp response -message HelloRsp{} - -service helloworld_svr { - // Hello say hello - rpc Hello(HelloReq) returns(HelloRsp) { - option (trpc.api.http) = { - get: "/say/{name}" - additional_bindings: { - get: "/say/strval/{strVal}", - } - }; - }; -} - -``` - -## 注意事项 - -protoc、protoc-gen-go生成go代码时会检测同一个pb文件名重复注册的问题,未来版本可能会直接panic, -为避免此问题,特意将trpc.proto重命名为trpc.ext.proto,以避免与trpc默认协议文件trpc.proto冲突。 - -在使用工具trpc-go/trpc-go-cmdline进行代码生成时,import pb文件时,依然写`import "trpc.proto"`, -重命名trpc.ext.proto,这么做只是为了避免生成的桩代码panic,pb引用时写trpc.proto不受影响。 diff --git a/trpc/api/annotations.proto b/trpc/api/annotations.proto index 9922117..9b0b22b 100644 --- a/trpc/api/annotations.proto +++ b/trpc/api/annotations.proto @@ -5,7 +5,7 @@ package trpc.api; import "trpc/api/http.proto"; import "google/protobuf/descriptor.proto"; -option go_package = "git.code.oa.com/trpc-go/trpc/api/annotations"; +option go_package = "git.woa.com/trpc/trpc-protocol/pbgo/trpc/api"; extend google.protobuf.MethodOptions { HttpRule http = 50201; diff --git a/trpc/api/http.proto b/trpc/api/http.proto index 010e2ab..25cdc5f 100644 --- a/trpc/api/http.proto +++ b/trpc/api/http.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package trpc.api; -option go_package = "git.code.oa.com/trpc-go/trpc/api/annotations"; +option go_package = "git.woa.com/trpc/trpc-protocol/pbgo/trpc/api"; message HttpRule { // Selects a method to which this rule applies. diff --git a/trpc/go.mod b/trpc/go.mod deleted file mode 100644 index 377926b..0000000 --- a/trpc/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module git.code.oa.com/trpc-go/trpc - -go 1.12 - -require ( - github.com/golang/protobuf v1.4.3 - google.golang.org/protobuf v1.25.0 -) diff --git a/trpc/go.sum b/trpc/go.sum deleted file mode 100644 index 2384568..0000000 --- a/trpc/go.sum +++ /dev/null @@ -1,67 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/trpc/swagger.proto b/trpc/proto/swagger.proto similarity index 87% rename from trpc/swagger.proto rename to trpc/proto/swagger.proto index 090f426..1ceee33 100644 --- a/trpc/swagger.proto +++ b/trpc/proto/swagger.proto @@ -2,7 +2,7 @@ syntax = "proto3"; import "google/protobuf/descriptor.proto"; package trpc; -option go_package = "git.code.oa.com/trpc-go/trpc"; +option go_package = "git.woa.com/trpc/trpc-protocol/pbgo/trpc/proto"; option java_package = "com.tencent.trpc.protobuf.ext"; extend google.protobuf.MethodOptions { diff --git a/trpc/proto/trpc.proto b/trpc/proto/trpc.proto index e759a2d..efe5aaa 100644 --- a/trpc/proto/trpc.proto +++ b/trpc/proto/trpc.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package trpc; -option go_package = "git.code.oa.com/trpc-go/trpc"; +option go_package = "git.woa.com/trpc/trpc-protocol/pbgo/trpc/proto"; option java_package = "com.tencent.trpc.proto.standard.common"; option java_outer_classname = "TRPCProtocol"; diff --git a/trpc/proto/trpc_options.proto b/trpc/proto/trpc_options.proto index dbfd7e1..da99673 100644 --- a/trpc/proto/trpc_options.proto +++ b/trpc/proto/trpc_options.proto @@ -1,9 +1,15 @@ syntax = "proto3"; +import "google/protobuf/descriptor.proto"; + package trpc; -import "google/protobuf/descriptor.proto"; +option go_package = "git.woa.com/trpc/trpc-protocol/pbgo/trpc/proto"; + +extend google.protobuf.MethodOptions { + string alias = 50001; +} -extend google.protobuf.MethodOptions { - string alias = 50001; +extend google.protobuf.FieldOptions { + string go_tag = 50050; } diff --git a/trpc/validate.ext.proto b/trpc/proto/validate.ext.proto similarity index 99% rename from trpc/validate.ext.proto rename to trpc/proto/validate.ext.proto index 1b06ec0..1359563 100644 --- a/trpc/validate.ext.proto +++ b/trpc/proto/validate.ext.proto @@ -1,7 +1,7 @@ syntax = "proto2"; package trpc; -option go_package = "git.code.oa.com/trpc-go/trpc"; +option go_package = "git.woa.com/trpc/trpc-protocol/pbgo/trpc/proto"; option java_package = "com.tencent.trpc.protobuf.ext"; import "google/protobuf/descriptor.proto"; diff --git a/trpc/swagger.pb.go b/trpc/swagger.pb.go deleted file mode 100644 index 578acff..0000000 --- a/trpc/swagger.pb.go +++ /dev/null @@ -1,182 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: swagger.proto - -package trpc - -import ( - "fmt" - "math" - - "github.com/golang/protobuf/proto" - "google.golang.org/protobuf/types/descriptorpb" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -// to gen swagger json -type SwaggerRule struct { - Title string `protobuf:"bytes,50103,opt,name=title,proto3" json:"title,omitempty"` - Method string `protobuf:"bytes,50104,opt,name=method,proto3" json:"method,omitempty"` - Description string `protobuf:"bytes,50105,opt,name=description,proto3" json:"description,omitempty"` - Params []*SwaggerParam `protobuf:"bytes,50106,rep,name=params,proto3" json:"params,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SwaggerRule) Reset() { *m = SwaggerRule{} } -func (m *SwaggerRule) String() string { return proto.CompactTextString(m) } -func (*SwaggerRule) ProtoMessage() {} -func (*SwaggerRule) Descriptor() ([]byte, []int) { - return fileDescriptor_49635b75e059a131, []int{0} -} - -func (m *SwaggerRule) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SwaggerRule.Unmarshal(m, b) -} -func (m *SwaggerRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SwaggerRule.Marshal(b, m, deterministic) -} -func (m *SwaggerRule) XXX_Merge(src proto.Message) { - xxx_messageInfo_SwaggerRule.Merge(m, src) -} -func (m *SwaggerRule) XXX_Size() int { - return xxx_messageInfo_SwaggerRule.Size(m) -} -func (m *SwaggerRule) XXX_DiscardUnknown() { - xxx_messageInfo_SwaggerRule.DiscardUnknown(m) -} - -var xxx_messageInfo_SwaggerRule proto.InternalMessageInfo - -func (m *SwaggerRule) GetTitle() string { - if m != nil { - return m.Title - } - return "" -} - -func (m *SwaggerRule) GetMethod() string { - if m != nil { - return m.Method - } - return "" -} - -func (m *SwaggerRule) GetDescription() string { - if m != nil { - return m.Description - } - return "" -} - -func (m *SwaggerRule) GetParams() []*SwaggerParam { - if m != nil { - return m.Params - } - return nil -} - -type SwaggerParam struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Required bool `protobuf:"varint,2,opt,name=required,proto3" json:"required,omitempty"` - Default string `protobuf:"bytes,3,opt,name=default,proto3" json:"default,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SwaggerParam) Reset() { *m = SwaggerParam{} } -func (m *SwaggerParam) String() string { return proto.CompactTextString(m) } -func (*SwaggerParam) ProtoMessage() {} -func (*SwaggerParam) Descriptor() ([]byte, []int) { - return fileDescriptor_49635b75e059a131, []int{1} -} - -func (m *SwaggerParam) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SwaggerParam.Unmarshal(m, b) -} -func (m *SwaggerParam) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SwaggerParam.Marshal(b, m, deterministic) -} -func (m *SwaggerParam) XXX_Merge(src proto.Message) { - xxx_messageInfo_SwaggerParam.Merge(m, src) -} -func (m *SwaggerParam) XXX_Size() int { - return xxx_messageInfo_SwaggerParam.Size(m) -} -func (m *SwaggerParam) XXX_DiscardUnknown() { - xxx_messageInfo_SwaggerParam.DiscardUnknown(m) -} - -var xxx_messageInfo_SwaggerParam proto.InternalMessageInfo - -func (m *SwaggerParam) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *SwaggerParam) GetRequired() bool { - if m != nil { - return m.Required - } - return false -} - -func (m *SwaggerParam) GetDefault() string { - if m != nil { - return m.Default - } - return "" -} - -var E_Swagger = &proto.ExtensionDesc{ - ExtendedType: (*descriptorpb.MethodOptions)(nil), - ExtensionType: (*SwaggerRule)(nil), - Field: 50101, - Name: "trpc.swagger", - Tag: "bytes,50101,opt,name=swagger", - Filename: "swagger.proto", -} - -func init() { - proto.RegisterType((*SwaggerRule)(nil), "trpc.SwaggerRule") - proto.RegisterType((*SwaggerParam)(nil), "trpc.SwaggerParam") - proto.RegisterExtension(E_Swagger) -} - -func init() { proto.RegisterFile("swagger.proto", fileDescriptor_49635b75e059a131) } - -var fileDescriptor_49635b75e059a131 = []byte{ - // 299 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x50, 0x3f, 0x4f, 0xfb, 0x30, - 0x14, 0x54, 0x7e, 0xed, 0xaf, 0x2d, 0x2f, 0x30, 0xe0, 0x01, 0x59, 0x15, 0xa0, 0xa8, 0x53, 0x06, - 0x70, 0xa4, 0xb2, 0x21, 0xb1, 0xb0, 0x57, 0xa0, 0xb0, 0x20, 0x36, 0xd7, 0x79, 0x35, 0x91, 0x92, - 0xbc, 0xe0, 0x38, 0x82, 0x6f, 0xd0, 0x99, 0x0f, 0x83, 0xf8, 0xf3, 0xe9, 0x50, 0x1c, 0xa7, 0x2a, - 0x93, 0x7d, 0xef, 0xce, 0xe7, 0x7b, 0x07, 0x47, 0xcd, 0xab, 0xd4, 0x1a, 0x8d, 0xa8, 0x0d, 0x59, - 0x62, 0x63, 0x6b, 0x6a, 0x35, 0x8f, 0x34, 0x91, 0x2e, 0x30, 0x71, 0xb3, 0x75, 0xbb, 0x49, 0x32, - 0x6c, 0x94, 0xc9, 0x6b, 0x4b, 0x5e, 0xb7, 0x78, 0x0f, 0x20, 0x7c, 0xe8, 0x5f, 0xa6, 0x6d, 0x81, - 0xec, 0x04, 0xfe, 0xdb, 0xdc, 0x16, 0xc8, 0x3f, 0xb7, 0xa3, 0x28, 0x88, 0x0f, 0xd2, 0x1e, 0x32, - 0x0e, 0x93, 0x12, 0xed, 0x33, 0x65, 0xfc, 0xcb, 0x13, 0x1e, 0xb3, 0x05, 0x84, 0x83, 0x6b, 0x4e, - 0x15, 0xff, 0xf6, 0xf4, 0xfe, 0x90, 0x5d, 0xc0, 0xa4, 0x96, 0x46, 0x96, 0x0d, 0xff, 0xd9, 0x8e, - 0xa2, 0x51, 0x1c, 0x2e, 0x99, 0xe8, 0x02, 0x0a, 0xff, 0xf5, 0x7d, 0x47, 0xa6, 0x5e, 0xb3, 0x78, - 0x84, 0xc3, 0xfd, 0x39, 0x63, 0x30, 0xae, 0x64, 0x89, 0x3c, 0x70, 0xc6, 0xee, 0xce, 0xe6, 0x30, - 0x33, 0xf8, 0xd2, 0xe6, 0x06, 0x33, 0xfe, 0x2f, 0x0a, 0xe2, 0x59, 0xba, 0xc3, 0x8c, 0xc3, 0x34, - 0xc3, 0x8d, 0x6c, 0x0b, 0xcb, 0xfb, 0x2c, 0x03, 0xbc, 0x5e, 0xc1, 0xd4, 0xd7, 0xc4, 0xce, 0x45, - 0xdf, 0x8d, 0x18, 0xba, 0x11, 0x2b, 0xb7, 0xcf, 0x9d, 0x4b, 0xdc, 0xf0, 0x0f, 0xb7, 0x47, 0xb8, - 0x3c, 0xfe, 0x13, 0xb4, 0xeb, 0x28, 0x1d, 0x3c, 0x6e, 0x6f, 0xe0, 0x4c, 0x51, 0x29, 0x2c, 0x56, - 0x0a, 0x2b, 0xdb, 0x0b, 0x77, 0x76, 0xf8, 0x66, 0x9f, 0x4e, 0x75, 0x6e, 0x85, 0xa2, 0x0c, 0x05, - 0x49, 0xa1, 0xa8, 0x4c, 0x3a, 0xc9, 0xa5, 0x26, 0x77, 0xae, 0x27, 0x4e, 0x7b, 0xf5, 0x1b, 0x00, - 0x00, 0xff, 0xff, 0xb7, 0xf7, 0x02, 0x96, 0xbb, 0x01, 0x00, 0x00, -} diff --git a/trpc/trpc.ext.pb.go b/trpc/trpc.ext.pb.go deleted file mode 100644 index 7639237..0000000 --- a/trpc/trpc.ext.pb.go +++ /dev/null @@ -1,114 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.25.0 -// protoc v3.12.4 -// source: trpc.ext.proto - -package trpc - -import ( - proto "github.com/golang/protobuf/proto" - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// This is a compile-time assertion that a sufficiently up-to-date version -// of the legacy proto package is being used. -const _ = proto.ProtoPackageIsVersion4 - -var file_trpc_ext_proto_extTypes = []protoimpl.ExtensionInfo{ - { - ExtendedType: (*descriptor.MethodOptions)(nil), - ExtensionType: (*string)(nil), - Field: 50001, - Name: "trpc.alias", - Tag: "bytes,50001,opt,name=alias", - Filename: "trpc.ext.proto", - }, - { - ExtendedType: (*descriptor.FieldOptions)(nil), - ExtensionType: (*string)(nil), - Field: 50050, - Name: "trpc.go_tag", - Tag: "bytes,50050,opt,name=go_tag", - Filename: "trpc.ext.proto", - }, -} - -// Extension fields to descriptor.MethodOptions. -var ( - // optional string alias = 50001; - E_Alias = &file_trpc_ext_proto_extTypes[0] -) - -// Extension fields to descriptor.FieldOptions. -var ( - // optional string go_tag = 50050; - E_GoTag = &file_trpc_ext_proto_extTypes[1] -) - -var File_trpc_ext_proto protoreflect.FileDescriptor - -var file_trpc_ext_proto_rawDesc = []byte{ - 0x0a, 0x0e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x04, 0x74, 0x72, 0x70, 0x63, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x36, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0xd1, 0x86, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x3a, 0x36, 0x0a, 0x06, 0x67, 0x6f, 0x5f, 0x74, 0x61, 0x67, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x82, 0x87, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x1e, 0x5a, 0x1c, 0x67, 0x69, 0x74, 0x2e, - 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, - 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var file_trpc_ext_proto_goTypes = []interface{}{ - (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions - (*descriptor.FieldOptions)(nil), // 1: google.protobuf.FieldOptions -} -var file_trpc_ext_proto_depIdxs = []int32{ - 0, // 0: trpc.alias:extendee -> google.protobuf.MethodOptions - 1, // 1: trpc.go_tag:extendee -> google.protobuf.FieldOptions - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 0, // [0:2] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_trpc_ext_proto_init() } -func file_trpc_ext_proto_init() { - if File_trpc_ext_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_trpc_ext_proto_rawDesc, - NumEnums: 0, - NumMessages: 0, - NumExtensions: 2, - NumServices: 0, - }, - GoTypes: file_trpc_ext_proto_goTypes, - DependencyIndexes: file_trpc_ext_proto_depIdxs, - ExtensionInfos: file_trpc_ext_proto_extTypes, - }.Build() - File_trpc_ext_proto = out.File - file_trpc_ext_proto_rawDesc = nil - file_trpc_ext_proto_goTypes = nil - file_trpc_ext_proto_depIdxs = nil -} diff --git a/trpc/trpc.ext.proto b/trpc/trpc.ext.proto deleted file mode 100644 index a71e925..0000000 --- a/trpc/trpc.ext.proto +++ /dev/null @@ -1,15 +0,0 @@ -syntax = "proto3"; - -import "google/protobuf/descriptor.proto"; - -package trpc; - -option go_package = "git.code.oa.com/trpc-go/trpc"; - -extend google.protobuf.MethodOptions { - string alias = 50001; -} - -extend google.protobuf.FieldOptions { - string go_tag = 50050; -} diff --git a/trpc/validate.ext.pb.go b/trpc/validate.ext.pb.go deleted file mode 100644 index 27d9ed4..0000000 --- a/trpc/validate.ext.pb.go +++ /dev/null @@ -1,3269 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: validate.ext.proto - -package trpc - -import ( - "fmt" - "math" - - "github.com/golang/protobuf/proto" - "google.golang.org/protobuf/types/descriptorpb" - "google.golang.org/protobuf/types/known/durationpb" - "google.golang.org/protobuf/types/known/timestamppb" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -// WellKnownRegex contain some well-known patterns. -type KnownRegex int32 - -const ( - KnownRegex_UNKNOWN KnownRegex = 0 - // HTTP header name as defined by RFC 7230. - KnownRegex_HTTP_HEADER_NAME KnownRegex = 1 - // HTTP header value as defined by RFC 7230. - KnownRegex_HTTP_HEADER_VALUE KnownRegex = 2 -) - -var KnownRegex_name = map[int32]string{ - 0: "UNKNOWN", - 1: "HTTP_HEADER_NAME", - 2: "HTTP_HEADER_VALUE", -} - -var KnownRegex_value = map[string]int32{ - "UNKNOWN": 0, - "HTTP_HEADER_NAME": 1, - "HTTP_HEADER_VALUE": 2, -} - -func (x KnownRegex) Enum() *KnownRegex { - p := new(KnownRegex) - *p = x - return p -} - -func (x KnownRegex) String() string { - return proto.EnumName(KnownRegex_name, int32(x)) -} - -func (x *KnownRegex) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(KnownRegex_value, data, "KnownRegex") - if err != nil { - return err - } - *x = KnownRegex(value) - return nil -} - -func (KnownRegex) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{0} -} - -// FieldRules encapsulates the rules for each type of field. Depending on the -// field, the correct set should be used to ensure proper validations. -type FieldRules struct { - Message *MessageRules `protobuf:"bytes,17,opt,name=message" json:"message,omitempty"` - // Types that are valid to be assigned to Type: - // *FieldRules_Float - // *FieldRules_Double - // *FieldRules_Int32 - // *FieldRules_Int64 - // *FieldRules_Uint32 - // *FieldRules_Uint64 - // *FieldRules_Sint32 - // *FieldRules_Sint64 - // *FieldRules_Fixed32 - // *FieldRules_Fixed64 - // *FieldRules_Sfixed32 - // *FieldRules_Sfixed64 - // *FieldRules_Bool - // *FieldRules_String_ - // *FieldRules_Bytes - // *FieldRules_Enum - // *FieldRules_Repeated - // *FieldRules_Map - // *FieldRules_Any - // *FieldRules_Duration - // *FieldRules_Timestamp - Type isFieldRules_Type `protobuf_oneof:"type"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *FieldRules) Reset() { *m = FieldRules{} } -func (m *FieldRules) String() string { return proto.CompactTextString(m) } -func (*FieldRules) ProtoMessage() {} -func (*FieldRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{0} -} - -func (m *FieldRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FieldRules.Unmarshal(m, b) -} -func (m *FieldRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FieldRules.Marshal(b, m, deterministic) -} -func (m *FieldRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_FieldRules.Merge(m, src) -} -func (m *FieldRules) XXX_Size() int { - return xxx_messageInfo_FieldRules.Size(m) -} -func (m *FieldRules) XXX_DiscardUnknown() { - xxx_messageInfo_FieldRules.DiscardUnknown(m) -} - -var xxx_messageInfo_FieldRules proto.InternalMessageInfo - -func (m *FieldRules) GetMessage() *MessageRules { - if m != nil { - return m.Message - } - return nil -} - -type isFieldRules_Type interface { - isFieldRules_Type() -} - -type FieldRules_Float struct { - Float *FloatRules `protobuf:"bytes,1,opt,name=float,oneof"` -} - -type FieldRules_Double struct { - Double *DoubleRules `protobuf:"bytes,2,opt,name=double,oneof"` -} - -type FieldRules_Int32 struct { - Int32 *Int32Rules `protobuf:"bytes,3,opt,name=int32,oneof"` -} - -type FieldRules_Int64 struct { - Int64 *Int64Rules `protobuf:"bytes,4,opt,name=int64,oneof"` -} - -type FieldRules_Uint32 struct { - Uint32 *UInt32Rules `protobuf:"bytes,5,opt,name=uint32,oneof"` -} - -type FieldRules_Uint64 struct { - Uint64 *UInt64Rules `protobuf:"bytes,6,opt,name=uint64,oneof"` -} - -type FieldRules_Sint32 struct { - Sint32 *SInt32Rules `protobuf:"bytes,7,opt,name=sint32,oneof"` -} - -type FieldRules_Sint64 struct { - Sint64 *SInt64Rules `protobuf:"bytes,8,opt,name=sint64,oneof"` -} - -type FieldRules_Fixed32 struct { - Fixed32 *Fixed32Rules `protobuf:"bytes,9,opt,name=fixed32,oneof"` -} - -type FieldRules_Fixed64 struct { - Fixed64 *Fixed64Rules `protobuf:"bytes,10,opt,name=fixed64,oneof"` -} - -type FieldRules_Sfixed32 struct { - Sfixed32 *SFixed32Rules `protobuf:"bytes,11,opt,name=sfixed32,oneof"` -} - -type FieldRules_Sfixed64 struct { - Sfixed64 *SFixed64Rules `protobuf:"bytes,12,opt,name=sfixed64,oneof"` -} - -type FieldRules_Bool struct { - Bool *BoolRules `protobuf:"bytes,13,opt,name=bool,oneof"` -} - -type FieldRules_String_ struct { - String_ *StringRules `protobuf:"bytes,14,opt,name=string,oneof"` -} - -type FieldRules_Bytes struct { - Bytes *BytesRules `protobuf:"bytes,15,opt,name=bytes,oneof"` -} - -type FieldRules_Enum struct { - Enum *EnumRules `protobuf:"bytes,16,opt,name=enum,oneof"` -} - -type FieldRules_Repeated struct { - Repeated *RepeatedRules `protobuf:"bytes,18,opt,name=repeated,oneof"` -} - -type FieldRules_Map struct { - Map *MapRules `protobuf:"bytes,19,opt,name=map,oneof"` -} - -type FieldRules_Any struct { - Any *AnyRules `protobuf:"bytes,20,opt,name=any,oneof"` -} - -type FieldRules_Duration struct { - Duration *DurationRules `protobuf:"bytes,21,opt,name=duration,oneof"` -} - -type FieldRules_Timestamp struct { - Timestamp *TimestampRules `protobuf:"bytes,22,opt,name=timestamp,oneof"` -} - -func (*FieldRules_Float) isFieldRules_Type() {} - -func (*FieldRules_Double) isFieldRules_Type() {} - -func (*FieldRules_Int32) isFieldRules_Type() {} - -func (*FieldRules_Int64) isFieldRules_Type() {} - -func (*FieldRules_Uint32) isFieldRules_Type() {} - -func (*FieldRules_Uint64) isFieldRules_Type() {} - -func (*FieldRules_Sint32) isFieldRules_Type() {} - -func (*FieldRules_Sint64) isFieldRules_Type() {} - -func (*FieldRules_Fixed32) isFieldRules_Type() {} - -func (*FieldRules_Fixed64) isFieldRules_Type() {} - -func (*FieldRules_Sfixed32) isFieldRules_Type() {} - -func (*FieldRules_Sfixed64) isFieldRules_Type() {} - -func (*FieldRules_Bool) isFieldRules_Type() {} - -func (*FieldRules_String_) isFieldRules_Type() {} - -func (*FieldRules_Bytes) isFieldRules_Type() {} - -func (*FieldRules_Enum) isFieldRules_Type() {} - -func (*FieldRules_Repeated) isFieldRules_Type() {} - -func (*FieldRules_Map) isFieldRules_Type() {} - -func (*FieldRules_Any) isFieldRules_Type() {} - -func (*FieldRules_Duration) isFieldRules_Type() {} - -func (*FieldRules_Timestamp) isFieldRules_Type() {} - -func (m *FieldRules) GetType() isFieldRules_Type { - if m != nil { - return m.Type - } - return nil -} - -func (m *FieldRules) GetFloat() *FloatRules { - if x, ok := m.GetType().(*FieldRules_Float); ok { - return x.Float - } - return nil -} - -func (m *FieldRules) GetDouble() *DoubleRules { - if x, ok := m.GetType().(*FieldRules_Double); ok { - return x.Double - } - return nil -} - -func (m *FieldRules) GetInt32() *Int32Rules { - if x, ok := m.GetType().(*FieldRules_Int32); ok { - return x.Int32 - } - return nil -} - -func (m *FieldRules) GetInt64() *Int64Rules { - if x, ok := m.GetType().(*FieldRules_Int64); ok { - return x.Int64 - } - return nil -} - -func (m *FieldRules) GetUint32() *UInt32Rules { - if x, ok := m.GetType().(*FieldRules_Uint32); ok { - return x.Uint32 - } - return nil -} - -func (m *FieldRules) GetUint64() *UInt64Rules { - if x, ok := m.GetType().(*FieldRules_Uint64); ok { - return x.Uint64 - } - return nil -} - -func (m *FieldRules) GetSint32() *SInt32Rules { - if x, ok := m.GetType().(*FieldRules_Sint32); ok { - return x.Sint32 - } - return nil -} - -func (m *FieldRules) GetSint64() *SInt64Rules { - if x, ok := m.GetType().(*FieldRules_Sint64); ok { - return x.Sint64 - } - return nil -} - -func (m *FieldRules) GetFixed32() *Fixed32Rules { - if x, ok := m.GetType().(*FieldRules_Fixed32); ok { - return x.Fixed32 - } - return nil -} - -func (m *FieldRules) GetFixed64() *Fixed64Rules { - if x, ok := m.GetType().(*FieldRules_Fixed64); ok { - return x.Fixed64 - } - return nil -} - -func (m *FieldRules) GetSfixed32() *SFixed32Rules { - if x, ok := m.GetType().(*FieldRules_Sfixed32); ok { - return x.Sfixed32 - } - return nil -} - -func (m *FieldRules) GetSfixed64() *SFixed64Rules { - if x, ok := m.GetType().(*FieldRules_Sfixed64); ok { - return x.Sfixed64 - } - return nil -} - -func (m *FieldRules) GetBool() *BoolRules { - if x, ok := m.GetType().(*FieldRules_Bool); ok { - return x.Bool - } - return nil -} - -func (m *FieldRules) GetString_() *StringRules { - if x, ok := m.GetType().(*FieldRules_String_); ok { - return x.String_ - } - return nil -} - -func (m *FieldRules) GetBytes() *BytesRules { - if x, ok := m.GetType().(*FieldRules_Bytes); ok { - return x.Bytes - } - return nil -} - -func (m *FieldRules) GetEnum() *EnumRules { - if x, ok := m.GetType().(*FieldRules_Enum); ok { - return x.Enum - } - return nil -} - -func (m *FieldRules) GetRepeated() *RepeatedRules { - if x, ok := m.GetType().(*FieldRules_Repeated); ok { - return x.Repeated - } - return nil -} - -func (m *FieldRules) GetMap() *MapRules { - if x, ok := m.GetType().(*FieldRules_Map); ok { - return x.Map - } - return nil -} - -func (m *FieldRules) GetAny() *AnyRules { - if x, ok := m.GetType().(*FieldRules_Any); ok { - return x.Any - } - return nil -} - -func (m *FieldRules) GetDuration() *DurationRules { - if x, ok := m.GetType().(*FieldRules_Duration); ok { - return x.Duration - } - return nil -} - -func (m *FieldRules) GetTimestamp() *TimestampRules { - if x, ok := m.GetType().(*FieldRules_Timestamp); ok { - return x.Timestamp - } - return nil -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*FieldRules) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*FieldRules_Float)(nil), - (*FieldRules_Double)(nil), - (*FieldRules_Int32)(nil), - (*FieldRules_Int64)(nil), - (*FieldRules_Uint32)(nil), - (*FieldRules_Uint64)(nil), - (*FieldRules_Sint32)(nil), - (*FieldRules_Sint64)(nil), - (*FieldRules_Fixed32)(nil), - (*FieldRules_Fixed64)(nil), - (*FieldRules_Sfixed32)(nil), - (*FieldRules_Sfixed64)(nil), - (*FieldRules_Bool)(nil), - (*FieldRules_String_)(nil), - (*FieldRules_Bytes)(nil), - (*FieldRules_Enum)(nil), - (*FieldRules_Repeated)(nil), - (*FieldRules_Map)(nil), - (*FieldRules_Any)(nil), - (*FieldRules_Duration)(nil), - (*FieldRules_Timestamp)(nil), - } -} - -// FloatRules describes the constraints applied to `float` values -type FloatRules struct { - // Const specifies that this field must be exactly the specified value - Const *float32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *float32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than or equal to the - // specified value, inclusive - Lte *float32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive. If the value of Gt is larger than a specified Lt or Lte, the - // range is reversed. - Gt *float32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than or equal to the - // specified value, inclusive. If the value of Gte is larger than a - // specified Lt or Lte, the range is reversed. - Gte *float32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []float32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []float32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *FloatRules) Reset() { *m = FloatRules{} } -func (m *FloatRules) String() string { return proto.CompactTextString(m) } -func (*FloatRules) ProtoMessage() {} -func (*FloatRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{1} -} - -func (m *FloatRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FloatRules.Unmarshal(m, b) -} -func (m *FloatRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FloatRules.Marshal(b, m, deterministic) -} -func (m *FloatRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_FloatRules.Merge(m, src) -} -func (m *FloatRules) XXX_Size() int { - return xxx_messageInfo_FloatRules.Size(m) -} -func (m *FloatRules) XXX_DiscardUnknown() { - xxx_messageInfo_FloatRules.DiscardUnknown(m) -} - -var xxx_messageInfo_FloatRules proto.InternalMessageInfo - -func (m *FloatRules) GetConst() float32 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *FloatRules) GetLt() float32 { - if m != nil && m.Lt != nil { - return *m.Lt - } - return 0 -} - -func (m *FloatRules) GetLte() float32 { - if m != nil && m.Lte != nil { - return *m.Lte - } - return 0 -} - -func (m *FloatRules) GetGt() float32 { - if m != nil && m.Gt != nil { - return *m.Gt - } - return 0 -} - -func (m *FloatRules) GetGte() float32 { - if m != nil && m.Gte != nil { - return *m.Gte - } - return 0 -} - -func (m *FloatRules) GetIn() []float32 { - if m != nil { - return m.In - } - return nil -} - -func (m *FloatRules) GetNotIn() []float32 { - if m != nil { - return m.NotIn - } - return nil -} - -func (m *FloatRules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// DoubleRules describes the constraints applied to `double` values -type DoubleRules struct { - // Const specifies that this field must be exactly the specified value - Const *float64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *float64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than or equal to the - // specified value, inclusive - Lte *float64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive. If the value of Gt is larger than a specified Lt or Lte, the - // range is reversed. - Gt *float64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than or equal to the - // specified value, inclusive. If the value of Gte is larger than a - // specified Lt or Lte, the range is reversed. - Gte *float64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []float64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []float64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DoubleRules) Reset() { *m = DoubleRules{} } -func (m *DoubleRules) String() string { return proto.CompactTextString(m) } -func (*DoubleRules) ProtoMessage() {} -func (*DoubleRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{2} -} - -func (m *DoubleRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DoubleRules.Unmarshal(m, b) -} -func (m *DoubleRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DoubleRules.Marshal(b, m, deterministic) -} -func (m *DoubleRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_DoubleRules.Merge(m, src) -} -func (m *DoubleRules) XXX_Size() int { - return xxx_messageInfo_DoubleRules.Size(m) -} -func (m *DoubleRules) XXX_DiscardUnknown() { - xxx_messageInfo_DoubleRules.DiscardUnknown(m) -} - -var xxx_messageInfo_DoubleRules proto.InternalMessageInfo - -func (m *DoubleRules) GetConst() float64 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *DoubleRules) GetLt() float64 { - if m != nil && m.Lt != nil { - return *m.Lt - } - return 0 -} - -func (m *DoubleRules) GetLte() float64 { - if m != nil && m.Lte != nil { - return *m.Lte - } - return 0 -} - -func (m *DoubleRules) GetGt() float64 { - if m != nil && m.Gt != nil { - return *m.Gt - } - return 0 -} - -func (m *DoubleRules) GetGte() float64 { - if m != nil && m.Gte != nil { - return *m.Gte - } - return 0 -} - -func (m *DoubleRules) GetIn() []float64 { - if m != nil { - return m.In - } - return nil -} - -func (m *DoubleRules) GetNotIn() []float64 { - if m != nil { - return m.NotIn - } - return nil -} - -func (m *DoubleRules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// Int32Rules describes the constraints applied to `int32` values -type Int32Rules struct { - // Const specifies that this field must be exactly the specified value - Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *int32 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than or equal to the - // specified value, inclusive - Lte *int32 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive. If the value of Gt is larger than a specified Lt or Lte, the - // range is reversed. - Gt *int32 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than or equal to the - // specified value, inclusive. If the value of Gte is larger than a - // specified Lt or Lte, the range is reversed. - Gte *int32 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []int32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []int32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Int32Rules) Reset() { *m = Int32Rules{} } -func (m *Int32Rules) String() string { return proto.CompactTextString(m) } -func (*Int32Rules) ProtoMessage() {} -func (*Int32Rules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{3} -} - -func (m *Int32Rules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Int32Rules.Unmarshal(m, b) -} -func (m *Int32Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Int32Rules.Marshal(b, m, deterministic) -} -func (m *Int32Rules) XXX_Merge(src proto.Message) { - xxx_messageInfo_Int32Rules.Merge(m, src) -} -func (m *Int32Rules) XXX_Size() int { - return xxx_messageInfo_Int32Rules.Size(m) -} -func (m *Int32Rules) XXX_DiscardUnknown() { - xxx_messageInfo_Int32Rules.DiscardUnknown(m) -} - -var xxx_messageInfo_Int32Rules proto.InternalMessageInfo - -func (m *Int32Rules) GetConst() int32 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *Int32Rules) GetLt() int32 { - if m != nil && m.Lt != nil { - return *m.Lt - } - return 0 -} - -func (m *Int32Rules) GetLte() int32 { - if m != nil && m.Lte != nil { - return *m.Lte - } - return 0 -} - -func (m *Int32Rules) GetGt() int32 { - if m != nil && m.Gt != nil { - return *m.Gt - } - return 0 -} - -func (m *Int32Rules) GetGte() int32 { - if m != nil && m.Gte != nil { - return *m.Gte - } - return 0 -} - -func (m *Int32Rules) GetIn() []int32 { - if m != nil { - return m.In - } - return nil -} - -func (m *Int32Rules) GetNotIn() []int32 { - if m != nil { - return m.NotIn - } - return nil -} - -func (m *Int32Rules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// Int64Rules describes the constraints applied to `int64` values -type Int64Rules struct { - // Const specifies that this field must be exactly the specified value - Const *int64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *int64 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than or equal to the - // specified value, inclusive - Lte *int64 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive. If the value of Gt is larger than a specified Lt or Lte, the - // range is reversed. - Gt *int64 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than or equal to the - // specified value, inclusive. If the value of Gte is larger than a - // specified Lt or Lte, the range is reversed. - Gte *int64 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []int64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []int64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Int64Rules) Reset() { *m = Int64Rules{} } -func (m *Int64Rules) String() string { return proto.CompactTextString(m) } -func (*Int64Rules) ProtoMessage() {} -func (*Int64Rules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{4} -} - -func (m *Int64Rules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Int64Rules.Unmarshal(m, b) -} -func (m *Int64Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Int64Rules.Marshal(b, m, deterministic) -} -func (m *Int64Rules) XXX_Merge(src proto.Message) { - xxx_messageInfo_Int64Rules.Merge(m, src) -} -func (m *Int64Rules) XXX_Size() int { - return xxx_messageInfo_Int64Rules.Size(m) -} -func (m *Int64Rules) XXX_DiscardUnknown() { - xxx_messageInfo_Int64Rules.DiscardUnknown(m) -} - -var xxx_messageInfo_Int64Rules proto.InternalMessageInfo - -func (m *Int64Rules) GetConst() int64 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *Int64Rules) GetLt() int64 { - if m != nil && m.Lt != nil { - return *m.Lt - } - return 0 -} - -func (m *Int64Rules) GetLte() int64 { - if m != nil && m.Lte != nil { - return *m.Lte - } - return 0 -} - -func (m *Int64Rules) GetGt() int64 { - if m != nil && m.Gt != nil { - return *m.Gt - } - return 0 -} - -func (m *Int64Rules) GetGte() int64 { - if m != nil && m.Gte != nil { - return *m.Gte - } - return 0 -} - -func (m *Int64Rules) GetIn() []int64 { - if m != nil { - return m.In - } - return nil -} - -func (m *Int64Rules) GetNotIn() []int64 { - if m != nil { - return m.NotIn - } - return nil -} - -func (m *Int64Rules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// UInt32Rules describes the constraints applied to `uint32` values -type UInt32Rules struct { - // Const specifies that this field must be exactly the specified value - Const *uint32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *uint32 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than or equal to the - // specified value, inclusive - Lte *uint32 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive. If the value of Gt is larger than a specified Lt or Lte, the - // range is reversed. - Gt *uint32 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than or equal to the - // specified value, inclusive. If the value of Gte is larger than a - // specified Lt or Lte, the range is reversed. - Gte *uint32 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []uint32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []uint32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UInt32Rules) Reset() { *m = UInt32Rules{} } -func (m *UInt32Rules) String() string { return proto.CompactTextString(m) } -func (*UInt32Rules) ProtoMessage() {} -func (*UInt32Rules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{5} -} - -func (m *UInt32Rules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UInt32Rules.Unmarshal(m, b) -} -func (m *UInt32Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UInt32Rules.Marshal(b, m, deterministic) -} -func (m *UInt32Rules) XXX_Merge(src proto.Message) { - xxx_messageInfo_UInt32Rules.Merge(m, src) -} -func (m *UInt32Rules) XXX_Size() int { - return xxx_messageInfo_UInt32Rules.Size(m) -} -func (m *UInt32Rules) XXX_DiscardUnknown() { - xxx_messageInfo_UInt32Rules.DiscardUnknown(m) -} - -var xxx_messageInfo_UInt32Rules proto.InternalMessageInfo - -func (m *UInt32Rules) GetConst() uint32 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *UInt32Rules) GetLt() uint32 { - if m != nil && m.Lt != nil { - return *m.Lt - } - return 0 -} - -func (m *UInt32Rules) GetLte() uint32 { - if m != nil && m.Lte != nil { - return *m.Lte - } - return 0 -} - -func (m *UInt32Rules) GetGt() uint32 { - if m != nil && m.Gt != nil { - return *m.Gt - } - return 0 -} - -func (m *UInt32Rules) GetGte() uint32 { - if m != nil && m.Gte != nil { - return *m.Gte - } - return 0 -} - -func (m *UInt32Rules) GetIn() []uint32 { - if m != nil { - return m.In - } - return nil -} - -func (m *UInt32Rules) GetNotIn() []uint32 { - if m != nil { - return m.NotIn - } - return nil -} - -func (m *UInt32Rules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// UInt64Rules describes the constraints applied to `uint64` values -type UInt64Rules struct { - // Const specifies that this field must be exactly the specified value - Const *uint64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *uint64 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than or equal to the - // specified value, inclusive - Lte *uint64 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive. If the value of Gt is larger than a specified Lt or Lte, the - // range is reversed. - Gt *uint64 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than or equal to the - // specified value, inclusive. If the value of Gte is larger than a - // specified Lt or Lte, the range is reversed. - Gte *uint64 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []uint64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []uint64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UInt64Rules) Reset() { *m = UInt64Rules{} } -func (m *UInt64Rules) String() string { return proto.CompactTextString(m) } -func (*UInt64Rules) ProtoMessage() {} -func (*UInt64Rules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{6} -} - -func (m *UInt64Rules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UInt64Rules.Unmarshal(m, b) -} -func (m *UInt64Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UInt64Rules.Marshal(b, m, deterministic) -} -func (m *UInt64Rules) XXX_Merge(src proto.Message) { - xxx_messageInfo_UInt64Rules.Merge(m, src) -} -func (m *UInt64Rules) XXX_Size() int { - return xxx_messageInfo_UInt64Rules.Size(m) -} -func (m *UInt64Rules) XXX_DiscardUnknown() { - xxx_messageInfo_UInt64Rules.DiscardUnknown(m) -} - -var xxx_messageInfo_UInt64Rules proto.InternalMessageInfo - -func (m *UInt64Rules) GetConst() uint64 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *UInt64Rules) GetLt() uint64 { - if m != nil && m.Lt != nil { - return *m.Lt - } - return 0 -} - -func (m *UInt64Rules) GetLte() uint64 { - if m != nil && m.Lte != nil { - return *m.Lte - } - return 0 -} - -func (m *UInt64Rules) GetGt() uint64 { - if m != nil && m.Gt != nil { - return *m.Gt - } - return 0 -} - -func (m *UInt64Rules) GetGte() uint64 { - if m != nil && m.Gte != nil { - return *m.Gte - } - return 0 -} - -func (m *UInt64Rules) GetIn() []uint64 { - if m != nil { - return m.In - } - return nil -} - -func (m *UInt64Rules) GetNotIn() []uint64 { - if m != nil { - return m.NotIn - } - return nil -} - -func (m *UInt64Rules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// SInt32Rules describes the constraints applied to `sint32` values -type SInt32Rules struct { - // Const specifies that this field must be exactly the specified value - Const *int32 `protobuf:"zigzag32,1,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *int32 `protobuf:"zigzag32,2,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than or equal to the - // specified value, inclusive - Lte *int32 `protobuf:"zigzag32,3,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive. If the value of Gt is larger than a specified Lt or Lte, the - // range is reversed. - Gt *int32 `protobuf:"zigzag32,4,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than or equal to the - // specified value, inclusive. If the value of Gte is larger than a - // specified Lt or Lte, the range is reversed. - Gte *int32 `protobuf:"zigzag32,5,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []int32 `protobuf:"zigzag32,6,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []int32 `protobuf:"zigzag32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SInt32Rules) Reset() { *m = SInt32Rules{} } -func (m *SInt32Rules) String() string { return proto.CompactTextString(m) } -func (*SInt32Rules) ProtoMessage() {} -func (*SInt32Rules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{7} -} - -func (m *SInt32Rules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SInt32Rules.Unmarshal(m, b) -} -func (m *SInt32Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SInt32Rules.Marshal(b, m, deterministic) -} -func (m *SInt32Rules) XXX_Merge(src proto.Message) { - xxx_messageInfo_SInt32Rules.Merge(m, src) -} -func (m *SInt32Rules) XXX_Size() int { - return xxx_messageInfo_SInt32Rules.Size(m) -} -func (m *SInt32Rules) XXX_DiscardUnknown() { - xxx_messageInfo_SInt32Rules.DiscardUnknown(m) -} - -var xxx_messageInfo_SInt32Rules proto.InternalMessageInfo - -func (m *SInt32Rules) GetConst() int32 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *SInt32Rules) GetLt() int32 { - if m != nil && m.Lt != nil { - return *m.Lt - } - return 0 -} - -func (m *SInt32Rules) GetLte() int32 { - if m != nil && m.Lte != nil { - return *m.Lte - } - return 0 -} - -func (m *SInt32Rules) GetGt() int32 { - if m != nil && m.Gt != nil { - return *m.Gt - } - return 0 -} - -func (m *SInt32Rules) GetGte() int32 { - if m != nil && m.Gte != nil { - return *m.Gte - } - return 0 -} - -func (m *SInt32Rules) GetIn() []int32 { - if m != nil { - return m.In - } - return nil -} - -func (m *SInt32Rules) GetNotIn() []int32 { - if m != nil { - return m.NotIn - } - return nil -} - -func (m *SInt32Rules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// SInt64Rules describes the constraints applied to `sint64` values -type SInt64Rules struct { - // Const specifies that this field must be exactly the specified value - Const *int64 `protobuf:"zigzag64,1,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *int64 `protobuf:"zigzag64,2,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than or equal to the - // specified value, inclusive - Lte *int64 `protobuf:"zigzag64,3,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive. If the value of Gt is larger than a specified Lt or Lte, the - // range is reversed. - Gt *int64 `protobuf:"zigzag64,4,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than or equal to the - // specified value, inclusive. If the value of Gte is larger than a - // specified Lt or Lte, the range is reversed. - Gte *int64 `protobuf:"zigzag64,5,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []int64 `protobuf:"zigzag64,6,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []int64 `protobuf:"zigzag64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SInt64Rules) Reset() { *m = SInt64Rules{} } -func (m *SInt64Rules) String() string { return proto.CompactTextString(m) } -func (*SInt64Rules) ProtoMessage() {} -func (*SInt64Rules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{8} -} - -func (m *SInt64Rules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SInt64Rules.Unmarshal(m, b) -} -func (m *SInt64Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SInt64Rules.Marshal(b, m, deterministic) -} -func (m *SInt64Rules) XXX_Merge(src proto.Message) { - xxx_messageInfo_SInt64Rules.Merge(m, src) -} -func (m *SInt64Rules) XXX_Size() int { - return xxx_messageInfo_SInt64Rules.Size(m) -} -func (m *SInt64Rules) XXX_DiscardUnknown() { - xxx_messageInfo_SInt64Rules.DiscardUnknown(m) -} - -var xxx_messageInfo_SInt64Rules proto.InternalMessageInfo - -func (m *SInt64Rules) GetConst() int64 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *SInt64Rules) GetLt() int64 { - if m != nil && m.Lt != nil { - return *m.Lt - } - return 0 -} - -func (m *SInt64Rules) GetLte() int64 { - if m != nil && m.Lte != nil { - return *m.Lte - } - return 0 -} - -func (m *SInt64Rules) GetGt() int64 { - if m != nil && m.Gt != nil { - return *m.Gt - } - return 0 -} - -func (m *SInt64Rules) GetGte() int64 { - if m != nil && m.Gte != nil { - return *m.Gte - } - return 0 -} - -func (m *SInt64Rules) GetIn() []int64 { - if m != nil { - return m.In - } - return nil -} - -func (m *SInt64Rules) GetNotIn() []int64 { - if m != nil { - return m.NotIn - } - return nil -} - -func (m *SInt64Rules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// Fixed32Rules describes the constraints applied to `fixed32` values -type Fixed32Rules struct { - // Const specifies that this field must be exactly the specified value - Const *uint32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *uint32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than or equal to the - // specified value, inclusive - Lte *uint32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive. If the value of Gt is larger than a specified Lt or Lte, the - // range is reversed. - Gt *uint32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than or equal to the - // specified value, inclusive. If the value of Gte is larger than a - // specified Lt or Lte, the range is reversed. - Gte *uint32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []uint32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []uint32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Fixed32Rules) Reset() { *m = Fixed32Rules{} } -func (m *Fixed32Rules) String() string { return proto.CompactTextString(m) } -func (*Fixed32Rules) ProtoMessage() {} -func (*Fixed32Rules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{9} -} - -func (m *Fixed32Rules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Fixed32Rules.Unmarshal(m, b) -} -func (m *Fixed32Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Fixed32Rules.Marshal(b, m, deterministic) -} -func (m *Fixed32Rules) XXX_Merge(src proto.Message) { - xxx_messageInfo_Fixed32Rules.Merge(m, src) -} -func (m *Fixed32Rules) XXX_Size() int { - return xxx_messageInfo_Fixed32Rules.Size(m) -} -func (m *Fixed32Rules) XXX_DiscardUnknown() { - xxx_messageInfo_Fixed32Rules.DiscardUnknown(m) -} - -var xxx_messageInfo_Fixed32Rules proto.InternalMessageInfo - -func (m *Fixed32Rules) GetConst() uint32 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *Fixed32Rules) GetLt() uint32 { - if m != nil && m.Lt != nil { - return *m.Lt - } - return 0 -} - -func (m *Fixed32Rules) GetLte() uint32 { - if m != nil && m.Lte != nil { - return *m.Lte - } - return 0 -} - -func (m *Fixed32Rules) GetGt() uint32 { - if m != nil && m.Gt != nil { - return *m.Gt - } - return 0 -} - -func (m *Fixed32Rules) GetGte() uint32 { - if m != nil && m.Gte != nil { - return *m.Gte - } - return 0 -} - -func (m *Fixed32Rules) GetIn() []uint32 { - if m != nil { - return m.In - } - return nil -} - -func (m *Fixed32Rules) GetNotIn() []uint32 { - if m != nil { - return m.NotIn - } - return nil -} - -func (m *Fixed32Rules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// Fixed64Rules describes the constraints applied to `fixed64` values -type Fixed64Rules struct { - // Const specifies that this field must be exactly the specified value - Const *uint64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *uint64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than or equal to the - // specified value, inclusive - Lte *uint64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive. If the value of Gt is larger than a specified Lt or Lte, the - // range is reversed. - Gt *uint64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than or equal to the - // specified value, inclusive. If the value of Gte is larger than a - // specified Lt or Lte, the range is reversed. - Gte *uint64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []uint64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []uint64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Fixed64Rules) Reset() { *m = Fixed64Rules{} } -func (m *Fixed64Rules) String() string { return proto.CompactTextString(m) } -func (*Fixed64Rules) ProtoMessage() {} -func (*Fixed64Rules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{10} -} - -func (m *Fixed64Rules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Fixed64Rules.Unmarshal(m, b) -} -func (m *Fixed64Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Fixed64Rules.Marshal(b, m, deterministic) -} -func (m *Fixed64Rules) XXX_Merge(src proto.Message) { - xxx_messageInfo_Fixed64Rules.Merge(m, src) -} -func (m *Fixed64Rules) XXX_Size() int { - return xxx_messageInfo_Fixed64Rules.Size(m) -} -func (m *Fixed64Rules) XXX_DiscardUnknown() { - xxx_messageInfo_Fixed64Rules.DiscardUnknown(m) -} - -var xxx_messageInfo_Fixed64Rules proto.InternalMessageInfo - -func (m *Fixed64Rules) GetConst() uint64 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *Fixed64Rules) GetLt() uint64 { - if m != nil && m.Lt != nil { - return *m.Lt - } - return 0 -} - -func (m *Fixed64Rules) GetLte() uint64 { - if m != nil && m.Lte != nil { - return *m.Lte - } - return 0 -} - -func (m *Fixed64Rules) GetGt() uint64 { - if m != nil && m.Gt != nil { - return *m.Gt - } - return 0 -} - -func (m *Fixed64Rules) GetGte() uint64 { - if m != nil && m.Gte != nil { - return *m.Gte - } - return 0 -} - -func (m *Fixed64Rules) GetIn() []uint64 { - if m != nil { - return m.In - } - return nil -} - -func (m *Fixed64Rules) GetNotIn() []uint64 { - if m != nil { - return m.NotIn - } - return nil -} - -func (m *Fixed64Rules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// SFixed32Rules describes the constraints applied to `sfixed32` values -type SFixed32Rules struct { - // Const specifies that this field must be exactly the specified value - Const *int32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *int32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than or equal to the - // specified value, inclusive - Lte *int32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive. If the value of Gt is larger than a specified Lt or Lte, the - // range is reversed. - Gt *int32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than or equal to the - // specified value, inclusive. If the value of Gte is larger than a - // specified Lt or Lte, the range is reversed. - Gte *int32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []int32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []int32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SFixed32Rules) Reset() { *m = SFixed32Rules{} } -func (m *SFixed32Rules) String() string { return proto.CompactTextString(m) } -func (*SFixed32Rules) ProtoMessage() {} -func (*SFixed32Rules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{11} -} - -func (m *SFixed32Rules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SFixed32Rules.Unmarshal(m, b) -} -func (m *SFixed32Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SFixed32Rules.Marshal(b, m, deterministic) -} -func (m *SFixed32Rules) XXX_Merge(src proto.Message) { - xxx_messageInfo_SFixed32Rules.Merge(m, src) -} -func (m *SFixed32Rules) XXX_Size() int { - return xxx_messageInfo_SFixed32Rules.Size(m) -} -func (m *SFixed32Rules) XXX_DiscardUnknown() { - xxx_messageInfo_SFixed32Rules.DiscardUnknown(m) -} - -var xxx_messageInfo_SFixed32Rules proto.InternalMessageInfo - -func (m *SFixed32Rules) GetConst() int32 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *SFixed32Rules) GetLt() int32 { - if m != nil && m.Lt != nil { - return *m.Lt - } - return 0 -} - -func (m *SFixed32Rules) GetLte() int32 { - if m != nil && m.Lte != nil { - return *m.Lte - } - return 0 -} - -func (m *SFixed32Rules) GetGt() int32 { - if m != nil && m.Gt != nil { - return *m.Gt - } - return 0 -} - -func (m *SFixed32Rules) GetGte() int32 { - if m != nil && m.Gte != nil { - return *m.Gte - } - return 0 -} - -func (m *SFixed32Rules) GetIn() []int32 { - if m != nil { - return m.In - } - return nil -} - -func (m *SFixed32Rules) GetNotIn() []int32 { - if m != nil { - return m.NotIn - } - return nil -} - -func (m *SFixed32Rules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// SFixed64Rules describes the constraints applied to `sfixed64` values -type SFixed64Rules struct { - // Const specifies that this field must be exactly the specified value - Const *int64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *int64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than or equal to the - // specified value, inclusive - Lte *int64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive. If the value of Gt is larger than a specified Lt or Lte, the - // range is reversed. - Gt *int64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than or equal to the - // specified value, inclusive. If the value of Gte is larger than a - // specified Lt or Lte, the range is reversed. - Gte *int64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []int64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []int64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SFixed64Rules) Reset() { *m = SFixed64Rules{} } -func (m *SFixed64Rules) String() string { return proto.CompactTextString(m) } -func (*SFixed64Rules) ProtoMessage() {} -func (*SFixed64Rules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{12} -} - -func (m *SFixed64Rules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SFixed64Rules.Unmarshal(m, b) -} -func (m *SFixed64Rules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SFixed64Rules.Marshal(b, m, deterministic) -} -func (m *SFixed64Rules) XXX_Merge(src proto.Message) { - xxx_messageInfo_SFixed64Rules.Merge(m, src) -} -func (m *SFixed64Rules) XXX_Size() int { - return xxx_messageInfo_SFixed64Rules.Size(m) -} -func (m *SFixed64Rules) XXX_DiscardUnknown() { - xxx_messageInfo_SFixed64Rules.DiscardUnknown(m) -} - -var xxx_messageInfo_SFixed64Rules proto.InternalMessageInfo - -func (m *SFixed64Rules) GetConst() int64 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *SFixed64Rules) GetLt() int64 { - if m != nil && m.Lt != nil { - return *m.Lt - } - return 0 -} - -func (m *SFixed64Rules) GetLte() int64 { - if m != nil && m.Lte != nil { - return *m.Lte - } - return 0 -} - -func (m *SFixed64Rules) GetGt() int64 { - if m != nil && m.Gt != nil { - return *m.Gt - } - return 0 -} - -func (m *SFixed64Rules) GetGte() int64 { - if m != nil && m.Gte != nil { - return *m.Gte - } - return 0 -} - -func (m *SFixed64Rules) GetIn() []int64 { - if m != nil { - return m.In - } - return nil -} - -func (m *SFixed64Rules) GetNotIn() []int64 { - if m != nil { - return m.NotIn - } - return nil -} - -func (m *SFixed64Rules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// BoolRules describes the constraints applied to `bool` values -type BoolRules struct { - // Const specifies that this field must be exactly the specified value - Const *bool `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *BoolRules) Reset() { *m = BoolRules{} } -func (m *BoolRules) String() string { return proto.CompactTextString(m) } -func (*BoolRules) ProtoMessage() {} -func (*BoolRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{13} -} - -func (m *BoolRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BoolRules.Unmarshal(m, b) -} -func (m *BoolRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BoolRules.Marshal(b, m, deterministic) -} -func (m *BoolRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_BoolRules.Merge(m, src) -} -func (m *BoolRules) XXX_Size() int { - return xxx_messageInfo_BoolRules.Size(m) -} -func (m *BoolRules) XXX_DiscardUnknown() { - xxx_messageInfo_BoolRules.DiscardUnknown(m) -} - -var xxx_messageInfo_BoolRules proto.InternalMessageInfo - -func (m *BoolRules) GetConst() bool { - if m != nil && m.Const != nil { - return *m.Const - } - return false -} - -// StringRules describe the constraints applied to `string` values -type StringRules struct { - // Const specifies that this field must be exactly the specified value - Const *string `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"` - // Len specifies that this field must be the specified number of - // characters (Unicode code points). Note that the number of - // characters may differ from the number of bytes in the string. - Len *uint64 `protobuf:"varint,19,opt,name=len" json:"len,omitempty"` - // MinLen specifies that this field must be the specified number of - // characters (Unicode code points) at a minimum. Note that the number of - // characters may differ from the number of bytes in the string. - MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"` - // MaxLen specifies that this field must be the specified number of - // characters (Unicode code points) at a maximum. Note that the number of - // characters may differ from the number of bytes in the string. - MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"` - // LenBytes specifies that this field must be the specified number of bytes - // at a minimum - LenBytes *uint64 `protobuf:"varint,20,opt,name=len_bytes,json=lenBytes" json:"len_bytes,omitempty"` - // MinBytes specifies that this field must be the specified number of bytes - // at a minimum - MinBytes *uint64 `protobuf:"varint,4,opt,name=min_bytes,json=minBytes" json:"min_bytes,omitempty"` - // MaxBytes specifies that this field must be the specified number of bytes - // at a maximum - MaxBytes *uint64 `protobuf:"varint,5,opt,name=max_bytes,json=maxBytes" json:"max_bytes,omitempty"` - // Pattern specifes that this field must match against the specified - // regular expression (RE2 syntax). The included expression should elide - // any delimiters. - Pattern *string `protobuf:"bytes,6,opt,name=pattern" json:"pattern,omitempty"` - // Prefix specifies that this field must have the specified substring at - // the beginning of the string. - Prefix *string `protobuf:"bytes,7,opt,name=prefix" json:"prefix,omitempty"` - // Suffix specifies that this field must have the specified substring at - // the end of the string. - Suffix *string `protobuf:"bytes,8,opt,name=suffix" json:"suffix,omitempty"` - // Contains specifies that this field must have the specified substring - // anywhere in the string. - Contains *string `protobuf:"bytes,9,opt,name=contains" json:"contains,omitempty"` - // NotContains specifies that this field cannot have the specified substring - // anywhere in the string. - NotContains *string `protobuf:"bytes,23,opt,name=not_contains,json=notContains" json:"not_contains,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []string `protobuf:"bytes,10,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []string `protobuf:"bytes,11,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // WellKnown rules provide advanced constraints against common string - // patterns - // - // Types that are valid to be assigned to WellKnown: - // *StringRules_Email - // *StringRules_Hostname - // *StringRules_Ip - // *StringRules_Ipv4 - // *StringRules_Ipv6 - // *StringRules_Uri - // *StringRules_UriRef - // *StringRules_Address - // *StringRules_Uuid - // *StringRules_WellKnownRegex - // *StringRules_Alphabets - // *StringRules_Alphanums - // *StringRules_Lowercase - // *StringRules_Tsecstr - WellKnown isStringRules_WellKnown `protobuf_oneof:"well_known"` - // This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable - // strict header validation. - // By default, this is true, and HTTP header validations are RFC-compliant. - // Setting to false will enable a looser validations that only disallows - // \r\n\0 characters, which can be used to bypass header matching rules. - Strict *bool `protobuf:"varint,25,opt,name=strict,def=1" json:"strict,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,26,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *StringRules) Reset() { *m = StringRules{} } -func (m *StringRules) String() string { return proto.CompactTextString(m) } -func (*StringRules) ProtoMessage() {} -func (*StringRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{14} -} - -func (m *StringRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_StringRules.Unmarshal(m, b) -} -func (m *StringRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_StringRules.Marshal(b, m, deterministic) -} -func (m *StringRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_StringRules.Merge(m, src) -} -func (m *StringRules) XXX_Size() int { - return xxx_messageInfo_StringRules.Size(m) -} -func (m *StringRules) XXX_DiscardUnknown() { - xxx_messageInfo_StringRules.DiscardUnknown(m) -} - -var xxx_messageInfo_StringRules proto.InternalMessageInfo - -const Default_StringRules_Strict bool = true - -func (m *StringRules) GetConst() string { - if m != nil && m.Const != nil { - return *m.Const - } - return "" -} - -func (m *StringRules) GetLen() uint64 { - if m != nil && m.Len != nil { - return *m.Len - } - return 0 -} - -func (m *StringRules) GetMinLen() uint64 { - if m != nil && m.MinLen != nil { - return *m.MinLen - } - return 0 -} - -func (m *StringRules) GetMaxLen() uint64 { - if m != nil && m.MaxLen != nil { - return *m.MaxLen - } - return 0 -} - -func (m *StringRules) GetLenBytes() uint64 { - if m != nil && m.LenBytes != nil { - return *m.LenBytes - } - return 0 -} - -func (m *StringRules) GetMinBytes() uint64 { - if m != nil && m.MinBytes != nil { - return *m.MinBytes - } - return 0 -} - -func (m *StringRules) GetMaxBytes() uint64 { - if m != nil && m.MaxBytes != nil { - return *m.MaxBytes - } - return 0 -} - -func (m *StringRules) GetPattern() string { - if m != nil && m.Pattern != nil { - return *m.Pattern - } - return "" -} - -func (m *StringRules) GetPrefix() string { - if m != nil && m.Prefix != nil { - return *m.Prefix - } - return "" -} - -func (m *StringRules) GetSuffix() string { - if m != nil && m.Suffix != nil { - return *m.Suffix - } - return "" -} - -func (m *StringRules) GetContains() string { - if m != nil && m.Contains != nil { - return *m.Contains - } - return "" -} - -func (m *StringRules) GetNotContains() string { - if m != nil && m.NotContains != nil { - return *m.NotContains - } - return "" -} - -func (m *StringRules) GetIn() []string { - if m != nil { - return m.In - } - return nil -} - -func (m *StringRules) GetNotIn() []string { - if m != nil { - return m.NotIn - } - return nil -} - -type isStringRules_WellKnown interface { - isStringRules_WellKnown() -} - -type StringRules_Email struct { - Email bool `protobuf:"varint,12,opt,name=email,oneof"` -} - -type StringRules_Hostname struct { - Hostname bool `protobuf:"varint,13,opt,name=hostname,oneof"` -} - -type StringRules_Ip struct { - Ip bool `protobuf:"varint,14,opt,name=ip,oneof"` -} - -type StringRules_Ipv4 struct { - Ipv4 bool `protobuf:"varint,15,opt,name=ipv4,oneof"` -} - -type StringRules_Ipv6 struct { - Ipv6 bool `protobuf:"varint,16,opt,name=ipv6,oneof"` -} - -type StringRules_Uri struct { - Uri bool `protobuf:"varint,17,opt,name=uri,oneof"` -} - -type StringRules_UriRef struct { - UriRef bool `protobuf:"varint,18,opt,name=uri_ref,json=uriRef,oneof"` -} - -type StringRules_Address struct { - Address bool `protobuf:"varint,21,opt,name=address,oneof"` -} - -type StringRules_Uuid struct { - Uuid bool `protobuf:"varint,22,opt,name=uuid,oneof"` -} - -type StringRules_WellKnownRegex struct { - WellKnownRegex KnownRegex `protobuf:"varint,24,opt,name=well_known_regex,json=wellKnownRegex,enum=trpc.KnownRegex,oneof"` -} - -type StringRules_Alphabets struct { - Alphabets bool `protobuf:"varint,27,opt,name=alphabets,oneof"` -} - -type StringRules_Alphanums struct { - Alphanums bool `protobuf:"varint,28,opt,name=alphanums,oneof"` -} - -type StringRules_Lowercase struct { - Lowercase bool `protobuf:"varint,29,opt,name=lowercase,oneof"` -} - -type StringRules_Tsecstr struct { - Tsecstr bool `protobuf:"varint,30,opt,name=tsecstr,oneof"` -} - -func (*StringRules_Email) isStringRules_WellKnown() {} - -func (*StringRules_Hostname) isStringRules_WellKnown() {} - -func (*StringRules_Ip) isStringRules_WellKnown() {} - -func (*StringRules_Ipv4) isStringRules_WellKnown() {} - -func (*StringRules_Ipv6) isStringRules_WellKnown() {} - -func (*StringRules_Uri) isStringRules_WellKnown() {} - -func (*StringRules_UriRef) isStringRules_WellKnown() {} - -func (*StringRules_Address) isStringRules_WellKnown() {} - -func (*StringRules_Uuid) isStringRules_WellKnown() {} - -func (*StringRules_WellKnownRegex) isStringRules_WellKnown() {} - -func (*StringRules_Alphabets) isStringRules_WellKnown() {} - -func (*StringRules_Alphanums) isStringRules_WellKnown() {} - -func (*StringRules_Lowercase) isStringRules_WellKnown() {} - -func (*StringRules_Tsecstr) isStringRules_WellKnown() {} - -func (m *StringRules) GetWellKnown() isStringRules_WellKnown { - if m != nil { - return m.WellKnown - } - return nil -} - -func (m *StringRules) GetEmail() bool { - if x, ok := m.GetWellKnown().(*StringRules_Email); ok { - return x.Email - } - return false -} - -func (m *StringRules) GetHostname() bool { - if x, ok := m.GetWellKnown().(*StringRules_Hostname); ok { - return x.Hostname - } - return false -} - -func (m *StringRules) GetIp() bool { - if x, ok := m.GetWellKnown().(*StringRules_Ip); ok { - return x.Ip - } - return false -} - -func (m *StringRules) GetIpv4() bool { - if x, ok := m.GetWellKnown().(*StringRules_Ipv4); ok { - return x.Ipv4 - } - return false -} - -func (m *StringRules) GetIpv6() bool { - if x, ok := m.GetWellKnown().(*StringRules_Ipv6); ok { - return x.Ipv6 - } - return false -} - -func (m *StringRules) GetUri() bool { - if x, ok := m.GetWellKnown().(*StringRules_Uri); ok { - return x.Uri - } - return false -} - -func (m *StringRules) GetUriRef() bool { - if x, ok := m.GetWellKnown().(*StringRules_UriRef); ok { - return x.UriRef - } - return false -} - -func (m *StringRules) GetAddress() bool { - if x, ok := m.GetWellKnown().(*StringRules_Address); ok { - return x.Address - } - return false -} - -func (m *StringRules) GetUuid() bool { - if x, ok := m.GetWellKnown().(*StringRules_Uuid); ok { - return x.Uuid - } - return false -} - -func (m *StringRules) GetWellKnownRegex() KnownRegex { - if x, ok := m.GetWellKnown().(*StringRules_WellKnownRegex); ok { - return x.WellKnownRegex - } - return KnownRegex_UNKNOWN -} - -func (m *StringRules) GetAlphabets() bool { - if x, ok := m.GetWellKnown().(*StringRules_Alphabets); ok { - return x.Alphabets - } - return false -} - -func (m *StringRules) GetAlphanums() bool { - if x, ok := m.GetWellKnown().(*StringRules_Alphanums); ok { - return x.Alphanums - } - return false -} - -func (m *StringRules) GetLowercase() bool { - if x, ok := m.GetWellKnown().(*StringRules_Lowercase); ok { - return x.Lowercase - } - return false -} - -func (m *StringRules) GetTsecstr() bool { - if x, ok := m.GetWellKnown().(*StringRules_Tsecstr); ok { - return x.Tsecstr - } - return false -} - -func (m *StringRules) GetStrict() bool { - if m != nil && m.Strict != nil { - return *m.Strict - } - return Default_StringRules_Strict -} - -func (m *StringRules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*StringRules) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*StringRules_Email)(nil), - (*StringRules_Hostname)(nil), - (*StringRules_Ip)(nil), - (*StringRules_Ipv4)(nil), - (*StringRules_Ipv6)(nil), - (*StringRules_Uri)(nil), - (*StringRules_UriRef)(nil), - (*StringRules_Address)(nil), - (*StringRules_Uuid)(nil), - (*StringRules_WellKnownRegex)(nil), - (*StringRules_Alphabets)(nil), - (*StringRules_Alphanums)(nil), - (*StringRules_Lowercase)(nil), - (*StringRules_Tsecstr)(nil), - } -} - -// BytesRules describe the constraints applied to `bytes` values -type BytesRules struct { - // Const specifies that this field must be exactly the specified value - Const []byte `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"` - // Len specifies that this field must be the specified number of bytes - Len *uint64 `protobuf:"varint,13,opt,name=len" json:"len,omitempty"` - // MinLen specifies that this field must be the specified number of bytes - // at a minimum - MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"` - // MaxLen specifies that this field must be the specified number of bytes - // at a maximum - MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"` - // Pattern specifes that this field must match against the specified - // regular expression (RE2 syntax). The included expression should elide - // any delimiters. - Pattern *string `protobuf:"bytes,4,opt,name=pattern" json:"pattern,omitempty"` - // Prefix specifies that this field must have the specified bytes at the - // beginning of the string. - Prefix []byte `protobuf:"bytes,5,opt,name=prefix" json:"prefix,omitempty"` - // Suffix specifies that this field must have the specified bytes at the - // end of the string. - Suffix []byte `protobuf:"bytes,6,opt,name=suffix" json:"suffix,omitempty"` - // Contains specifies that this field must have the specified bytes - // anywhere in the string. - Contains []byte `protobuf:"bytes,7,opt,name=contains" json:"contains,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In [][]byte `protobuf:"bytes,8,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn [][]byte `protobuf:"bytes,9,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - // WellKnown rules provide advanced constraints against common byte - // patterns - // - // Types that are valid to be assigned to WellKnown: - // *BytesRules_Ip - // *BytesRules_Ipv4 - // *BytesRules_Ipv6 - WellKnown isBytesRules_WellKnown `protobuf_oneof:"well_known"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,14,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *BytesRules) Reset() { *m = BytesRules{} } -func (m *BytesRules) String() string { return proto.CompactTextString(m) } -func (*BytesRules) ProtoMessage() {} -func (*BytesRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{15} -} - -func (m *BytesRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BytesRules.Unmarshal(m, b) -} -func (m *BytesRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BytesRules.Marshal(b, m, deterministic) -} -func (m *BytesRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_BytesRules.Merge(m, src) -} -func (m *BytesRules) XXX_Size() int { - return xxx_messageInfo_BytesRules.Size(m) -} -func (m *BytesRules) XXX_DiscardUnknown() { - xxx_messageInfo_BytesRules.DiscardUnknown(m) -} - -var xxx_messageInfo_BytesRules proto.InternalMessageInfo - -func (m *BytesRules) GetConst() []byte { - if m != nil { - return m.Const - } - return nil -} - -func (m *BytesRules) GetLen() uint64 { - if m != nil && m.Len != nil { - return *m.Len - } - return 0 -} - -func (m *BytesRules) GetMinLen() uint64 { - if m != nil && m.MinLen != nil { - return *m.MinLen - } - return 0 -} - -func (m *BytesRules) GetMaxLen() uint64 { - if m != nil && m.MaxLen != nil { - return *m.MaxLen - } - return 0 -} - -func (m *BytesRules) GetPattern() string { - if m != nil && m.Pattern != nil { - return *m.Pattern - } - return "" -} - -func (m *BytesRules) GetPrefix() []byte { - if m != nil { - return m.Prefix - } - return nil -} - -func (m *BytesRules) GetSuffix() []byte { - if m != nil { - return m.Suffix - } - return nil -} - -func (m *BytesRules) GetContains() []byte { - if m != nil { - return m.Contains - } - return nil -} - -func (m *BytesRules) GetIn() [][]byte { - if m != nil { - return m.In - } - return nil -} - -func (m *BytesRules) GetNotIn() [][]byte { - if m != nil { - return m.NotIn - } - return nil -} - -type isBytesRules_WellKnown interface { - isBytesRules_WellKnown() -} - -type BytesRules_Ip struct { - Ip bool `protobuf:"varint,10,opt,name=ip,oneof"` -} - -type BytesRules_Ipv4 struct { - Ipv4 bool `protobuf:"varint,11,opt,name=ipv4,oneof"` -} - -type BytesRules_Ipv6 struct { - Ipv6 bool `protobuf:"varint,12,opt,name=ipv6,oneof"` -} - -func (*BytesRules_Ip) isBytesRules_WellKnown() {} - -func (*BytesRules_Ipv4) isBytesRules_WellKnown() {} - -func (*BytesRules_Ipv6) isBytesRules_WellKnown() {} - -func (m *BytesRules) GetWellKnown() isBytesRules_WellKnown { - if m != nil { - return m.WellKnown - } - return nil -} - -func (m *BytesRules) GetIp() bool { - if x, ok := m.GetWellKnown().(*BytesRules_Ip); ok { - return x.Ip - } - return false -} - -func (m *BytesRules) GetIpv4() bool { - if x, ok := m.GetWellKnown().(*BytesRules_Ipv4); ok { - return x.Ipv4 - } - return false -} - -func (m *BytesRules) GetIpv6() bool { - if x, ok := m.GetWellKnown().(*BytesRules_Ipv6); ok { - return x.Ipv6 - } - return false -} - -func (m *BytesRules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*BytesRules) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*BytesRules_Ip)(nil), - (*BytesRules_Ipv4)(nil), - (*BytesRules_Ipv6)(nil), - } -} - -// EnumRules describe the constraints applied to enum values -type EnumRules struct { - // Const specifies that this field must be exactly the specified value - Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` - // DefinedOnly specifies that this field must be only one of the defined - // values for this enum, failing on any undefined value. - DefinedOnly *bool `protobuf:"varint,2,opt,name=defined_only,json=definedOnly" json:"defined_only,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []int32 `protobuf:"varint,3,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []int32 `protobuf:"varint,4,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *EnumRules) Reset() { *m = EnumRules{} } -func (m *EnumRules) String() string { return proto.CompactTextString(m) } -func (*EnumRules) ProtoMessage() {} -func (*EnumRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{16} -} - -func (m *EnumRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_EnumRules.Unmarshal(m, b) -} -func (m *EnumRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_EnumRules.Marshal(b, m, deterministic) -} -func (m *EnumRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_EnumRules.Merge(m, src) -} -func (m *EnumRules) XXX_Size() int { - return xxx_messageInfo_EnumRules.Size(m) -} -func (m *EnumRules) XXX_DiscardUnknown() { - xxx_messageInfo_EnumRules.DiscardUnknown(m) -} - -var xxx_messageInfo_EnumRules proto.InternalMessageInfo - -func (m *EnumRules) GetConst() int32 { - if m != nil && m.Const != nil { - return *m.Const - } - return 0 -} - -func (m *EnumRules) GetDefinedOnly() bool { - if m != nil && m.DefinedOnly != nil { - return *m.DefinedOnly - } - return false -} - -func (m *EnumRules) GetIn() []int32 { - if m != nil { - return m.In - } - return nil -} - -func (m *EnumRules) GetNotIn() []int32 { - if m != nil { - return m.NotIn - } - return nil -} - -// MessageRules describe the constraints applied to embedded message values. -// For message-type fields, validation is performed recursively. -type MessageRules struct { - // Skip specifies that the validation rules of this field should not be - // evaluated - Skip *bool `protobuf:"varint,1,opt,name=skip" json:"skip,omitempty"` - // Required specifies that this field must be set - Required *bool `protobuf:"varint,2,opt,name=required" json:"required,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MessageRules) Reset() { *m = MessageRules{} } -func (m *MessageRules) String() string { return proto.CompactTextString(m) } -func (*MessageRules) ProtoMessage() {} -func (*MessageRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{17} -} - -func (m *MessageRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MessageRules.Unmarshal(m, b) -} -func (m *MessageRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MessageRules.Marshal(b, m, deterministic) -} -func (m *MessageRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_MessageRules.Merge(m, src) -} -func (m *MessageRules) XXX_Size() int { - return xxx_messageInfo_MessageRules.Size(m) -} -func (m *MessageRules) XXX_DiscardUnknown() { - xxx_messageInfo_MessageRules.DiscardUnknown(m) -} - -var xxx_messageInfo_MessageRules proto.InternalMessageInfo - -func (m *MessageRules) GetSkip() bool { - if m != nil && m.Skip != nil { - return *m.Skip - } - return false -} - -func (m *MessageRules) GetRequired() bool { - if m != nil && m.Required != nil { - return *m.Required - } - return false -} - -// RepeatedRules describe the constraints applied to `repeated` values -type RepeatedRules struct { - // MinItems specifies that this field must have the specified number of - // items at a minimum - MinItems *uint64 `protobuf:"varint,1,opt,name=min_items,json=minItems" json:"min_items,omitempty"` - // MaxItems specifies that this field must have the specified number of - // items at a maximum - MaxItems *uint64 `protobuf:"varint,2,opt,name=max_items,json=maxItems" json:"max_items,omitempty"` - // Unique specifies that all elements in this field must be unique. This - // contraint is only applicable to scalar and enum types (messages are not - // supported). - Unique *bool `protobuf:"varint,3,opt,name=unique" json:"unique,omitempty"` - // Items specifies the contraints to be applied to each item in the field. - // Repeated message fields will still execute validation against each item - // unless skip is specified here. - Items *FieldRules `protobuf:"bytes,4,opt,name=items" json:"items,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,5,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *RepeatedRules) Reset() { *m = RepeatedRules{} } -func (m *RepeatedRules) String() string { return proto.CompactTextString(m) } -func (*RepeatedRules) ProtoMessage() {} -func (*RepeatedRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{18} -} - -func (m *RepeatedRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RepeatedRules.Unmarshal(m, b) -} -func (m *RepeatedRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RepeatedRules.Marshal(b, m, deterministic) -} -func (m *RepeatedRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_RepeatedRules.Merge(m, src) -} -func (m *RepeatedRules) XXX_Size() int { - return xxx_messageInfo_RepeatedRules.Size(m) -} -func (m *RepeatedRules) XXX_DiscardUnknown() { - xxx_messageInfo_RepeatedRules.DiscardUnknown(m) -} - -var xxx_messageInfo_RepeatedRules proto.InternalMessageInfo - -func (m *RepeatedRules) GetMinItems() uint64 { - if m != nil && m.MinItems != nil { - return *m.MinItems - } - return 0 -} - -func (m *RepeatedRules) GetMaxItems() uint64 { - if m != nil && m.MaxItems != nil { - return *m.MaxItems - } - return 0 -} - -func (m *RepeatedRules) GetUnique() bool { - if m != nil && m.Unique != nil { - return *m.Unique - } - return false -} - -func (m *RepeatedRules) GetItems() *FieldRules { - if m != nil { - return m.Items - } - return nil -} - -func (m *RepeatedRules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// MapRules describe the constraints applied to `map` values -type MapRules struct { - // MinPairs specifies that this field must have the specified number of - // KVs at a minimum - MinPairs *uint64 `protobuf:"varint,1,opt,name=min_pairs,json=minPairs" json:"min_pairs,omitempty"` - // MaxPairs specifies that this field must have the specified number of - // KVs at a maximum - MaxPairs *uint64 `protobuf:"varint,2,opt,name=max_pairs,json=maxPairs" json:"max_pairs,omitempty"` - // NoSparse specifies values in this field cannot be unset. This only - // applies to map's with message value types. - NoSparse *bool `protobuf:"varint,3,opt,name=no_sparse,json=noSparse" json:"no_sparse,omitempty"` - // Keys specifies the constraints to be applied to each key in the field. - Keys *FieldRules `protobuf:"bytes,4,opt,name=keys" json:"keys,omitempty"` - // Values specifies the constraints to be applied to the value of each key - // in the field. Message values will still have their validations evaluated - // unless skip is specified here. - Values *FieldRules `protobuf:"bytes,5,opt,name=values" json:"values,omitempty"` - // IgnoreEmpty specifies that the validation rules of this field should be - // evaluated only if the field is not empty - IgnoreEmpty *bool `protobuf:"varint,6,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MapRules) Reset() { *m = MapRules{} } -func (m *MapRules) String() string { return proto.CompactTextString(m) } -func (*MapRules) ProtoMessage() {} -func (*MapRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{19} -} - -func (m *MapRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MapRules.Unmarshal(m, b) -} -func (m *MapRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MapRules.Marshal(b, m, deterministic) -} -func (m *MapRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_MapRules.Merge(m, src) -} -func (m *MapRules) XXX_Size() int { - return xxx_messageInfo_MapRules.Size(m) -} -func (m *MapRules) XXX_DiscardUnknown() { - xxx_messageInfo_MapRules.DiscardUnknown(m) -} - -var xxx_messageInfo_MapRules proto.InternalMessageInfo - -func (m *MapRules) GetMinPairs() uint64 { - if m != nil && m.MinPairs != nil { - return *m.MinPairs - } - return 0 -} - -func (m *MapRules) GetMaxPairs() uint64 { - if m != nil && m.MaxPairs != nil { - return *m.MaxPairs - } - return 0 -} - -func (m *MapRules) GetNoSparse() bool { - if m != nil && m.NoSparse != nil { - return *m.NoSparse - } - return false -} - -func (m *MapRules) GetKeys() *FieldRules { - if m != nil { - return m.Keys - } - return nil -} - -func (m *MapRules) GetValues() *FieldRules { - if m != nil { - return m.Values - } - return nil -} - -func (m *MapRules) GetIgnoreEmpty() bool { - if m != nil && m.IgnoreEmpty != nil { - return *m.IgnoreEmpty - } - return false -} - -// AnyRules describe constraints applied exclusively to the -// `google.protobuf.Any` well-known type -type AnyRules struct { - // Required specifies that this field must be set - Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` - // In specifies that this field's `type_url` must be equal to one of the - // specified values. - In []string `protobuf:"bytes,2,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field's `type_url` must not be equal to any of - // the specified values. - NotIn []string `protobuf:"bytes,3,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AnyRules) Reset() { *m = AnyRules{} } -func (m *AnyRules) String() string { return proto.CompactTextString(m) } -func (*AnyRules) ProtoMessage() {} -func (*AnyRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{20} -} - -func (m *AnyRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AnyRules.Unmarshal(m, b) -} -func (m *AnyRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AnyRules.Marshal(b, m, deterministic) -} -func (m *AnyRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_AnyRules.Merge(m, src) -} -func (m *AnyRules) XXX_Size() int { - return xxx_messageInfo_AnyRules.Size(m) -} -func (m *AnyRules) XXX_DiscardUnknown() { - xxx_messageInfo_AnyRules.DiscardUnknown(m) -} - -var xxx_messageInfo_AnyRules proto.InternalMessageInfo - -func (m *AnyRules) GetRequired() bool { - if m != nil && m.Required != nil { - return *m.Required - } - return false -} - -func (m *AnyRules) GetIn() []string { - if m != nil { - return m.In - } - return nil -} - -func (m *AnyRules) GetNotIn() []string { - if m != nil { - return m.NotIn - } - return nil -} - -// DurationRules describe the constraints applied exclusively to the -// `google.protobuf.Duration` well-known type -type DurationRules struct { - // Required specifies that this field must be set - Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` - // Const specifies that this field must be exactly the specified value - Const *durationpb.Duration `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *durationpb.Duration `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` - // Lt specifies that this field must be less than the specified value, - // inclusive - Lte *durationpb.Duration `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive - Gt *durationpb.Duration `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than the specified value, - // inclusive - Gte *durationpb.Duration `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` - // In specifies that this field must be equal to one of the specified - // values - In []*durationpb.Duration `protobuf:"bytes,7,rep,name=in" json:"in,omitempty"` - // NotIn specifies that this field cannot be equal to one of the specified - // values - NotIn []*durationpb.Duration `protobuf:"bytes,8,rep,name=not_in,json=notIn" json:"not_in,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DurationRules) Reset() { *m = DurationRules{} } -func (m *DurationRules) String() string { return proto.CompactTextString(m) } -func (*DurationRules) ProtoMessage() {} -func (*DurationRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{21} -} - -func (m *DurationRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DurationRules.Unmarshal(m, b) -} -func (m *DurationRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DurationRules.Marshal(b, m, deterministic) -} -func (m *DurationRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_DurationRules.Merge(m, src) -} -func (m *DurationRules) XXX_Size() int { - return xxx_messageInfo_DurationRules.Size(m) -} -func (m *DurationRules) XXX_DiscardUnknown() { - xxx_messageInfo_DurationRules.DiscardUnknown(m) -} - -var xxx_messageInfo_DurationRules proto.InternalMessageInfo - -func (m *DurationRules) GetRequired() bool { - if m != nil && m.Required != nil { - return *m.Required - } - return false -} - -func (m *DurationRules) GetConst() *durationpb.Duration { - if m != nil { - return m.Const - } - return nil -} - -func (m *DurationRules) GetLt() *durationpb.Duration { - if m != nil { - return m.Lt - } - return nil -} - -func (m *DurationRules) GetLte() *durationpb.Duration { - if m != nil { - return m.Lte - } - return nil -} - -func (m *DurationRules) GetGt() *durationpb.Duration { - if m != nil { - return m.Gt - } - return nil -} - -func (m *DurationRules) GetGte() *durationpb.Duration { - if m != nil { - return m.Gte - } - return nil -} - -func (m *DurationRules) GetIn() []*durationpb.Duration { - if m != nil { - return m.In - } - return nil -} - -func (m *DurationRules) GetNotIn() []*durationpb.Duration { - if m != nil { - return m.NotIn - } - return nil -} - -// TimestampRules describe the constraints applied exclusively to the -// `google.protobuf.Timestamp` well-known type -type TimestampRules struct { - // Required specifies that this field must be set - Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` - // Const specifies that this field must be exactly the specified value - Const *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` - // Lt specifies that this field must be less than the specified value, - // exclusive - Lt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` - // Lte specifies that this field must be less than the specified value, - // inclusive - Lte *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` - // Gt specifies that this field must be greater than the specified value, - // exclusive - Gt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` - // Gte specifies that this field must be greater than the specified value, - // inclusive - Gte *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` - // LtNow specifies that this must be less than the current time. LtNow - // can only be used with the Within rule. - LtNow *bool `protobuf:"varint,7,opt,name=lt_now,json=ltNow" json:"lt_now,omitempty"` - // GtNow specifies that this must be greater than the current time. GtNow - // can only be used with the Within rule. - GtNow *bool `protobuf:"varint,8,opt,name=gt_now,json=gtNow" json:"gt_now,omitempty"` - // Within specifies that this field must be within this duration of the - // current time. This constraint can be used alone or with the LtNow and - // GtNow rules. - Within *durationpb.Duration `protobuf:"bytes,9,opt,name=within" json:"within,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *TimestampRules) Reset() { *m = TimestampRules{} } -func (m *TimestampRules) String() string { return proto.CompactTextString(m) } -func (*TimestampRules) ProtoMessage() {} -func (*TimestampRules) Descriptor() ([]byte, []int) { - return fileDescriptor_8d25120e14073ab5, []int{22} -} - -func (m *TimestampRules) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TimestampRules.Unmarshal(m, b) -} -func (m *TimestampRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TimestampRules.Marshal(b, m, deterministic) -} -func (m *TimestampRules) XXX_Merge(src proto.Message) { - xxx_messageInfo_TimestampRules.Merge(m, src) -} -func (m *TimestampRules) XXX_Size() int { - return xxx_messageInfo_TimestampRules.Size(m) -} -func (m *TimestampRules) XXX_DiscardUnknown() { - xxx_messageInfo_TimestampRules.DiscardUnknown(m) -} - -var xxx_messageInfo_TimestampRules proto.InternalMessageInfo - -func (m *TimestampRules) GetRequired() bool { - if m != nil && m.Required != nil { - return *m.Required - } - return false -} - -func (m *TimestampRules) GetConst() *timestamppb.Timestamp { - if m != nil { - return m.Const - } - return nil -} - -func (m *TimestampRules) GetLt() *timestamppb.Timestamp { - if m != nil { - return m.Lt - } - return nil -} - -func (m *TimestampRules) GetLte() *timestamppb.Timestamp { - if m != nil { - return m.Lte - } - return nil -} - -func (m *TimestampRules) GetGt() *timestamppb.Timestamp { - if m != nil { - return m.Gt - } - return nil -} - -func (m *TimestampRules) GetGte() *timestamppb.Timestamp { - if m != nil { - return m.Gte - } - return nil -} - -func (m *TimestampRules) GetLtNow() bool { - if m != nil && m.LtNow != nil { - return *m.LtNow - } - return false -} - -func (m *TimestampRules) GetGtNow() bool { - if m != nil && m.GtNow != nil { - return *m.GtNow - } - return false -} - -func (m *TimestampRules) GetWithin() *durationpb.Duration { - if m != nil { - return m.Within - } - return nil -} - -var E_Disabled = &proto.ExtensionDesc{ - ExtendedType: (*descriptorpb.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 1071, - Name: "trpc.disabled", - Tag: "varint,1071,opt,name=disabled", - Filename: "validate.ext.proto", -} - -var E_Ignored = &proto.ExtensionDesc{ - ExtendedType: (*descriptorpb.MessageOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 1072, - Name: "trpc.ignored", - Tag: "varint,1072,opt,name=ignored", - Filename: "validate.ext.proto", -} - -var E_Required = &proto.ExtensionDesc{ - ExtendedType: (*descriptorpb.OneofOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 1071, - Name: "trpc.required", - Tag: "varint,1071,opt,name=required", - Filename: "validate.ext.proto", -} - -var E_Rules = &proto.ExtensionDesc{ - ExtendedType: (*descriptorpb.FieldOptions)(nil), - ExtensionType: (*FieldRules)(nil), - Field: 1071, - Name: "trpc.rules", - Tag: "bytes,1071,opt,name=rules", - Filename: "validate.ext.proto", -} - -func init() { - proto.RegisterEnum("trpc.KnownRegex", KnownRegex_name, KnownRegex_value) - proto.RegisterType((*FieldRules)(nil), "trpc.FieldRules") - proto.RegisterType((*FloatRules)(nil), "trpc.FloatRules") - proto.RegisterType((*DoubleRules)(nil), "trpc.DoubleRules") - proto.RegisterType((*Int32Rules)(nil), "trpc.Int32Rules") - proto.RegisterType((*Int64Rules)(nil), "trpc.Int64Rules") - proto.RegisterType((*UInt32Rules)(nil), "trpc.UInt32Rules") - proto.RegisterType((*UInt64Rules)(nil), "trpc.UInt64Rules") - proto.RegisterType((*SInt32Rules)(nil), "trpc.SInt32Rules") - proto.RegisterType((*SInt64Rules)(nil), "trpc.SInt64Rules") - proto.RegisterType((*Fixed32Rules)(nil), "trpc.Fixed32Rules") - proto.RegisterType((*Fixed64Rules)(nil), "trpc.Fixed64Rules") - proto.RegisterType((*SFixed32Rules)(nil), "trpc.SFixed32Rules") - proto.RegisterType((*SFixed64Rules)(nil), "trpc.SFixed64Rules") - proto.RegisterType((*BoolRules)(nil), "trpc.BoolRules") - proto.RegisterType((*StringRules)(nil), "trpc.StringRules") - proto.RegisterType((*BytesRules)(nil), "trpc.BytesRules") - proto.RegisterType((*EnumRules)(nil), "trpc.EnumRules") - proto.RegisterType((*MessageRules)(nil), "trpc.MessageRules") - proto.RegisterType((*RepeatedRules)(nil), "trpc.RepeatedRules") - proto.RegisterType((*MapRules)(nil), "trpc.MapRules") - proto.RegisterType((*AnyRules)(nil), "trpc.AnyRules") - proto.RegisterType((*DurationRules)(nil), "trpc.DurationRules") - proto.RegisterType((*TimestampRules)(nil), "trpc.TimestampRules") - proto.RegisterExtension(E_Disabled) - proto.RegisterExtension(E_Ignored) - proto.RegisterExtension(E_Required) - proto.RegisterExtension(E_Rules) -} - -func init() { proto.RegisterFile("validate.ext.proto", fileDescriptor_8d25120e14073ab5) } - -var fileDescriptor_8d25120e14073ab5 = []byte{ - // 1889 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x98, 0xdd, 0x6e, 0x1b, 0xc7, - 0x15, 0xc7, 0xbd, 0xdc, 0x4f, 0x1e, 0x8a, 0x22, 0x39, 0x91, 0x9d, 0xb5, 0x62, 0x3b, 0x32, 0xd1, - 0x16, 0x8a, 0x93, 0xd2, 0x89, 0x23, 0xe8, 0x42, 0x48, 0x0b, 0x58, 0xb5, 0x04, 0x1b, 0x89, 0xe5, - 0x60, 0x6d, 0xb7, 0x40, 0x6f, 0x88, 0x15, 0x39, 0xa4, 0x17, 0x5e, 0xce, 0x6e, 0x76, 0x67, 0x2d, - 0xf2, 0x9d, 0x0a, 0x34, 0x6d, 0x5f, 0xa3, 0x97, 0x7d, 0x82, 0xde, 0xf5, 0xae, 0x40, 0x5f, 0xa0, - 0x98, 0x8f, 0xfd, 0x9a, 0x5d, 0x49, 0x95, 0x7b, 0x25, 0xcd, 0x39, 0xff, 0x39, 0xf3, 0x9b, 0x33, - 0x1f, 0x3c, 0x3b, 0x80, 0x3e, 0xf8, 0x61, 0x30, 0xf7, 0x29, 0x9e, 0xe0, 0x35, 0x9d, 0xc4, 0x49, - 0x44, 0x23, 0x64, 0xd0, 0x24, 0x9e, 0xed, 0xee, 0x2d, 0xa3, 0x68, 0x19, 0xe2, 0xc7, 0xdc, 0x76, - 0x9e, 0x2d, 0x1e, 0xcf, 0x71, 0x3a, 0x4b, 0x82, 0x98, 0x46, 0x89, 0xd0, 0xed, 0x3e, 0x68, 0x28, - 0xb2, 0xc4, 0xa7, 0x41, 0x44, 0xa4, 0xff, 0x73, 0xd5, 0x4f, 0x83, 0x15, 0x4e, 0xa9, 0xbf, 0x8a, - 0x85, 0x60, 0xfc, 0x6f, 0x1b, 0xe0, 0x34, 0xc0, 0xe1, 0xdc, 0xcb, 0x42, 0x9c, 0xa2, 0xaf, 0xc0, - 0x5e, 0xe1, 0x34, 0xf5, 0x97, 0xd8, 0x1d, 0xed, 0x69, 0xfb, 0xbd, 0x27, 0x68, 0xc2, 0x48, 0x26, - 0x2f, 0x85, 0x91, 0x8b, 0xbc, 0x5c, 0x82, 0xf6, 0xc1, 0x5c, 0x84, 0x91, 0x4f, 0x5d, 0x8d, 0x6b, - 0x87, 0x42, 0x7b, 0xca, 0x4c, 0x5c, 0xf9, 0xfc, 0x96, 0x27, 0x04, 0xe8, 0x4b, 0xb0, 0xe6, 0x51, - 0x76, 0x1e, 0x62, 0xb7, 0xc3, 0xa5, 0x23, 0x21, 0x7d, 0xc6, 0x6d, 0xb9, 0x56, 0x4a, 0x58, 0xd8, - 0x80, 0xd0, 0x6f, 0x9f, 0xb8, 0x7a, 0x35, 0xec, 0x0b, 0x66, 0x2a, 0xc2, 0x72, 0x81, 0x54, 0x1e, - 0x1e, 0xb8, 0x86, 0xa2, 0x3c, 0x3c, 0xa8, 0x2a, 0x0f, 0x0f, 0x18, 0x40, 0x26, 0x82, 0x9a, 0x55, - 0x80, 0xb7, 0xb5, 0xa8, 0x52, 0x92, 0x8b, 0x0f, 0x0f, 0x5c, 0x4b, 0x15, 0x97, 0x81, 0xa5, 0x84, - 0x89, 0x53, 0x11, 0xd9, 0xae, 0x8a, 0x5f, 0xd7, 0x23, 0xa7, 0x45, 0xe4, 0x54, 0x44, 0x76, 0x54, - 0x71, 0x25, 0xb2, 0x90, 0xa0, 0x09, 0xd8, 0x8b, 0x60, 0x8d, 0xe7, 0xdf, 0x3e, 0x71, 0xbb, 0xd5, - 0xc5, 0x38, 0x15, 0xc6, 0x5c, 0x9e, 0x8b, 0x0a, 0xfd, 0xe1, 0x81, 0x0b, 0x0d, 0x7d, 0x19, 0x3e, - 0x17, 0xa1, 0x6f, 0xc0, 0x49, 0xf3, 0x01, 0x7a, 0xbc, 0xc3, 0x27, 0x12, 0x47, 0x19, 0xa1, 0x90, - 0x95, 0x5d, 0x0e, 0x0f, 0xdc, 0xad, 0x66, 0x97, 0x72, 0x90, 0x42, 0x86, 0x7e, 0x09, 0xc6, 0x79, - 0x14, 0x85, 0x6e, 0x9f, 0xcb, 0x07, 0x42, 0x7e, 0x1c, 0x45, 0x61, 0x2e, 0xe5, 0x6e, 0x9e, 0x19, - 0x9a, 0x04, 0x64, 0xe9, 0x6e, 0xd7, 0x32, 0xc3, 0x6d, 0x65, 0x66, 0x78, 0x93, 0xad, 0xfb, 0xf9, - 0x86, 0xe2, 0xd4, 0x1d, 0x54, 0xd7, 0xfd, 0x98, 0x99, 0x8a, 0x75, 0xe7, 0x02, 0x36, 0x3a, 0x26, - 0xd9, 0xca, 0x1d, 0x56, 0x47, 0x3f, 0x21, 0xd9, 0xaa, 0x18, 0x9d, 0xb9, 0xd9, 0xbc, 0x12, 0x1c, - 0x63, 0x9f, 0xe2, 0xb9, 0x8b, 0xaa, 0xf3, 0xf2, 0xa4, 0xb5, 0x98, 0x57, 0x2e, 0x43, 0x63, 0xd0, - 0x57, 0x7e, 0xec, 0x7e, 0xc2, 0xd5, 0xdb, 0xf2, 0x98, 0xf8, 0x71, 0x2e, 0x64, 0x4e, 0xa6, 0xf1, - 0xc9, 0xc6, 0xdd, 0xa9, 0x6a, 0x9e, 0x92, 0x4d, 0xa1, 0xf1, 0xc9, 0x86, 0x0d, 0x9d, 0x1f, 0x5a, - 0xf7, 0x76, 0x75, 0xe8, 0x67, 0xd2, 0x5a, 0x0c, 0x9d, 0xcb, 0xd0, 0x01, 0x74, 0x8b, 0x73, 0xec, - 0xde, 0xe1, 0x7d, 0x76, 0x44, 0x9f, 0x37, 0xb9, 0x39, 0xef, 0x54, 0x0a, 0x8f, 0x2d, 0x30, 0xe8, - 0x26, 0xc6, 0xe3, 0x9f, 0x35, 0x80, 0xf2, 0x8c, 0xa2, 0x1d, 0x30, 0x67, 0x11, 0x49, 0xc5, 0x21, - 0xee, 0x78, 0xa2, 0x81, 0xb6, 0xa1, 0x13, 0x52, 0x7e, 0x58, 0x3b, 0x5e, 0x27, 0xa4, 0x68, 0x08, - 0x7a, 0x48, 0x31, 0x3f, 0x91, 0x1d, 0x8f, 0xfd, 0xcb, 0x14, 0x4b, 0xca, 0x0f, 0x5e, 0xc7, 0xeb, - 0x2c, 0xb9, 0x62, 0x49, 0x31, 0x3f, 0x5e, 0x1d, 0x8f, 0xfd, 0xcb, 0x14, 0x01, 0x71, 0xad, 0x3d, - 0x9d, 0x29, 0x02, 0x82, 0x6e, 0x83, 0x45, 0x22, 0x3a, 0x0d, 0x88, 0x6b, 0x73, 0x9b, 0x49, 0x22, - 0xfa, 0x82, 0xa0, 0x87, 0xb0, 0x15, 0x2c, 0x49, 0x94, 0xe0, 0x29, 0x5e, 0xc5, 0x74, 0xc3, 0x4f, - 0x86, 0xe3, 0xf5, 0x84, 0xed, 0x84, 0x99, 0xc6, 0x7f, 0xd1, 0xa0, 0x57, 0xb9, 0x2b, 0xea, 0xcc, - 0x5a, 0x93, 0x59, 0x53, 0x99, 0x35, 0x95, 0x59, 0x53, 0x99, 0x35, 0x95, 0x59, 0x6b, 0x61, 0xd6, - 0x6e, 0xc0, 0xcc, 0xd2, 0x5c, 0xde, 0x01, 0x75, 0x64, 0xb3, 0x89, 0x6c, 0xaa, 0xc8, 0xa6, 0x8a, - 0x6c, 0xaa, 0xc8, 0xa6, 0x8a, 0x6c, 0xb6, 0x20, 0x9b, 0x37, 0x47, 0x96, 0xa7, 0xb8, 0x8e, 0xac, - 0x37, 0x91, 0x75, 0x15, 0x59, 0x57, 0x91, 0x75, 0x15, 0x59, 0x57, 0x91, 0xf5, 0x16, 0x64, 0xfd, - 0x86, 0x3b, 0xe3, 0xed, 0x65, 0x69, 0xee, 0x37, 0x99, 0xfb, 0x2a, 0x73, 0x5f, 0x65, 0xee, 0xab, - 0xcc, 0x7d, 0x95, 0xb9, 0xdf, 0xc2, 0xdc, 0xff, 0x08, 0xe6, 0xd6, 0x3c, 0x1b, 0x4d, 0x66, 0x43, - 0x65, 0x36, 0x54, 0x66, 0x43, 0x65, 0x36, 0x54, 0x66, 0xa3, 0x85, 0xd9, 0xb8, 0x21, 0xf3, 0xeb, - 0xcb, 0xf2, 0x3c, 0x6a, 0x32, 0x8f, 0x54, 0xe6, 0x91, 0xca, 0x3c, 0x52, 0x99, 0x47, 0x2a, 0xf3, - 0xa8, 0x85, 0x79, 0xf4, 0x11, 0xcc, 0xad, 0x79, 0x46, 0x4d, 0x66, 0xa4, 0x32, 0x23, 0x95, 0x19, - 0xa9, 0xcc, 0x48, 0x65, 0x46, 0x2d, 0xcc, 0xe8, 0x06, 0xcc, 0x7f, 0xd5, 0x60, 0xab, 0xfa, 0xeb, - 0x5b, 0x87, 0xb6, 0x9b, 0xd0, 0xb6, 0x0a, 0x6d, 0xab, 0xd0, 0xb6, 0x0a, 0x6d, 0xab, 0xd0, 0x76, - 0x0b, 0xb4, 0xfd, 0x31, 0xd0, 0xad, 0x99, 0xb6, 0x9a, 0xd0, 0x96, 0x0a, 0x6d, 0xa9, 0xd0, 0x96, - 0x0a, 0x6d, 0xa9, 0xd0, 0x56, 0x0b, 0xb4, 0x75, 0x03, 0xe8, 0xbf, 0x69, 0xd0, 0x7f, 0x7d, 0x79, - 0xaa, 0x07, 0x4d, 0xea, 0x81, 0x4a, 0x3d, 0x50, 0xa9, 0x07, 0x2a, 0xf5, 0x40, 0xa5, 0x1e, 0xb4, - 0x50, 0x0f, 0x3e, 0x8a, 0xba, 0x35, 0xd7, 0xc3, 0x26, 0xf5, 0x50, 0xa5, 0x1e, 0xaa, 0xd4, 0x43, - 0x95, 0x7a, 0xa8, 0x52, 0x0f, 0x5b, 0xa8, 0x87, 0x37, 0xa0, 0x7e, 0x08, 0xdd, 0xa2, 0xe2, 0xab, - 0x03, 0x3b, 0x12, 0x78, 0xfc, 0x77, 0x0b, 0x7a, 0x95, 0x62, 0xaf, 0xae, 0xea, 0xe6, 0xd3, 0x62, - 0xd3, 0xc0, 0x84, 0x17, 0x5d, 0xec, 0x12, 0xc4, 0x04, 0x7d, 0x0a, 0xf6, 0x2a, 0x20, 0x53, 0x66, - 0x15, 0x77, 0xa5, 0xb5, 0x0a, 0xc8, 0x0f, 0xd2, 0xe1, 0xaf, 0xb9, 0x43, 0x97, 0x0e, 0x7f, 0xcd, - 0x1c, 0x9f, 0x41, 0x37, 0xc4, 0x64, 0x2a, 0x0a, 0xc8, 0x1d, 0xee, 0x72, 0x42, 0x4c, 0x78, 0xf5, - 0xc8, 0x9c, 0x2c, 0x9c, 0x70, 0x8a, 0xab, 0xd5, 0x59, 0x05, 0x15, 0xa7, 0xbf, 0x96, 0x4e, 0x53, - 0x3a, 0xfd, 0xb5, 0x70, 0xba, 0x60, 0xc7, 0x3e, 0xa5, 0x38, 0x21, 0xfc, 0xab, 0xa1, 0xeb, 0xe5, - 0x4d, 0x74, 0x07, 0xac, 0x38, 0xc1, 0x8b, 0x60, 0xcd, 0xbf, 0x10, 0xba, 0x9e, 0x6c, 0x31, 0x7b, - 0x9a, 0x2d, 0x98, 0xdd, 0x11, 0x76, 0xd1, 0x42, 0xbb, 0xe0, 0xcc, 0x22, 0x42, 0xfd, 0x80, 0xa4, - 0xbc, 0xf0, 0xef, 0x7a, 0x45, 0x9b, 0x25, 0x9b, 0xad, 0x41, 0xe1, 0xff, 0x94, 0xfb, 0x7b, 0x24, - 0xa2, 0xbf, 0xcb, 0x25, 0x62, 0xd9, 0x60, 0x4f, 0xdf, 0xef, 0x2a, 0xcb, 0xd6, 0xe3, 0x36, 0xb9, - 0x6c, 0x77, 0xc0, 0xc4, 0x2b, 0x3f, 0x08, 0x79, 0x1d, 0xef, 0xb0, 0x8a, 0x99, 0x37, 0xd1, 0x3d, - 0x70, 0xde, 0x45, 0x29, 0x25, 0xfe, 0x0a, 0xf3, 0x9a, 0x9d, 0xb9, 0x0a, 0x0b, 0x1a, 0x42, 0x27, - 0x88, 0x79, 0x89, 0xce, 0xec, 0x9d, 0x20, 0x46, 0x3b, 0x60, 0x04, 0xf1, 0x87, 0x03, 0x5e, 0x8a, - 0x33, 0x1b, 0x6f, 0x49, 0xeb, 0x21, 0xaf, 0xbb, 0x73, 0xeb, 0x21, 0x42, 0xa0, 0x67, 0x49, 0xc0, - 0x3f, 0x2d, 0x99, 0x91, 0x35, 0xd0, 0x5d, 0xb0, 0xb3, 0x24, 0x98, 0x26, 0x78, 0xc1, 0x2b, 0x6f, - 0x87, 0x7f, 0x5a, 0x25, 0x81, 0x87, 0x17, 0x68, 0x17, 0x6c, 0x7f, 0x3e, 0x4f, 0x70, 0x9a, 0xf2, - 0xca, 0x98, 0xb9, 0x72, 0x03, 0x1b, 0x20, 0xcb, 0x82, 0x39, 0x2f, 0x7f, 0xf9, 0x00, 0xac, 0x85, - 0xbe, 0x83, 0xe1, 0x05, 0x0e, 0xc3, 0xe9, 0x7b, 0x12, 0x5d, 0x90, 0x69, 0x82, 0x97, 0x78, 0xed, - 0xba, 0x7b, 0xda, 0xfe, 0x76, 0xfe, 0x8d, 0xf0, 0x3d, 0x73, 0x78, 0xcc, 0xfe, 0xfc, 0x96, 0xb7, - 0xcd, 0xb4, 0xa5, 0x05, 0x3d, 0x80, 0xae, 0x1f, 0xc6, 0xef, 0xfc, 0x73, 0x4c, 0x53, 0xf7, 0x33, - 0x19, 0xb8, 0x34, 0x15, 0x7e, 0x92, 0xad, 0x52, 0xf7, 0x5e, 0xcd, 0xcf, 0x4c, 0xcc, 0x1f, 0x46, - 0x17, 0x38, 0x99, 0xf9, 0x29, 0x76, 0xef, 0xe7, 0xfe, 0xc2, 0xc4, 0xe6, 0x43, 0x53, 0x3c, 0x4b, - 0x69, 0xe2, 0x3e, 0xc8, 0xe7, 0x23, 0x0d, 0xe8, 0x9e, 0xf8, 0xfe, 0x99, 0x51, 0xf7, 0x2e, 0x73, - 0x1d, 0x19, 0x34, 0xc9, 0xb0, 0x27, 0x6d, 0x8d, 0x33, 0xb6, 0xdb, 0x38, 0x63, 0xc7, 0x5b, 0x00, - 0xe5, 0xd4, 0xc7, 0xff, 0xec, 0x00, 0x94, 0xdf, 0x43, 0xf5, 0xd3, 0xb4, 0xa5, 0x9c, 0xa6, 0xfe, - 0xff, 0x73, 0x9a, 0x2a, 0xdb, 0xde, 0xb8, 0x6c, 0xdb, 0x9b, 0x7c, 0xd0, 0xe6, 0xb6, 0xb7, 0x84, - 0xbd, 0x65, 0xdb, 0xdb, 0xdc, 0x53, 0x6e, 0x7b, 0xb1, 0xa7, 0x9d, 0x3d, 0x7d, 0x7f, 0x4b, 0xd9, - 0xd3, 0x5d, 0x6e, 0x93, 0x7b, 0x5a, 0xec, 0x4e, 0x68, 0xd9, 0x9d, 0xbd, 0xd6, 0xdd, 0xb9, 0x55, - 0xdb, 0x9d, 0x6a, 0x92, 0xb7, 0xaf, 0x4b, 0xf2, 0x7b, 0xe8, 0x16, 0x9f, 0x92, 0x97, 0x14, 0xf8, - 0x0f, 0x61, 0x6b, 0x8e, 0x17, 0x01, 0xc1, 0xf3, 0x69, 0x44, 0xc2, 0x0d, 0xcf, 0xaa, 0xe3, 0xf5, - 0xa4, 0xed, 0x15, 0x09, 0x37, 0x72, 0x6e, 0x7a, 0x4b, 0xfd, 0x6e, 0x54, 0xea, 0xf7, 0xf1, 0x6f, - 0x61, 0xab, 0xfa, 0x0a, 0x83, 0x10, 0x18, 0xe9, 0xfb, 0x20, 0x96, 0xb7, 0x28, 0xff, 0x9f, 0xa5, - 0x30, 0xc1, 0x3f, 0x65, 0x41, 0x82, 0xe7, 0x72, 0xa4, 0xa2, 0x3d, 0xfe, 0x93, 0x06, 0xfd, 0xda, - 0xd7, 0x6c, 0x7e, 0xd7, 0x05, 0x14, 0xaf, 0x52, 0x59, 0x7b, 0xb2, 0xbb, 0xee, 0x05, 0x6b, 0xe7, - 0x77, 0x9d, 0x70, 0x76, 0x8a, 0xbb, 0x4e, 0x38, 0xef, 0x80, 0x95, 0x91, 0xe0, 0xa7, 0x4c, 0xfc, - 0xa0, 0x38, 0x9e, 0x6c, 0xa1, 0x5f, 0x81, 0x29, 0x3a, 0xd4, 0xde, 0x63, 0xca, 0xf7, 0x25, 0x4f, - 0xb8, 0x1b, 0x99, 0x36, 0x9b, 0x3f, 0x19, 0xff, 0xd0, 0xc0, 0xc9, 0x3f, 0xa7, 0x73, 0xd2, 0xd8, - 0x0f, 0x92, 0x2a, 0xe9, 0x8f, 0xac, 0x9d, 0x93, 0x0a, 0x67, 0x49, 0x5a, 0x38, 0x49, 0x34, 0x4d, - 0x63, 0x3f, 0x49, 0x73, 0x58, 0x87, 0x44, 0xaf, 0x79, 0x1b, 0xfd, 0x02, 0x8c, 0xf7, 0x78, 0x73, - 0x39, 0x2d, 0xf7, 0xa2, 0x7d, 0xb0, 0x3e, 0xf8, 0x61, 0x26, 0xaf, 0xfc, 0x36, 0x9d, 0xf4, 0x37, - 0xa6, 0x65, 0x35, 0xa7, 0xf5, 0x12, 0x9c, 0xfc, 0x01, 0xa0, 0xb6, 0x5a, 0x5a, 0x7d, 0xb5, 0xe4, - 0xa6, 0xe8, 0xb4, 0x5c, 0xe2, 0x7a, 0xe5, 0x12, 0x1f, 0xff, 0xab, 0x03, 0xfd, 0xda, 0x3b, 0xc1, - 0x95, 0x41, 0x1f, 0xe7, 0x5b, 0x54, 0x3c, 0xc2, 0xdd, 0x9d, 0x88, 0xd7, 0xc1, 0x49, 0xfe, 0x3a, - 0x58, 0x3e, 0x39, 0xc8, 0xdd, 0xfb, 0x05, 0xaf, 0x22, 0xf4, 0xeb, 0xd4, 0xac, 0xc0, 0xf8, 0x52, - 0x14, 0x18, 0xc6, 0x75, 0x5a, 0x5e, 0x7b, 0x7c, 0xc1, 0x6b, 0x0f, 0xf3, 0xda, 0xb8, 0x4b, 0x1e, - 0x97, 0x95, 0x25, 0xd6, 0xb5, 0x71, 0x97, 0x22, 0xae, 0xac, 0x4e, 0xae, 0x8e, 0x1b, 0x10, 0xf4, - 0x75, 0x91, 0x50, 0xe7, 0x3a, 0xb9, 0xcc, 0xf5, 0x7f, 0x3a, 0xb0, 0x5d, 0x7f, 0x5f, 0xb9, 0x32, - 0xd9, 0x5f, 0xd7, 0x93, 0xbd, 0xdb, 0x88, 0x5f, 0xc6, 0x92, 0xd9, 0x7e, 0x54, 0xc9, 0xf6, 0x55, - 0x72, 0x96, 0xee, 0xaf, 0xaa, 0xe9, 0xbe, 0x4a, 0xcc, 0xf3, 0xfd, 0xa8, 0x92, 0xef, 0x2b, 0x23, - 0x2f, 0x79, 0xe4, 0x32, 0xe1, 0x57, 0x46, 0x66, 0x19, 0xbf, 0x0d, 0x56, 0x48, 0xa7, 0x24, 0xba, - 0xe0, 0x57, 0xb6, 0xe3, 0x99, 0x21, 0x3d, 0x8b, 0x2e, 0x98, 0x79, 0x29, 0xcc, 0xa2, 0x1a, 0x34, - 0x97, 0xdc, 0xfc, 0x0d, 0x58, 0x17, 0x01, 0x7d, 0xc7, 0xaf, 0xed, 0x6b, 0xd6, 0x53, 0x0a, 0x1f, - 0x9d, 0x02, 0x54, 0x7e, 0xa1, 0x7b, 0x60, 0xbf, 0x3d, 0xfb, 0xfe, 0xec, 0xd5, 0x1f, 0xce, 0x86, - 0xb7, 0xd0, 0x0e, 0x0c, 0x9f, 0xbf, 0x79, 0xf3, 0xe3, 0xf4, 0xf9, 0xc9, 0xd3, 0x67, 0x27, 0xde, - 0xf4, 0xec, 0xe9, 0xcb, 0x93, 0xa1, 0x86, 0x6e, 0xc3, 0xa8, 0x6a, 0xfd, 0xfd, 0xd3, 0x1f, 0xde, - 0x9e, 0x0c, 0x3b, 0x47, 0xdf, 0x81, 0x33, 0x0f, 0x52, 0xff, 0x3c, 0xc4, 0x73, 0xf4, 0x79, 0x63, - 0x58, 0x79, 0xb3, 0xbe, 0x8a, 0xd9, 0xd8, 0xa9, 0xfb, 0x67, 0x41, 0x5d, 0xf4, 0x38, 0x3a, 0x02, - 0x5b, 0x9c, 0xe2, 0xff, 0xa1, 0xf3, 0xcf, 0xa2, 0x73, 0xde, 0xe1, 0xe8, 0xa8, 0xdc, 0x24, 0xe8, - 0x7e, 0xa3, 0xf3, 0x2b, 0x82, 0xa3, 0x85, 0x3a, 0x6e, 0xae, 0x3f, 0x3a, 0x05, 0x33, 0xe1, 0x3b, - 0xad, 0xd9, 0x91, 0xdf, 0x3f, 0xb5, 0x8e, 0xad, 0x17, 0x2e, 0xef, 0x7e, 0xfc, 0x1b, 0xb8, 0x3f, - 0x8b, 0x56, 0x13, 0x8a, 0xc9, 0x0c, 0x13, 0x2a, 0x54, 0x45, 0x24, 0xbc, 0xa6, 0x7f, 0xbc, 0xb7, - 0x0c, 0xe8, 0x64, 0x16, 0xcd, 0xf1, 0x24, 0xf2, 0x27, 0xb3, 0x68, 0xf5, 0x98, 0x49, 0x7e, 0xbd, - 0x8c, 0xf8, 0xdf, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x9b, 0x7e, 0x2d, 0xd1, 0xa3, 0x18, 0x00, - 0x00, -} From f7e13832056789d489be41a48fa233815e47ffd8 Mon Sep 17 00:00:00 2001 From: wineguo Date: Mon, 8 Aug 2022 20:30:31 +0800 Subject: [PATCH 59/85] update --- Makefile | 18 ++++++++++++------ {pbgo => pb/go}/trpc/api/annotations.pb.go | 8 ++++---- {pbgo => pb/go}/trpc/api/http.pb.go | 8 ++++---- {pbgo => pb/go/trpc}/go.mod | 2 +- {pbgo => pb/go/trpc}/go.sum | 0 {pbgo/trpc/proto => pb/go/trpc}/swagger.pb.go | 12 ++++++------ {pbgo/trpc/proto => pb/go/trpc}/trpc.pb.go | 12 ++++++------ .../proto => pb/go/trpc}/trpc_options.pb.go | 11 +++++------ .../proto => pb/go/trpc}/validate.ext.pb.go | 10 +++++----- trpc/api/annotations.proto | 2 +- trpc/api/http.proto | 2 +- trpc/proto/swagger.proto | 2 +- trpc/proto/trpc.proto | 2 +- trpc/proto/trpc_options.proto | 2 +- trpc/proto/validate.ext.proto | 2 +- 15 files changed, 49 insertions(+), 44 deletions(-) rename {pbgo => pb/go}/trpc/api/annotations.pb.go (93%) rename {pbgo => pb/go}/trpc/api/http.pb.go (97%) rename {pbgo => pb/go/trpc}/go.mod (67%) rename {pbgo => pb/go/trpc}/go.sum (100%) rename {pbgo/trpc/proto => pb/go/trpc}/swagger.pb.go (96%) rename {pbgo/trpc/proto => pb/go/trpc}/trpc.pb.go (99%) rename {pbgo/trpc/proto => pb/go/trpc}/trpc_options.pb.go (94%) rename {pbgo/trpc/proto => pb/go/trpc}/validate.ext.pb.go (99%) diff --git a/Makefile b/Makefile index ae5c7a7..08b5720 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,20 @@ -DIR=pbgo +DIR=pb/go all: + rm -rf $(DIR) mkdir -p $(DIR) - protoc --go_out=paths=source_relative:./$(DIR) \ + protoc -I/usr/local/include -I.\ + --go_out=paths=source_relative:./$(DIR) \ + ./trpc/api/annotations.proto \ + ./trpc/api/http.proto + protoc -I/usr/local/include -I.\ + --go_out=./$(DIR) \ ./trpc/proto/trpc.proto \ ./trpc/proto/swagger.proto \ ./trpc/proto/trpc_options.proto \ - ./trpc/proto/validate.ext.proto \ - ./trpc/api/annotations.proto \ - ./trpc/api/http.proto - cd ./pbgo && go mod init git.woa.com/trpc/trpc-protocol/$(DIR) && go mod tidy && cd - + ./trpc/proto/validate.ext.proto + mv $(DIR)/git.woa.com/trpc/trpc-protocol/pb/go/trpc/* $(DIR)/trpc + rm -rf $(DIR)/git.woa.com + cd ./$(DIR)/trpc && go mod init git.woa.com/trpc/trpc-protocol/$(DIR) && go mod tidy && cd - clean: rm -rf $(DIR) diff --git a/pbgo/trpc/api/annotations.pb.go b/pb/go/trpc/api/annotations.pb.go similarity index 93% rename from pbgo/trpc/api/annotations.pb.go rename to pb/go/trpc/api/annotations.pb.go index aedb4a0..68a0c24 100644 --- a/pbgo/trpc/api/annotations.pb.go +++ b/pb/go/trpc/api/annotations.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.5.0 // source: trpc/api/annotations.proto package api @@ -50,10 +50,10 @@ var file_trpc_api_annotations_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x88, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, - 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x2e, 0x77, + 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, - 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x74, - 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_trpc_api_annotations_proto_goTypes = []interface{}{ diff --git a/pbgo/trpc/api/http.pb.go b/pb/go/trpc/api/http.pb.go similarity index 97% rename from pbgo/trpc/api/http.pb.go rename to pb/go/trpc/api/http.pb.go index 5ed95ec..9e5a713 100644 --- a/pbgo/trpc/api/http.pb.go +++ b/pb/go/trpc/api/http.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.5.0 // source: trpc/api/http.proto package api @@ -308,10 +308,10 @@ var file_trpc_api_http_proto_rawDesc = []byte{ 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, - 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, + 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pbgo/go.mod b/pb/go/trpc/go.mod similarity index 67% rename from pbgo/go.mod rename to pb/go/trpc/go.mod index ef09131..d4bcb7b 100644 --- a/pbgo/go.mod +++ b/pb/go/trpc/go.mod @@ -1,4 +1,4 @@ -module git.woa.com/trpc/trpc-protocol/pbgo +module git.woa.com/trpc/trpc-protocol/pb/go go 1.18 diff --git a/pbgo/go.sum b/pb/go/trpc/go.sum similarity index 100% rename from pbgo/go.sum rename to pb/go/trpc/go.sum diff --git a/pbgo/trpc/proto/swagger.pb.go b/pb/go/trpc/swagger.pb.go similarity index 96% rename from pbgo/trpc/proto/swagger.pb.go rename to pb/go/trpc/swagger.pb.go index d3d039b..bfddfb7 100644 --- a/pbgo/trpc/proto/swagger.pb.go +++ b/pb/go/trpc/swagger.pb.go @@ -1,10 +1,10 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.5.0 // source: trpc/proto/swagger.proto -package proto +package trpc import ( descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" @@ -200,12 +200,12 @@ var file_trpc_proto_swagger_proto_rawDesc = []byte{ 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb5, 0x87, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x42, - 0x4f, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, + 0x4a, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, - 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, + 0x5a, 0x29, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/pbgo/trpc/proto/trpc.pb.go b/pb/go/trpc/trpc.pb.go similarity index 99% rename from pbgo/trpc/proto/trpc.pb.go rename to pb/go/trpc/trpc.pb.go index a611d29..64c0372 100644 --- a/pbgo/trpc/proto/trpc.pb.go +++ b/pb/go/trpc/trpc.pb.go @@ -1,10 +1,10 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.5.0 // source: trpc/proto/trpc.proto -package proto +package trpc import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" @@ -1741,14 +1741,14 @@ var file_trpc_proto_trpc_proto_rawDesc = []byte{ 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x66, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, + 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x61, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x42, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x2e, + 0x42, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, - 0x62, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/pbgo/trpc/proto/trpc_options.pb.go b/pb/go/trpc/trpc_options.pb.go similarity index 94% rename from pbgo/trpc/proto/trpc_options.pb.go rename to pb/go/trpc/trpc_options.pb.go index 2cc759e..8ebdb67 100644 --- a/pbgo/trpc/proto/trpc_options.pb.go +++ b/pb/go/trpc/trpc_options.pb.go @@ -1,10 +1,10 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.5.0 // source: trpc/proto/trpc_options.proto -package proto +package trpc import ( descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" @@ -65,11 +65,10 @@ var file_trpc_proto_trpc_options_proto_rawDesc = []byte{ 0x36, 0x0a, 0x06, 0x67, 0x6f, 0x5f, 0x74, 0x61, 0x67, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x82, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x2e, 0x77, + 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x2b, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, - 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x74, - 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_trpc_proto_trpc_options_proto_goTypes = []interface{}{ diff --git a/pbgo/trpc/proto/validate.ext.pb.go b/pb/go/trpc/validate.ext.pb.go similarity index 99% rename from pbgo/trpc/proto/validate.ext.pb.go rename to pb/go/trpc/validate.ext.pb.go index b659567..4bb525b 100644 --- a/pbgo/trpc/proto/validate.ext.pb.go +++ b/pb/go/trpc/validate.ext.pb.go @@ -1,10 +1,10 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.5.0 // source: trpc/proto/validate.ext.proto -package proto +package trpc import ( descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" @@ -3715,11 +3715,11 @@ var file_trpc_proto_validate_ext_proto_rawDesc = []byte{ 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x42, - 0x4f, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, + 0x4a, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, - 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, + 0x5a, 0x29, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, } var ( diff --git a/trpc/api/annotations.proto b/trpc/api/annotations.proto index 9b0b22b..f6a7320 100644 --- a/trpc/api/annotations.proto +++ b/trpc/api/annotations.proto @@ -5,7 +5,7 @@ package trpc.api; import "trpc/api/http.proto"; import "google/protobuf/descriptor.proto"; -option go_package = "git.woa.com/trpc/trpc-protocol/pbgo/trpc/api"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/api"; extend google.protobuf.MethodOptions { HttpRule http = 50201; diff --git a/trpc/api/http.proto b/trpc/api/http.proto index 25cdc5f..eb83ff0 100644 --- a/trpc/api/http.proto +++ b/trpc/api/http.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package trpc.api; -option go_package = "git.woa.com/trpc/trpc-protocol/pbgo/trpc/api"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/api"; message HttpRule { // Selects a method to which this rule applies. diff --git a/trpc/proto/swagger.proto b/trpc/proto/swagger.proto index 1ceee33..5b67d08 100644 --- a/trpc/proto/swagger.proto +++ b/trpc/proto/swagger.proto @@ -2,7 +2,7 @@ syntax = "proto3"; import "google/protobuf/descriptor.proto"; package trpc; -option go_package = "git.woa.com/trpc/trpc-protocol/pbgo/trpc/proto"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; option java_package = "com.tencent.trpc.protobuf.ext"; extend google.protobuf.MethodOptions { diff --git a/trpc/proto/trpc.proto b/trpc/proto/trpc.proto index efe5aaa..5f1039f 100644 --- a/trpc/proto/trpc.proto +++ b/trpc/proto/trpc.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package trpc; -option go_package = "git.woa.com/trpc/trpc-protocol/pbgo/trpc/proto"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; option java_package = "com.tencent.trpc.proto.standard.common"; option java_outer_classname = "TRPCProtocol"; diff --git a/trpc/proto/trpc_options.proto b/trpc/proto/trpc_options.proto index da99673..7844568 100644 --- a/trpc/proto/trpc_options.proto +++ b/trpc/proto/trpc_options.proto @@ -4,7 +4,7 @@ import "google/protobuf/descriptor.proto"; package trpc; -option go_package = "git.woa.com/trpc/trpc-protocol/pbgo/trpc/proto"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; extend google.protobuf.MethodOptions { string alias = 50001; diff --git a/trpc/proto/validate.ext.proto b/trpc/proto/validate.ext.proto index 1359563..d7de5c0 100644 --- a/trpc/proto/validate.ext.proto +++ b/trpc/proto/validate.ext.proto @@ -1,7 +1,7 @@ syntax = "proto2"; package trpc; -option go_package = "git.woa.com/trpc/trpc-protocol/pbgo/trpc/proto"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; option java_package = "com.tencent.trpc.protobuf.ext"; import "google/protobuf/descriptor.proto"; From ff3b18f0c4be06d872748f10de737f99a71cc78f Mon Sep 17 00:00:00 2001 From: leoxhyang Date: Mon, 1 Aug 2022 16:36:42 +0800 Subject: [PATCH 60/85] =?UTF-8?q?trpc=E5=8D=8F=E8=AE=AE=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=EF=BC=9A=E6=96=B0=E5=A2=9E=20Snappy=20=E7=9A=84=20stream?= =?UTF-8?q?=E3=80=81block=20=E5=8E=8B=E7=BC=A9=E7=B1=BB=E5=9E=8B=20(merge?= =?UTF-8?q?=20request=20!16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Squash merge branch 'snappy' into 'master' trpc协议更新:新增 Snappy 的 stream、block 压缩类型 关联提案:https://git.woa.com/trpc/trpc-proposal/merge_requests/82/notes --story=876648585 trpc协议更新:新增 Snappy 的 stream、block 压缩类型 TAPD: --story=876648585 --- trpc/proto/trpc.proto | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/trpc/proto/trpc.proto b/trpc/proto/trpc.proto index 5f1039f..0d35069 100644 --- a/trpc/proto/trpc.proto +++ b/trpc/proto/trpc.proto @@ -247,10 +247,19 @@ enum TrpcCompressType { TRPC_GZIP_COMPRESS = 1; // 使用snappy + // + // Deprecated: 建议使用 TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, 因为现在 + // trpc-go 和 trpc-cpp 分别的使用的是 stream、block 模式,二者不兼容,跨语言调用会出错 TRPC_SNAPPY_COMPRESS = 2; // 使用zlib TRPC_ZLIB_COMPRESS = 3; + + // 使用 stream 模式的 snappy + TRPC_SNAPPY_STREAM_COMPRESS = 4; + + // 使用 block 模式的 snappy + TRPC_SNAPPY_BLOCK_COMPRESS = 5; } // 框架层接口调用的返回码定义 From 91584bc6273def535a8e90f6fed8ac6e6454e13f Mon Sep 17 00:00:00 2001 From: minchangwei Date: Fri, 12 Aug 2022 18:08:11 +0800 Subject: [PATCH 61/85] =?UTF-8?q?version:=20--story=3D876957019=20trpc/trp?= =?UTF-8?q?c-protocol=E5=8F=91=E5=B8=83=E7=89=88=E6=9C=ACv0.2.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TAPD: --story=876957019 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2f40e5..e66ab73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change Log +## [0.2.1](https://git.woa.com/trpc/trpc-protocol/tree/v0.2.1)(2022-08-12) +### Features And Improvements +- snappy新增两种的压缩类型(block/stream),以应对不同语言snappy的sdk实现差异 +- 增加http的扩展定义HttpRule + ## [0.2.0](https://git.woa.com/trpc/trpc-protocol/tree/v0.2.0)(2022-05-09) ### Features And Improvements - 定义扩展option(trpc/proto/trpc_options.proto) From 04120c923959a7e82463208af3161805e8e4c663 Mon Sep 17 00:00:00 2001 From: wineguo Date: Thu, 18 Aug 2022 16:16:09 +0800 Subject: [PATCH 62/85] =?UTF-8?q?=E5=B0=86=20validate.ext.proto=20?= =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=E5=9B=9E=20validate.proto=20(merge?= =?UTF-8?q?=20request=20!19)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Squash merge branch 'rename_validate' into 'master' 将 validate.ext.proto 重命名回 validate.proto 在 https://git.woa.com/trpc-go/trpc/tree/master 中因为一些尚未追溯出来的历史原因,validate.proto 被重命名为了 validate.ext.proto,其本意在于避免 pb 文件命名冲突,但是 trpc-go-cmdline 本身没有用到这个 repo 并且 https://git.woa.com/trpc/trpc-protocol 现在这个 repo 并不影响上面这个 repo 的使用,因此考虑把 https://git.woa.com/trpc/trpc-protocol 中的 validate.ext.proto 重新命名回去,以便和大仓达成统一 TAPD: --story=877031955 --- Makefile | 4 +- pb/go/trpc/api/annotations.pb.go | 2 +- pb/go/trpc/api/http.pb.go | 2 +- pb/go/trpc/go.mod | 2 +- pb/go/trpc/swagger.pb.go | 2 +- pb/go/trpc/trpc.pb.go | 265 +++-- pb/go/trpc/trpc_options.pb.go | 2 +- .../{validate.ext.pb.go => validate.pb.go} | 1014 ++++++++--------- trpc/proto/swagger.proto | 2 +- trpc/proto/trpc_options.proto | 1 + .../{validate.ext.proto => validate.proto} | 2 +- 11 files changed, 657 insertions(+), 641 deletions(-) rename pb/go/trpc/{validate.ext.pb.go => validate.pb.go} (71%) rename trpc/proto/{validate.ext.proto => validate.proto} (99%) diff --git a/Makefile b/Makefile index 08b5720..c761417 100644 --- a/Makefile +++ b/Makefile @@ -11,10 +11,10 @@ all: ./trpc/proto/trpc.proto \ ./trpc/proto/swagger.proto \ ./trpc/proto/trpc_options.proto \ - ./trpc/proto/validate.ext.proto + ./trpc/proto/validate.proto mv $(DIR)/git.woa.com/trpc/trpc-protocol/pb/go/trpc/* $(DIR)/trpc rm -rf $(DIR)/git.woa.com - cd ./$(DIR)/trpc && go mod init git.woa.com/trpc/trpc-protocol/$(DIR) && go mod tidy && cd - + cd ./$(DIR)/trpc && go mod init git.woa.com/trpc/trpc-protocol/$(DIR)/trpc && go mod tidy && cd - clean: rm -rf $(DIR) diff --git a/pb/go/trpc/api/annotations.pb.go b/pb/go/trpc/api/annotations.pb.go index 68a0c24..51627ee 100644 --- a/pb/go/trpc/api/annotations.pb.go +++ b/pb/go/trpc/api/annotations.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.5.0 +// protoc v3.6.1 // source: trpc/api/annotations.proto package api diff --git a/pb/go/trpc/api/http.pb.go b/pb/go/trpc/api/http.pb.go index 9e5a713..1797e7e 100644 --- a/pb/go/trpc/api/http.pb.go +++ b/pb/go/trpc/api/http.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.5.0 +// protoc v3.6.1 // source: trpc/api/http.proto package api diff --git a/pb/go/trpc/go.mod b/pb/go/trpc/go.mod index d4bcb7b..68e884b 100644 --- a/pb/go/trpc/go.mod +++ b/pb/go/trpc/go.mod @@ -1,4 +1,4 @@ -module git.woa.com/trpc/trpc-protocol/pb/go +module git.woa.com/trpc/trpc-protocol/pb/go/trpc go 1.18 diff --git a/pb/go/trpc/swagger.pb.go b/pb/go/trpc/swagger.pb.go index bfddfb7..b52a604 100644 --- a/pb/go/trpc/swagger.pb.go +++ b/pb/go/trpc/swagger.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.5.0 +// protoc v3.6.1 // source: trpc/proto/swagger.proto package trpc diff --git a/pb/go/trpc/trpc.pb.go b/pb/go/trpc/trpc.pb.go index 64c0372..6f47d6a 100644 --- a/pb/go/trpc/trpc.pb.go +++ b/pb/go/trpc/trpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.5.0 +// protoc v3.6.1 // source: trpc/proto/trpc.proto package trpc @@ -477,9 +477,16 @@ const ( // 使用gzip TrpcCompressType_TRPC_GZIP_COMPRESS TrpcCompressType = 1 // 使用snappy + // + // Deprecated: 建议使用 TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, 因为现在 + // trpc-go 和 trpc-cpp 分别的使用的是 stream、block 模式,二者不兼容,跨语言调用会出错 TrpcCompressType_TRPC_SNAPPY_COMPRESS TrpcCompressType = 2 // 使用zlib TrpcCompressType_TRPC_ZLIB_COMPRESS TrpcCompressType = 3 + // 使用 stream 模式的 snappy + TrpcCompressType_TRPC_SNAPPY_STREAM_COMPRESS TrpcCompressType = 4 + // 使用 block 模式的 snappy + TrpcCompressType_TRPC_SNAPPY_BLOCK_COMPRESS TrpcCompressType = 5 ) // Enum value maps for TrpcCompressType. @@ -489,12 +496,16 @@ var ( 1: "TRPC_GZIP_COMPRESS", 2: "TRPC_SNAPPY_COMPRESS", 3: "TRPC_ZLIB_COMPRESS", + 4: "TRPC_SNAPPY_STREAM_COMPRESS", + 5: "TRPC_SNAPPY_BLOCK_COMPRESS", } TrpcCompressType_value = map[string]int32{ - "TRPC_DEFAULT_COMPRESS": 0, - "TRPC_GZIP_COMPRESS": 1, - "TRPC_SNAPPY_COMPRESS": 2, - "TRPC_ZLIB_COMPRESS": 3, + "TRPC_DEFAULT_COMPRESS": 0, + "TRPC_GZIP_COMPRESS": 1, + "TRPC_SNAPPY_COMPRESS": 2, + "TRPC_ZLIB_COMPRESS": 3, + "TRPC_SNAPPY_STREAM_COMPRESS": 4, + "TRPC_SNAPPY_BLOCK_COMPRESS": 5, } ) @@ -1626,129 +1637,133 @@ var file_trpc_proto_trpc_proto_rawDesc = []byte{ 0x4e, 0x4f, 0x4f, 0x50, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, - 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x2a, 0x77, 0x0a, 0x10, 0x54, 0x72, - 0x70, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, - 0x0a, 0x15, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, - 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x47, 0x5a, 0x49, 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, - 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, - 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x5a, 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, - 0x53, 0x10, 0x03, 0x2a, 0xb0, 0x0d, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, - 0x4b, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, - 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, - 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0c, 0x12, - 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x54, - 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, 0x45, 0x52, - 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, - 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, - 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, - 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x59, - 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, - 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, 0x1b, 0x0a, - 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, - 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x7a, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7b, 0x12, - 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, - 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, 0x1b, 0x0a, - 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x4f, 0x55, - 0x54, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, - 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xa1, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x54, - 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x54, + 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x2a, 0xb8, 0x01, 0x0a, 0x10, 0x54, + 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x19, 0x0a, 0x15, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, + 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x47, 0x5a, 0x49, 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, + 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, + 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x5a, 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, + 0x53, 0x53, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, + 0x50, 0x50, 0x59, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, + 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, + 0x41, 0x50, 0x50, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, + 0x45, 0x53, 0x53, 0x10, 0x05, 0x2a, 0xb0, 0x0d, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, + 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, + 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, + 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, + 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, + 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, + 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, + 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, + 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, + 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, + 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, + 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, + 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, + 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, + 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, + 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xa1, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, + 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, + 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, + 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, - 0x52, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, - 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, 0x22, 0x0a, - 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xde, - 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, - 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, - 0x44, 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, - 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, - 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x01, - 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, - 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, - 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, - 0x45, 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, - 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, 0x12, 0x26, - 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, - 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, + 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, + 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, + 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, + 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, + 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, - 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfe, 0x01, - 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0xad, 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, 0x47, 0x5f, - 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0xb7, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, - 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, 0x12, 0x2a, - 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, - 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, - 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, - 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0xcd, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, - 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, 0x12, 0x20, - 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, - 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xdf, 0x02, + 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, + 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, - 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, - 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe1, 0x02, - 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, - 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x61, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, - 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x42, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x29, - 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, - 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, - 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, + 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, + 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xfe, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xad, 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, + 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xb7, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, + 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, + 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, + 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, + 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xcd, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, + 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, + 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, + 0xdf, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, + 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xe1, 0x02, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, + 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x1c, 0x0a, 0x17, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x61, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, + 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x42, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x5a, 0x29, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, + 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/pb/go/trpc/trpc_options.pb.go b/pb/go/trpc/trpc_options.pb.go index 8ebdb67..d0672b1 100644 --- a/pb/go/trpc/trpc_options.pb.go +++ b/pb/go/trpc/trpc_options.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.5.0 +// protoc v3.6.1 // source: trpc/proto/trpc_options.proto package trpc diff --git a/pb/go/trpc/validate.ext.pb.go b/pb/go/trpc/validate.pb.go similarity index 71% rename from pb/go/trpc/validate.ext.pb.go rename to pb/go/trpc/validate.pb.go index 4bb525b..4fe0204 100644 --- a/pb/go/trpc/validate.ext.pb.go +++ b/pb/go/trpc/validate.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.5.0 -// source: trpc/proto/validate.ext.proto +// protoc v3.6.1 +// source: trpc/proto/validate.proto package trpc @@ -59,11 +59,11 @@ func (x KnownRegex) String() string { } func (KnownRegex) Descriptor() protoreflect.EnumDescriptor { - return file_trpc_proto_validate_ext_proto_enumTypes[0].Descriptor() + return file_trpc_proto_validate_proto_enumTypes[0].Descriptor() } func (KnownRegex) Type() protoreflect.EnumType { - return &file_trpc_proto_validate_ext_proto_enumTypes[0] + return &file_trpc_proto_validate_proto_enumTypes[0] } func (x KnownRegex) Number() protoreflect.EnumNumber { @@ -82,7 +82,7 @@ func (x *KnownRegex) UnmarshalJSON(b []byte) error { // Deprecated: Use KnownRegex.Descriptor instead. func (KnownRegex) EnumDescriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{0} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{0} } // FieldRules encapsulates the rules for each type of field. Depending on the @@ -121,7 +121,7 @@ type FieldRules struct { func (x *FieldRules) Reset() { *x = FieldRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[0] + mi := &file_trpc_proto_validate_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -134,7 +134,7 @@ func (x *FieldRules) String() string { func (*FieldRules) ProtoMessage() {} func (x *FieldRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[0] + mi := &file_trpc_proto_validate_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -147,7 +147,7 @@ func (x *FieldRules) ProtoReflect() protoreflect.Message { // Deprecated: Use FieldRules.ProtoReflect.Descriptor instead. func (*FieldRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{0} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{0} } func (x *FieldRules) GetMessage() *MessageRules { @@ -480,7 +480,7 @@ type FloatRules struct { func (x *FloatRules) Reset() { *x = FloatRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[1] + mi := &file_trpc_proto_validate_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -493,7 +493,7 @@ func (x *FloatRules) String() string { func (*FloatRules) ProtoMessage() {} func (x *FloatRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[1] + mi := &file_trpc_proto_validate_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -506,7 +506,7 @@ func (x *FloatRules) ProtoReflect() protoreflect.Message { // Deprecated: Use FloatRules.ProtoReflect.Descriptor instead. func (*FloatRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{1} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{1} } func (x *FloatRules) GetConst() float32 { @@ -601,7 +601,7 @@ type DoubleRules struct { func (x *DoubleRules) Reset() { *x = DoubleRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[2] + mi := &file_trpc_proto_validate_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -614,7 +614,7 @@ func (x *DoubleRules) String() string { func (*DoubleRules) ProtoMessage() {} func (x *DoubleRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[2] + mi := &file_trpc_proto_validate_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -627,7 +627,7 @@ func (x *DoubleRules) ProtoReflect() protoreflect.Message { // Deprecated: Use DoubleRules.ProtoReflect.Descriptor instead. func (*DoubleRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{2} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{2} } func (x *DoubleRules) GetConst() float64 { @@ -722,7 +722,7 @@ type Int32Rules struct { func (x *Int32Rules) Reset() { *x = Int32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[3] + mi := &file_trpc_proto_validate_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -735,7 +735,7 @@ func (x *Int32Rules) String() string { func (*Int32Rules) ProtoMessage() {} func (x *Int32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[3] + mi := &file_trpc_proto_validate_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -748,7 +748,7 @@ func (x *Int32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use Int32Rules.ProtoReflect.Descriptor instead. func (*Int32Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{3} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{3} } func (x *Int32Rules) GetConst() int32 { @@ -843,7 +843,7 @@ type Int64Rules struct { func (x *Int64Rules) Reset() { *x = Int64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[4] + mi := &file_trpc_proto_validate_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -856,7 +856,7 @@ func (x *Int64Rules) String() string { func (*Int64Rules) ProtoMessage() {} func (x *Int64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[4] + mi := &file_trpc_proto_validate_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -869,7 +869,7 @@ func (x *Int64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use Int64Rules.ProtoReflect.Descriptor instead. func (*Int64Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{4} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{4} } func (x *Int64Rules) GetConst() int64 { @@ -964,7 +964,7 @@ type UInt32Rules struct { func (x *UInt32Rules) Reset() { *x = UInt32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[5] + mi := &file_trpc_proto_validate_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -977,7 +977,7 @@ func (x *UInt32Rules) String() string { func (*UInt32Rules) ProtoMessage() {} func (x *UInt32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[5] + mi := &file_trpc_proto_validate_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -990,7 +990,7 @@ func (x *UInt32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use UInt32Rules.ProtoReflect.Descriptor instead. func (*UInt32Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{5} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{5} } func (x *UInt32Rules) GetConst() uint32 { @@ -1085,7 +1085,7 @@ type UInt64Rules struct { func (x *UInt64Rules) Reset() { *x = UInt64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[6] + mi := &file_trpc_proto_validate_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1098,7 +1098,7 @@ func (x *UInt64Rules) String() string { func (*UInt64Rules) ProtoMessage() {} func (x *UInt64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[6] + mi := &file_trpc_proto_validate_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1111,7 +1111,7 @@ func (x *UInt64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use UInt64Rules.ProtoReflect.Descriptor instead. func (*UInt64Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{6} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{6} } func (x *UInt64Rules) GetConst() uint64 { @@ -1206,7 +1206,7 @@ type SInt32Rules struct { func (x *SInt32Rules) Reset() { *x = SInt32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[7] + mi := &file_trpc_proto_validate_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1219,7 +1219,7 @@ func (x *SInt32Rules) String() string { func (*SInt32Rules) ProtoMessage() {} func (x *SInt32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[7] + mi := &file_trpc_proto_validate_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1232,7 +1232,7 @@ func (x *SInt32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use SInt32Rules.ProtoReflect.Descriptor instead. func (*SInt32Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{7} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{7} } func (x *SInt32Rules) GetConst() int32 { @@ -1327,7 +1327,7 @@ type SInt64Rules struct { func (x *SInt64Rules) Reset() { *x = SInt64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[8] + mi := &file_trpc_proto_validate_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1340,7 +1340,7 @@ func (x *SInt64Rules) String() string { func (*SInt64Rules) ProtoMessage() {} func (x *SInt64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[8] + mi := &file_trpc_proto_validate_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1353,7 +1353,7 @@ func (x *SInt64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use SInt64Rules.ProtoReflect.Descriptor instead. func (*SInt64Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{8} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{8} } func (x *SInt64Rules) GetConst() int64 { @@ -1448,7 +1448,7 @@ type Fixed32Rules struct { func (x *Fixed32Rules) Reset() { *x = Fixed32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[9] + mi := &file_trpc_proto_validate_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1461,7 +1461,7 @@ func (x *Fixed32Rules) String() string { func (*Fixed32Rules) ProtoMessage() {} func (x *Fixed32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[9] + mi := &file_trpc_proto_validate_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1474,7 +1474,7 @@ func (x *Fixed32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use Fixed32Rules.ProtoReflect.Descriptor instead. func (*Fixed32Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{9} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{9} } func (x *Fixed32Rules) GetConst() uint32 { @@ -1569,7 +1569,7 @@ type Fixed64Rules struct { func (x *Fixed64Rules) Reset() { *x = Fixed64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[10] + mi := &file_trpc_proto_validate_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1582,7 +1582,7 @@ func (x *Fixed64Rules) String() string { func (*Fixed64Rules) ProtoMessage() {} func (x *Fixed64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[10] + mi := &file_trpc_proto_validate_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1595,7 +1595,7 @@ func (x *Fixed64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use Fixed64Rules.ProtoReflect.Descriptor instead. func (*Fixed64Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{10} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{10} } func (x *Fixed64Rules) GetConst() uint64 { @@ -1690,7 +1690,7 @@ type SFixed32Rules struct { func (x *SFixed32Rules) Reset() { *x = SFixed32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[11] + mi := &file_trpc_proto_validate_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1703,7 +1703,7 @@ func (x *SFixed32Rules) String() string { func (*SFixed32Rules) ProtoMessage() {} func (x *SFixed32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[11] + mi := &file_trpc_proto_validate_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1716,7 +1716,7 @@ func (x *SFixed32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use SFixed32Rules.ProtoReflect.Descriptor instead. func (*SFixed32Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{11} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{11} } func (x *SFixed32Rules) GetConst() int32 { @@ -1811,7 +1811,7 @@ type SFixed64Rules struct { func (x *SFixed64Rules) Reset() { *x = SFixed64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[12] + mi := &file_trpc_proto_validate_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1824,7 +1824,7 @@ func (x *SFixed64Rules) String() string { func (*SFixed64Rules) ProtoMessage() {} func (x *SFixed64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[12] + mi := &file_trpc_proto_validate_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1837,7 +1837,7 @@ func (x *SFixed64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use SFixed64Rules.ProtoReflect.Descriptor instead. func (*SFixed64Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{12} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{12} } func (x *SFixed64Rules) GetConst() int64 { @@ -1909,7 +1909,7 @@ type BoolRules struct { func (x *BoolRules) Reset() { *x = BoolRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[13] + mi := &file_trpc_proto_validate_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1922,7 +1922,7 @@ func (x *BoolRules) String() string { func (*BoolRules) ProtoMessage() {} func (x *BoolRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[13] + mi := &file_trpc_proto_validate_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1935,7 +1935,7 @@ func (x *BoolRules) ProtoReflect() protoreflect.Message { // Deprecated: Use BoolRules.ProtoReflect.Descriptor instead. func (*BoolRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{13} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{13} } func (x *BoolRules) GetConst() bool { @@ -2034,7 +2034,7 @@ const ( func (x *StringRules) Reset() { *x = StringRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[14] + mi := &file_trpc_proto_validate_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2047,7 +2047,7 @@ func (x *StringRules) String() string { func (*StringRules) ProtoMessage() {} func (x *StringRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[14] + mi := &file_trpc_proto_validate_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2060,7 +2060,7 @@ func (x *StringRules) ProtoReflect() protoreflect.Message { // Deprecated: Use StringRules.ProtoReflect.Descriptor instead. func (*StringRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{14} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{14} } func (x *StringRules) GetConst() string { @@ -2443,7 +2443,7 @@ type BytesRules struct { func (x *BytesRules) Reset() { *x = BytesRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[15] + mi := &file_trpc_proto_validate_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2456,7 +2456,7 @@ func (x *BytesRules) String() string { func (*BytesRules) ProtoMessage() {} func (x *BytesRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[15] + mi := &file_trpc_proto_validate_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2469,7 +2469,7 @@ func (x *BytesRules) ProtoReflect() protoreflect.Message { // Deprecated: Use BytesRules.ProtoReflect.Descriptor instead. func (*BytesRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{15} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{15} } func (x *BytesRules) GetConst() []byte { @@ -2627,7 +2627,7 @@ type EnumRules struct { func (x *EnumRules) Reset() { *x = EnumRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[16] + mi := &file_trpc_proto_validate_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2640,7 +2640,7 @@ func (x *EnumRules) String() string { func (*EnumRules) ProtoMessage() {} func (x *EnumRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[16] + mi := &file_trpc_proto_validate_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2653,7 +2653,7 @@ func (x *EnumRules) ProtoReflect() protoreflect.Message { // Deprecated: Use EnumRules.ProtoReflect.Descriptor instead. func (*EnumRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{16} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{16} } func (x *EnumRules) GetConst() int32 { @@ -2701,7 +2701,7 @@ type MessageRules struct { func (x *MessageRules) Reset() { *x = MessageRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[17] + mi := &file_trpc_proto_validate_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2714,7 +2714,7 @@ func (x *MessageRules) String() string { func (*MessageRules) ProtoMessage() {} func (x *MessageRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[17] + mi := &file_trpc_proto_validate_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2727,7 +2727,7 @@ func (x *MessageRules) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageRules.ProtoReflect.Descriptor instead. func (*MessageRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{17} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{17} } func (x *MessageRules) GetSkip() bool { @@ -2772,7 +2772,7 @@ type RepeatedRules struct { func (x *RepeatedRules) Reset() { *x = RepeatedRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[18] + mi := &file_trpc_proto_validate_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2785,7 +2785,7 @@ func (x *RepeatedRules) String() string { func (*RepeatedRules) ProtoMessage() {} func (x *RepeatedRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[18] + mi := &file_trpc_proto_validate_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2798,7 +2798,7 @@ func (x *RepeatedRules) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedRules.ProtoReflect.Descriptor instead. func (*RepeatedRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{18} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{18} } func (x *RepeatedRules) GetMinItems() uint64 { @@ -2865,7 +2865,7 @@ type MapRules struct { func (x *MapRules) Reset() { *x = MapRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[19] + mi := &file_trpc_proto_validate_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2878,7 +2878,7 @@ func (x *MapRules) String() string { func (*MapRules) ProtoMessage() {} func (x *MapRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[19] + mi := &file_trpc_proto_validate_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2891,7 +2891,7 @@ func (x *MapRules) ProtoReflect() protoreflect.Message { // Deprecated: Use MapRules.ProtoReflect.Descriptor instead. func (*MapRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{19} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{19} } func (x *MapRules) GetMinPairs() uint64 { @@ -2956,7 +2956,7 @@ type AnyRules struct { func (x *AnyRules) Reset() { *x = AnyRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[20] + mi := &file_trpc_proto_validate_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2969,7 +2969,7 @@ func (x *AnyRules) String() string { func (*AnyRules) ProtoMessage() {} func (x *AnyRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[20] + mi := &file_trpc_proto_validate_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2982,7 +2982,7 @@ func (x *AnyRules) ProtoReflect() protoreflect.Message { // Deprecated: Use AnyRules.ProtoReflect.Descriptor instead. func (*AnyRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{20} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{20} } func (x *AnyRules) GetRequired() bool { @@ -3040,7 +3040,7 @@ type DurationRules struct { func (x *DurationRules) Reset() { *x = DurationRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[21] + mi := &file_trpc_proto_validate_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3053,7 +3053,7 @@ func (x *DurationRules) String() string { func (*DurationRules) ProtoMessage() {} func (x *DurationRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[21] + mi := &file_trpc_proto_validate_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3066,7 +3066,7 @@ func (x *DurationRules) ProtoReflect() protoreflect.Message { // Deprecated: Use DurationRules.ProtoReflect.Descriptor instead. func (*DurationRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{21} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{21} } func (x *DurationRules) GetRequired() bool { @@ -3163,7 +3163,7 @@ type TimestampRules struct { func (x *TimestampRules) Reset() { *x = TimestampRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[22] + mi := &file_trpc_proto_validate_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3176,7 +3176,7 @@ func (x *TimestampRules) String() string { func (*TimestampRules) ProtoMessage() {} func (x *TimestampRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_ext_proto_msgTypes[22] + mi := &file_trpc_proto_validate_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3189,7 +3189,7 @@ func (x *TimestampRules) ProtoReflect() protoreflect.Message { // Deprecated: Use TimestampRules.ProtoReflect.Descriptor instead. func (*TimestampRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_ext_proto_rawDescGZIP(), []int{22} + return file_trpc_proto_validate_proto_rawDescGZIP(), []int{22} } func (x *TimestampRules) GetRequired() bool { @@ -3255,14 +3255,14 @@ func (x *TimestampRules) GetWithin() *duration.Duration { return nil } -var file_trpc_proto_validate_ext_proto_extTypes = []protoimpl.ExtensionInfo{ +var file_trpc_proto_validate_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*descriptor.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 1071, Name: "trpc.disabled", Tag: "varint,1071,opt,name=disabled", - Filename: "trpc/proto/validate.ext.proto", + Filename: "trpc/proto/validate.proto", }, { ExtendedType: (*descriptor.MessageOptions)(nil), @@ -3270,7 +3270,7 @@ var file_trpc_proto_validate_ext_proto_extTypes = []protoimpl.ExtensionInfo{ Field: 1072, Name: "trpc.ignored", Tag: "varint,1072,opt,name=ignored", - Filename: "trpc/proto/validate.ext.proto", + Filename: "trpc/proto/validate.proto", }, { ExtendedType: (*descriptor.OneofOptions)(nil), @@ -3278,7 +3278,7 @@ var file_trpc_proto_validate_ext_proto_extTypes = []protoimpl.ExtensionInfo{ Field: 1071, Name: "trpc.required", Tag: "varint,1071,opt,name=required", - Filename: "trpc/proto/validate.ext.proto", + Filename: "trpc/proto/validate.proto", }, { ExtendedType: (*descriptor.FieldOptions)(nil), @@ -3286,7 +3286,7 @@ var file_trpc_proto_validate_ext_proto_extTypes = []protoimpl.ExtensionInfo{ Field: 1071, Name: "trpc.rules", Tag: "bytes,1071,opt,name=rules", - Filename: "trpc/proto/validate.ext.proto", + Filename: "trpc/proto/validate.proto", }, } @@ -3296,11 +3296,11 @@ var ( // message fields associated with it that do support validation. // // optional bool disabled = 1071; - E_Disabled = &file_trpc_proto_validate_ext_proto_extTypes[0] + E_Disabled = &file_trpc_proto_validate_proto_extTypes[0] // Ignore skips generation of validation methods for this message. // // optional bool ignored = 1072; - E_Ignored = &file_trpc_proto_validate_ext_proto_extTypes[1] + E_Ignored = &file_trpc_proto_validate_proto_extTypes[1] ) // Extension fields to descriptor.OneofOptions. @@ -3309,7 +3309,7 @@ var ( // validation fails if no fields in the oneof are set. // // optional bool required = 1071; - E_Required = &file_trpc_proto_validate_ext_proto_extTypes[2] + E_Required = &file_trpc_proto_validate_proto_extTypes[2] ) // Extension fields to descriptor.FieldOptions. @@ -3318,425 +3318,425 @@ var ( // no validation is performed against a field. // // optional trpc.FieldRules rules = 1071; - E_Rules = &file_trpc_proto_validate_ext_proto_extTypes[3] + E_Rules = &file_trpc_proto_validate_proto_extTypes[3] ) -var File_trpc_proto_validate_ext_proto protoreflect.FileDescriptor - -var file_trpc_proto_validate_ext_proto_rawDesc = []byte{ - 0x0a, 0x1d, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x04, 0x74, 0x72, 0x70, 0x63, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf0, 0x07, 0x0a, 0x0a, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6c, 0x6f, 0x61, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, - 0x2b, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x05, - 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, - 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, - 0x05, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x28, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x12, 0x2b, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, - 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x74, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x69, - 0x6e, 0x74, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, - 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, - 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, - 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2e, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x78, - 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, - 0x65, 0x64, 0x33, 0x32, 0x12, 0x2e, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x78, - 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, - 0x65, 0x64, 0x36, 0x34, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x46, - 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, - 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, - 0x64, 0x36, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, - 0x52, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x04, 0x62, 0x6f, - 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, - 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, - 0x6c, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x28, - 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x74, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, - 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, - 0x31, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x22, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, - 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x22, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x31, 0x0a, 0x08, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, - 0x72, 0x70, 0x63, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x48, 0x00, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0a, - 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x6c, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, - 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, - 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, +var File_trpc_proto_validate_proto protoreflect.FileDescriptor + +var file_trpc_proto_validate_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x74, 0x72, 0x70, + 0x63, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf0, 0x07, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x28, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, + 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x12, 0x28, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x06, + 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x06, 0x75, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, + 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x12, 0x2e, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, + 0x12, 0x2e, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, + 0x12, 0x31, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, + 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x33, 0x32, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x46, 0x69, + 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x2b, 0x0a, + 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x05, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x31, 0x0a, 0x08, 0x72, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x22, + 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, 0x6d, + 0x61, 0x70, 0x12, 0x22, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x31, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, + 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x67, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x02, 0x69, 0x6e, + 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x02, + 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x44, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, + 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x01, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x02, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x20, 0x03, 0x28, 0x01, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, - 0x01, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x63, - 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x01, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, - 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x01, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, - 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, - 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, - 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb0, + 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, + 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, + 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, + 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, - 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, + 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x74, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x67, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, - 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x02, + 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x67, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x67, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, + 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, - 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x6e, - 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, + 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x04, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, + 0x11, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x11, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x11, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x11, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, - 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x11, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, + 0x28, 0x12, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x12, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x12, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x12, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, - 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x12, 0x52, 0x05, - 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, - 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x6c, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x6c, 0x74, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x67, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, - 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x07, 0x52, - 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x07, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, - 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, - 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x63, - 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, - 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x06, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x06, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x06, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x06, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, - 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x06, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, - 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0f, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, - 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x05, - 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x07, 0x52, 0x02, 0x69, 0x6e, 0x12, + 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x07, 0x52, + 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x6c, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x6c, - 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, - 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x10, 0x52, - 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x10, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x6c, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, + 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x06, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x06, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x10, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x20, 0x03, 0x28, 0x06, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, - 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, - 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x22, 0xcc, 0x06, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, - 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, - 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, - 0x65, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x6c, 0x65, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6e, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, - 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, - 0x49, 0x6e, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x08, 0x68, 0x6f, - 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, - 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, - 0x76, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, - 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x19, 0x0a, 0x07, 0x75, 0x72, - 0x69, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, - 0x72, 0x69, 0x52, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x14, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x10, 0x77, 0x65, 0x6c, 0x6c, 0x5f, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, - 0x67, 0x65, 0x78, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, - 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, - 0x74, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x62, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, - 0x6d, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, - 0x73, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, - 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, 0x72, - 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, - 0x72, 0x12, 0x1c, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, - 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, - 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, - 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x22, 0xe2, 0x02, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, - 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x75, 0x66, - 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x6e, 0x12, - 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x52, - 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, - 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, - 0x69, 0x70, 0x76, 0x36, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0x6b, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, - 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, - 0x49, 0x6e, 0x22, 0x3e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x22, 0xac, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, - 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0xd4, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, - 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, - 0x61, 0x78, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x6d, 0x61, 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x73, - 0x70, 0x61, 0x72, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x53, - 0x70, 0x61, 0x72, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x28, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, - 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, 0x0a, 0x08, 0x41, 0x6e, 0x79, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, - 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0xe9, 0x02, 0x0a, 0x0d, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6c, - 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, + 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0f, 0x52, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0f, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, + 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, + 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x67, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x10, 0x52, 0x02, 0x69, 0x6e, + 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x10, + 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x0a, 0x09, 0x42, 0x6f, + 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x22, 0xcc, 0x06, + 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x17, + 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x6e, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, + 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x16, + 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, + 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, + 0x76, 0x36, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x19, 0x0a, 0x07, 0x75, 0x72, 0x69, 0x5f, 0x72, 0x65, + 0x66, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x72, 0x69, 0x52, 0x65, + 0x66, 0x12, 0x1a, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x10, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x48, + 0x00, 0x52, 0x0e, 0x77, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, + 0x78, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x73, 0x18, 0x1b, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, + 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x1c, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, + 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x1d, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, + 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, 0x72, 0x18, 0x1e, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, 0x72, 0x12, 0x1c, 0x0a, + 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, + 0x72, 0x75, 0x65, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0c, + 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xe2, 0x02, 0x0a, + 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, + 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, + 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, + 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x74, + 0x49, 0x6e, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, + 0x76, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, + 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x22, 0x6b, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, + 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, + 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0x3e, + 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x6b, + 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0xac, + 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, + 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xd4, 0x01, + 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, + 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, + 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x50, + 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x53, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x12, 0x24, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x28, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, 0x0a, 0x08, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, + 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x22, 0xe9, 0x02, 0x0a, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x12, 0x29, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x29, - 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2b, 0x0a, + 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x67, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x67, 0x74, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x67, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, + 0x6e, 0x52, 0x02, 0x67, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x69, - 0x6e, 0x12, 0x30, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x6e, 0x6f, - 0x74, 0x49, 0x6e, 0x22, 0xf3, 0x02, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x63, - 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x6c, 0x74, - 0x12, 0x2c, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x67, + 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x30, 0x0a, + 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x2a, - 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x67, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x67, 0x74, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x74, 0x5f, 0x6e, - 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x74, 0x4e, 0x6f, 0x77, 0x12, - 0x15, 0x0a, 0x06, 0x67, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x05, 0x67, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0x31, 0x0a, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x2a, 0x46, 0x0a, 0x0a, 0x4b, 0x6e, 0x6f, - 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, - 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, - 0x44, 0x45, 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x54, - 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, - 0x02, 0x3a, 0x3c, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x2e, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, + 0xf3, 0x02, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x30, + 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, - 0x3a, 0x0a, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb0, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x08, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x46, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0xaf, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x42, - 0x4a, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, - 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, - 0x5a, 0x29, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, - 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x2a, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2c, 0x0a, 0x03, + 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x02, 0x67, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x02, 0x67, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0x15, 0x0a, 0x06, 0x67, + 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x74, 0x4e, + 0x6f, 0x77, 0x12, 0x31, 0x0a, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x77, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x2a, 0x46, 0x0a, 0x0a, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, + 0x67, 0x65, 0x78, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, + 0x12, 0x14, 0x0a, 0x10, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, + 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, + 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x02, 0x3a, 0x3c, 0x0a, + 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x07, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb0, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x64, 0x3a, 0x46, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x4a, 0x0a, 0x1d, 0x63, + 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x29, 0x67, 0x69, + 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, + 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, } var ( - file_trpc_proto_validate_ext_proto_rawDescOnce sync.Once - file_trpc_proto_validate_ext_proto_rawDescData = file_trpc_proto_validate_ext_proto_rawDesc + file_trpc_proto_validate_proto_rawDescOnce sync.Once + file_trpc_proto_validate_proto_rawDescData = file_trpc_proto_validate_proto_rawDesc ) -func file_trpc_proto_validate_ext_proto_rawDescGZIP() []byte { - file_trpc_proto_validate_ext_proto_rawDescOnce.Do(func() { - file_trpc_proto_validate_ext_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_proto_validate_ext_proto_rawDescData) +func file_trpc_proto_validate_proto_rawDescGZIP() []byte { + file_trpc_proto_validate_proto_rawDescOnce.Do(func() { + file_trpc_proto_validate_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_proto_validate_proto_rawDescData) }) - return file_trpc_proto_validate_ext_proto_rawDescData + return file_trpc_proto_validate_proto_rawDescData } -var file_trpc_proto_validate_ext_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_trpc_proto_validate_ext_proto_msgTypes = make([]protoimpl.MessageInfo, 23) -var file_trpc_proto_validate_ext_proto_goTypes = []interface{}{ +var file_trpc_proto_validate_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_trpc_proto_validate_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_trpc_proto_validate_proto_goTypes = []interface{}{ (KnownRegex)(0), // 0: trpc.KnownRegex (*FieldRules)(nil), // 1: trpc.FieldRules (*FloatRules)(nil), // 2: trpc.FloatRules @@ -3767,7 +3767,7 @@ var file_trpc_proto_validate_ext_proto_goTypes = []interface{}{ (*descriptor.OneofOptions)(nil), // 27: google.protobuf.OneofOptions (*descriptor.FieldOptions)(nil), // 28: google.protobuf.FieldOptions } -var file_trpc_proto_validate_ext_proto_depIdxs = []int32{ +var file_trpc_proto_validate_proto_depIdxs = []int32{ 18, // 0: trpc.FieldRules.message:type_name -> trpc.MessageRules 2, // 1: trpc.FieldRules.float:type_name -> trpc.FloatRules 3, // 2: trpc.FieldRules.double:type_name -> trpc.DoubleRules @@ -3819,13 +3819,13 @@ var file_trpc_proto_validate_ext_proto_depIdxs = []int32{ 0, // [0:39] is the sub-list for field type_name } -func init() { file_trpc_proto_validate_ext_proto_init() } -func file_trpc_proto_validate_ext_proto_init() { - if File_trpc_proto_validate_ext_proto != nil { +func init() { file_trpc_proto_validate_proto_init() } +func file_trpc_proto_validate_proto_init() { + if File_trpc_proto_validate_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_trpc_proto_validate_ext_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldRules); i { case 0: return &v.state @@ -3837,7 +3837,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FloatRules); i { case 0: return &v.state @@ -3849,7 +3849,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DoubleRules); i { case 0: return &v.state @@ -3861,7 +3861,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Int32Rules); i { case 0: return &v.state @@ -3873,7 +3873,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Int64Rules); i { case 0: return &v.state @@ -3885,7 +3885,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UInt32Rules); i { case 0: return &v.state @@ -3897,7 +3897,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UInt64Rules); i { case 0: return &v.state @@ -3909,7 +3909,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SInt32Rules); i { case 0: return &v.state @@ -3921,7 +3921,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SInt64Rules); i { case 0: return &v.state @@ -3933,7 +3933,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Fixed32Rules); i { case 0: return &v.state @@ -3945,7 +3945,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Fixed64Rules); i { case 0: return &v.state @@ -3957,7 +3957,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SFixed32Rules); i { case 0: return &v.state @@ -3969,7 +3969,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SFixed64Rules); i { case 0: return &v.state @@ -3981,7 +3981,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BoolRules); i { case 0: return &v.state @@ -3993,7 +3993,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StringRules); i { case 0: return &v.state @@ -4005,7 +4005,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BytesRules); i { case 0: return &v.state @@ -4017,7 +4017,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnumRules); i { case 0: return &v.state @@ -4029,7 +4029,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageRules); i { case 0: return &v.state @@ -4041,7 +4041,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepeatedRules); i { case 0: return &v.state @@ -4053,7 +4053,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MapRules); i { case 0: return &v.state @@ -4065,7 +4065,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnyRules); i { case 0: return &v.state @@ -4077,7 +4077,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DurationRules); i { case 0: return &v.state @@ -4089,7 +4089,7 @@ func file_trpc_proto_validate_ext_proto_init() { return nil } } - file_trpc_proto_validate_ext_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_trpc_proto_validate_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TimestampRules); i { case 0: return &v.state @@ -4102,7 +4102,7 @@ func file_trpc_proto_validate_ext_proto_init() { } } } - file_trpc_proto_validate_ext_proto_msgTypes[0].OneofWrappers = []interface{}{ + file_trpc_proto_validate_proto_msgTypes[0].OneofWrappers = []interface{}{ (*FieldRules_Float)(nil), (*FieldRules_Double)(nil), (*FieldRules_Int32)(nil), @@ -4125,7 +4125,7 @@ func file_trpc_proto_validate_ext_proto_init() { (*FieldRules_Duration)(nil), (*FieldRules_Timestamp)(nil), } - file_trpc_proto_validate_ext_proto_msgTypes[14].OneofWrappers = []interface{}{ + file_trpc_proto_validate_proto_msgTypes[14].OneofWrappers = []interface{}{ (*StringRules_Email)(nil), (*StringRules_Hostname)(nil), (*StringRules_Ip)(nil), @@ -4141,7 +4141,7 @@ func file_trpc_proto_validate_ext_proto_init() { (*StringRules_Lowercase)(nil), (*StringRules_Tsecstr)(nil), } - file_trpc_proto_validate_ext_proto_msgTypes[15].OneofWrappers = []interface{}{ + file_trpc_proto_validate_proto_msgTypes[15].OneofWrappers = []interface{}{ (*BytesRules_Ip)(nil), (*BytesRules_Ipv4)(nil), (*BytesRules_Ipv6)(nil), @@ -4150,20 +4150,20 @@ func file_trpc_proto_validate_ext_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_trpc_proto_validate_ext_proto_rawDesc, + RawDescriptor: file_trpc_proto_validate_proto_rawDesc, NumEnums: 1, NumMessages: 23, NumExtensions: 4, NumServices: 0, }, - GoTypes: file_trpc_proto_validate_ext_proto_goTypes, - DependencyIndexes: file_trpc_proto_validate_ext_proto_depIdxs, - EnumInfos: file_trpc_proto_validate_ext_proto_enumTypes, - MessageInfos: file_trpc_proto_validate_ext_proto_msgTypes, - ExtensionInfos: file_trpc_proto_validate_ext_proto_extTypes, + GoTypes: file_trpc_proto_validate_proto_goTypes, + DependencyIndexes: file_trpc_proto_validate_proto_depIdxs, + EnumInfos: file_trpc_proto_validate_proto_enumTypes, + MessageInfos: file_trpc_proto_validate_proto_msgTypes, + ExtensionInfos: file_trpc_proto_validate_proto_extTypes, }.Build() - File_trpc_proto_validate_ext_proto = out.File - file_trpc_proto_validate_ext_proto_rawDesc = nil - file_trpc_proto_validate_ext_proto_goTypes = nil - file_trpc_proto_validate_ext_proto_depIdxs = nil + File_trpc_proto_validate_proto = out.File + file_trpc_proto_validate_proto_rawDesc = nil + file_trpc_proto_validate_proto_goTypes = nil + file_trpc_proto_validate_proto_depIdxs = nil } diff --git a/trpc/proto/swagger.proto b/trpc/proto/swagger.proto index 5b67d08..3effff5 100644 --- a/trpc/proto/swagger.proto +++ b/trpc/proto/swagger.proto @@ -3,7 +3,7 @@ import "google/protobuf/descriptor.proto"; package trpc; option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; -option java_package = "com.tencent.trpc.protobuf.ext"; +option java_package = "com.tencent.trpc.proto.standard.common"; extend google.protobuf.MethodOptions { SwaggerRule swagger = 50101; diff --git a/trpc/proto/trpc_options.proto b/trpc/proto/trpc_options.proto index 7844568..6da151b 100644 --- a/trpc/proto/trpc_options.proto +++ b/trpc/proto/trpc_options.proto @@ -5,6 +5,7 @@ import "google/protobuf/descriptor.proto"; package trpc; option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; +option java_package = "com.tencent.trpc.proto.standard.common"; extend google.protobuf.MethodOptions { string alias = 50001; diff --git a/trpc/proto/validate.ext.proto b/trpc/proto/validate.proto similarity index 99% rename from trpc/proto/validate.ext.proto rename to trpc/proto/validate.proto index d7de5c0..cac6d0a 100644 --- a/trpc/proto/validate.ext.proto +++ b/trpc/proto/validate.proto @@ -2,7 +2,7 @@ syntax = "proto2"; package trpc; option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; -option java_package = "com.tencent.trpc.protobuf.ext"; +option java_package = "com.tencent.trpc.proto.standard.common"; import "google/protobuf/descriptor.proto"; import "google/protobuf/duration.proto"; From 5e6aaaaaa298696c3b3a4a681c9862a446c41a5c Mon Sep 17 00:00:00 2001 From: wineguo Date: Thu, 25 Aug 2022 20:18:48 +0800 Subject: [PATCH 63/85] add java package option (merge request !20) Squash merge branch 'add_java_package' into 'master' add java package option TAPD: --story=877279539 --- trpc/api/annotations.proto | 1 + trpc/api/http.proto | 1 + trpc/proto/swagger.proto | 2 +- trpc/proto/trpc_options.proto | 2 +- trpc/proto/validate.proto | 2 +- 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/trpc/api/annotations.proto b/trpc/api/annotations.proto index f6a7320..a1fea9a 100644 --- a/trpc/api/annotations.proto +++ b/trpc/api/annotations.proto @@ -6,6 +6,7 @@ import "trpc/api/http.proto"; import "google/protobuf/descriptor.proto"; option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/api"; +option java_package = "com.tencent.trpc.protobuf.ext"; extend google.protobuf.MethodOptions { HttpRule http = 50201; diff --git a/trpc/api/http.proto b/trpc/api/http.proto index eb83ff0..852af87 100644 --- a/trpc/api/http.proto +++ b/trpc/api/http.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package trpc.api; option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/api"; +option java_package = "com.tencent.trpc.protobuf.ext"; message HttpRule { // Selects a method to which this rule applies. diff --git a/trpc/proto/swagger.proto b/trpc/proto/swagger.proto index 3effff5..5b67d08 100644 --- a/trpc/proto/swagger.proto +++ b/trpc/proto/swagger.proto @@ -3,7 +3,7 @@ import "google/protobuf/descriptor.proto"; package trpc; option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; -option java_package = "com.tencent.trpc.proto.standard.common"; +option java_package = "com.tencent.trpc.protobuf.ext"; extend google.protobuf.MethodOptions { SwaggerRule swagger = 50101; diff --git a/trpc/proto/trpc_options.proto b/trpc/proto/trpc_options.proto index 6da151b..8725b6f 100644 --- a/trpc/proto/trpc_options.proto +++ b/trpc/proto/trpc_options.proto @@ -5,7 +5,7 @@ import "google/protobuf/descriptor.proto"; package trpc; option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; -option java_package = "com.tencent.trpc.proto.standard.common"; +option java_package = "com.tencent.trpc.protobuf.ext"; extend google.protobuf.MethodOptions { string alias = 50001; diff --git a/trpc/proto/validate.proto b/trpc/proto/validate.proto index cac6d0a..d7de5c0 100644 --- a/trpc/proto/validate.proto +++ b/trpc/proto/validate.proto @@ -2,7 +2,7 @@ syntax = "proto2"; package trpc; option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; -option java_package = "com.tencent.trpc.proto.standard.common"; +option java_package = "com.tencent.trpc.protobuf.ext"; import "google/protobuf/descriptor.proto"; import "google/protobuf/duration.proto"; From 372b5b995b8acfd1ec43ec8018b62767eb864735 Mon Sep 17 00:00:00 2001 From: wineguo Date: Tue, 20 Sep 2022 16:26:50 +0800 Subject: [PATCH 64/85] change paths of protobuf files (merge request !22) Squash merge branch 'change_path' into 'master' TAPD: --story=877372287 --- .gitignore | 1 + Makefile | 11 +- pb/go/trpc/api/annotations.pb.go | 10 +- pb/go/trpc/api/http.pb.go | 10 +- pb/go/trpc/{ => proto}/trpc_options.pb.go | 13 +- pb/go/trpc/{ => swagger}/swagger.pb.go | 134 +-- pb/go/trpc/trpc.pb.go | 723 ++++++------- pb/go/trpc/{ => validate}/validate.pb.go | 1204 +++++++++++---------- test/cpp/BUILD | 30 +- testbuild.sh | 3 + trpc/BUILD | 8 + trpc/api/BUILD | 19 + trpc/proto/BUILD | 7 - trpc/proto/trpc_options.proto | 2 +- trpc/swagger/BUILD | 11 + trpc/{proto => swagger}/swagger.proto | 2 +- trpc/{proto => }/trpc.proto | 0 trpc/validate/BUILD | 13 + trpc/{proto => validate}/validate.proto | 4 +- 19 files changed, 1154 insertions(+), 1051 deletions(-) create mode 100644 .gitignore rename pb/go/trpc/{ => proto}/trpc_options.pb.go (87%) rename pb/go/trpc/{ => swagger}/swagger.pb.go (51%) rename pb/go/trpc/{ => validate}/validate.pb.go (66%) create mode 100755 testbuild.sh create mode 100644 trpc/api/BUILD create mode 100644 trpc/swagger/BUILD rename trpc/{proto => swagger}/swagger.proto (86%) rename trpc/{proto => }/trpc.proto (100%) create mode 100644 trpc/validate/BUILD rename trpc/{proto => validate}/validate.proto (99%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ac51a05 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +bazel-* diff --git a/Makefile b/Makefile index c761417..26cb1b9 100644 --- a/Makefile +++ b/Makefile @@ -8,13 +8,18 @@ all: ./trpc/api/http.proto protoc -I/usr/local/include -I.\ --go_out=./$(DIR) \ - ./trpc/proto/trpc.proto \ - ./trpc/proto/swagger.proto \ + ./trpc/trpc.proto \ ./trpc/proto/trpc_options.proto \ - ./trpc/proto/validate.proto + ./trpc/swagger/swagger.proto \ + ./trpc/validate/validate.proto mv $(DIR)/git.woa.com/trpc/trpc-protocol/pb/go/trpc/* $(DIR)/trpc rm -rf $(DIR)/git.woa.com cd ./$(DIR)/trpc && go mod init git.woa.com/trpc/trpc-protocol/$(DIR)/trpc && go mod tidy && cd - +.PHONY: test clean + +test: + ./testbuild.sh + clean: rm -rf $(DIR) diff --git a/pb/go/trpc/api/annotations.pb.go b/pb/go/trpc/api/annotations.pb.go index 51627ee..e8eaa27 100644 --- a/pb/go/trpc/api/annotations.pb.go +++ b/pb/go/trpc/api/annotations.pb.go @@ -50,10 +50,12 @@ var file_trpc_api_annotations_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x88, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, - 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x77, - 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, - 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, - 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x42, 0x4e, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, + 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, + 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_trpc_api_annotations_proto_goTypes = []interface{}{ diff --git a/pb/go/trpc/api/http.pb.go b/pb/go/trpc/api/http.pb.go index 1797e7e..3698ad3 100644 --- a/pb/go/trpc/api/http.pb.go +++ b/pb/go/trpc/api/http.pb.go @@ -308,10 +308,12 @@ var file_trpc_api_http_proto_rawDesc = []byte{ 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, - 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x4e, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, + 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, + 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/go/trpc/trpc_options.pb.go b/pb/go/trpc/proto/trpc_options.pb.go similarity index 87% rename from pb/go/trpc/trpc_options.pb.go rename to pb/go/trpc/proto/trpc_options.pb.go index d0672b1..0163aa1 100644 --- a/pb/go/trpc/trpc_options.pb.go +++ b/pb/go/trpc/proto/trpc_options.pb.go @@ -4,7 +4,7 @@ // protoc v3.6.1 // source: trpc/proto/trpc_options.proto -package trpc +package proto import ( descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" @@ -65,10 +65,13 @@ var file_trpc_proto_trpc_options_proto_rawDesc = []byte{ 0x36, 0x0a, 0x06, 0x67, 0x6f, 0x5f, 0x74, 0x61, 0x67, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x82, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x2b, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x2e, 0x77, - 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, - 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, - 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x50, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, + 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, + 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var file_trpc_proto_trpc_options_proto_goTypes = []interface{}{ diff --git a/pb/go/trpc/swagger.pb.go b/pb/go/trpc/swagger/swagger.pb.go similarity index 51% rename from pb/go/trpc/swagger.pb.go rename to pb/go/trpc/swagger/swagger.pb.go index b52a604..95e0783 100644 --- a/pb/go/trpc/swagger.pb.go +++ b/pb/go/trpc/swagger/swagger.pb.go @@ -2,9 +2,9 @@ // versions: // protoc-gen-go v1.26.0 // protoc v3.6.1 -// source: trpc/proto/swagger.proto +// source: trpc/swagger/swagger.proto -package trpc +package swagger import ( descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" @@ -36,7 +36,7 @@ type SwaggerRule struct { func (x *SwaggerRule) Reset() { *x = SwaggerRule{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_swagger_proto_msgTypes[0] + mi := &file_trpc_swagger_swagger_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49,7 +49,7 @@ func (x *SwaggerRule) String() string { func (*SwaggerRule) ProtoMessage() {} func (x *SwaggerRule) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_swagger_proto_msgTypes[0] + mi := &file_trpc_swagger_swagger_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62,7 +62,7 @@ func (x *SwaggerRule) ProtoReflect() protoreflect.Message { // Deprecated: Use SwaggerRule.ProtoReflect.Descriptor instead. func (*SwaggerRule) Descriptor() ([]byte, []int) { - return file_trpc_proto_swagger_proto_rawDescGZIP(), []int{0} + return file_trpc_swagger_swagger_proto_rawDescGZIP(), []int{0} } func (x *SwaggerRule) GetTitle() string { @@ -106,7 +106,7 @@ type SwaggerParam struct { func (x *SwaggerParam) Reset() { *x = SwaggerParam{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_swagger_proto_msgTypes[1] + mi := &file_trpc_swagger_swagger_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -119,7 +119,7 @@ func (x *SwaggerParam) String() string { func (*SwaggerParam) ProtoMessage() {} func (x *SwaggerParam) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_swagger_proto_msgTypes[1] + mi := &file_trpc_swagger_swagger_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -132,7 +132,7 @@ func (x *SwaggerParam) ProtoReflect() protoreflect.Message { // Deprecated: Use SwaggerParam.ProtoReflect.Descriptor instead. func (*SwaggerParam) Descriptor() ([]byte, []int) { - return file_trpc_proto_swagger_proto_rawDescGZIP(), []int{1} + return file_trpc_swagger_swagger_proto_rawDescGZIP(), []int{1} } func (x *SwaggerParam) GetName() string { @@ -156,77 +156,77 @@ func (x *SwaggerParam) GetDefault() string { return "" } -var file_trpc_proto_swagger_proto_extTypes = []protoimpl.ExtensionInfo{ +var file_trpc_swagger_swagger_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*descriptor.MethodOptions)(nil), ExtensionType: (*SwaggerRule)(nil), Field: 50101, Name: "trpc.swagger", Tag: "bytes,50101,opt,name=swagger", - Filename: "trpc/proto/swagger.proto", + Filename: "trpc/swagger/swagger.proto", }, } // Extension fields to descriptor.MethodOptions. var ( // optional trpc.SwaggerRule swagger = 50101; - E_Swagger = &file_trpc_proto_swagger_proto_extTypes[0] + E_Swagger = &file_trpc_swagger_swagger_proto_extTypes[0] ) -var File_trpc_proto_swagger_proto protoreflect.FileDescriptor - -var file_trpc_proto_swagger_proto_rawDesc = []byte{ - 0x0a, 0x18, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x77, 0x61, - 0x67, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x74, 0x72, 0x70, 0x63, - 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x52, 0x75, - 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0xb7, 0x87, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x18, 0xb8, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x12, 0x22, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0xb9, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0xba, 0x87, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x58, 0x0a, 0x0c, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x3a, 0x4d, 0x0a, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb5, 0x87, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, - 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x42, - 0x4a, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, - 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, - 0x5a, 0x29, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, - 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, +var File_trpc_swagger_swagger_proto protoreflect.FileDescriptor + +var file_trpc_swagger_swagger_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2f, 0x73, + 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x74, 0x72, + 0x70, 0x63, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, + 0x52, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0xb7, 0x87, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x06, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0xb8, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x22, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xb9, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0xba, 0x87, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x58, 0x0a, 0x0c, 0x53, 0x77, 0x61, 0x67, + 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x3a, 0x4d, 0x0a, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x12, 0x1e, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb5, 0x87, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, + 0x67, 0x67, 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, + 0x72, 0x42, 0x52, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, + 0x78, 0x74, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x77, + 0x61, 0x67, 0x67, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_trpc_proto_swagger_proto_rawDescOnce sync.Once - file_trpc_proto_swagger_proto_rawDescData = file_trpc_proto_swagger_proto_rawDesc + file_trpc_swagger_swagger_proto_rawDescOnce sync.Once + file_trpc_swagger_swagger_proto_rawDescData = file_trpc_swagger_swagger_proto_rawDesc ) -func file_trpc_proto_swagger_proto_rawDescGZIP() []byte { - file_trpc_proto_swagger_proto_rawDescOnce.Do(func() { - file_trpc_proto_swagger_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_proto_swagger_proto_rawDescData) +func file_trpc_swagger_swagger_proto_rawDescGZIP() []byte { + file_trpc_swagger_swagger_proto_rawDescOnce.Do(func() { + file_trpc_swagger_swagger_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_swagger_swagger_proto_rawDescData) }) - return file_trpc_proto_swagger_proto_rawDescData + return file_trpc_swagger_swagger_proto_rawDescData } -var file_trpc_proto_swagger_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_trpc_proto_swagger_proto_goTypes = []interface{}{ +var file_trpc_swagger_swagger_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_trpc_swagger_swagger_proto_goTypes = []interface{}{ (*SwaggerRule)(nil), // 0: trpc.SwaggerRule (*SwaggerParam)(nil), // 1: trpc.SwaggerParam (*descriptor.MethodOptions)(nil), // 2: google.protobuf.MethodOptions } -var file_trpc_proto_swagger_proto_depIdxs = []int32{ +var file_trpc_swagger_swagger_proto_depIdxs = []int32{ 1, // 0: trpc.SwaggerRule.params:type_name -> trpc.SwaggerParam 2, // 1: trpc.swagger:extendee -> google.protobuf.MethodOptions 0, // 2: trpc.swagger:type_name -> trpc.SwaggerRule @@ -237,13 +237,13 @@ var file_trpc_proto_swagger_proto_depIdxs = []int32{ 0, // [0:1] is the sub-list for field type_name } -func init() { file_trpc_proto_swagger_proto_init() } -func file_trpc_proto_swagger_proto_init() { - if File_trpc_proto_swagger_proto != nil { +func init() { file_trpc_swagger_swagger_proto_init() } +func file_trpc_swagger_swagger_proto_init() { + if File_trpc_swagger_swagger_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_trpc_proto_swagger_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_trpc_swagger_swagger_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SwaggerRule); i { case 0: return &v.state @@ -255,7 +255,7 @@ func file_trpc_proto_swagger_proto_init() { return nil } } - file_trpc_proto_swagger_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_trpc_swagger_swagger_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SwaggerParam); i { case 0: return &v.state @@ -272,19 +272,19 @@ func file_trpc_proto_swagger_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_trpc_proto_swagger_proto_rawDesc, + RawDescriptor: file_trpc_swagger_swagger_proto_rawDesc, NumEnums: 0, NumMessages: 2, NumExtensions: 1, NumServices: 0, }, - GoTypes: file_trpc_proto_swagger_proto_goTypes, - DependencyIndexes: file_trpc_proto_swagger_proto_depIdxs, - MessageInfos: file_trpc_proto_swagger_proto_msgTypes, - ExtensionInfos: file_trpc_proto_swagger_proto_extTypes, + GoTypes: file_trpc_swagger_swagger_proto_goTypes, + DependencyIndexes: file_trpc_swagger_swagger_proto_depIdxs, + MessageInfos: file_trpc_swagger_swagger_proto_msgTypes, + ExtensionInfos: file_trpc_swagger_swagger_proto_extTypes, }.Build() - File_trpc_proto_swagger_proto = out.File - file_trpc_proto_swagger_proto_rawDesc = nil - file_trpc_proto_swagger_proto_goTypes = nil - file_trpc_proto_swagger_proto_depIdxs = nil + File_trpc_swagger_swagger_proto = out.File + file_trpc_swagger_swagger_proto_rawDesc = nil + file_trpc_swagger_swagger_proto_goTypes = nil + file_trpc_swagger_swagger_proto_depIdxs = nil } diff --git a/pb/go/trpc/trpc.pb.go b/pb/go/trpc/trpc.pb.go index 6f47d6a..0c8216c 100644 --- a/pb/go/trpc/trpc.pb.go +++ b/pb/go/trpc/trpc.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.26.0 // protoc v3.6.1 -// source: trpc/proto/trpc.proto +// source: trpc/trpc.proto package trpc @@ -53,11 +53,11 @@ func (x TrpcMagic) String() string { } func (TrpcMagic) Descriptor() protoreflect.EnumDescriptor { - return file_trpc_proto_trpc_proto_enumTypes[0].Descriptor() + return file_trpc_trpc_proto_enumTypes[0].Descriptor() } func (TrpcMagic) Type() protoreflect.EnumType { - return &file_trpc_proto_trpc_proto_enumTypes[0] + return &file_trpc_trpc_proto_enumTypes[0] } func (x TrpcMagic) Number() protoreflect.EnumNumber { @@ -66,7 +66,7 @@ func (x TrpcMagic) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcMagic.Descriptor instead. func (TrpcMagic) EnumDescriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{0} + return file_trpc_trpc_proto_rawDescGZIP(), []int{0} } // trpc协议的二进制数据帧类型 @@ -105,11 +105,11 @@ func (x TrpcDataFrameType) String() string { } func (TrpcDataFrameType) Descriptor() protoreflect.EnumDescriptor { - return file_trpc_proto_trpc_proto_enumTypes[1].Descriptor() + return file_trpc_trpc_proto_enumTypes[1].Descriptor() } func (TrpcDataFrameType) Type() protoreflect.EnumType { - return &file_trpc_proto_trpc_proto_enumTypes[1] + return &file_trpc_trpc_proto_enumTypes[1] } func (x TrpcDataFrameType) Number() protoreflect.EnumNumber { @@ -118,7 +118,7 @@ func (x TrpcDataFrameType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcDataFrameType.Descriptor instead. func (TrpcDataFrameType) EnumDescriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{1} + return file_trpc_trpc_proto_rawDescGZIP(), []int{1} } // trpc协议流式的二进制数据帧类型 @@ -172,11 +172,11 @@ func (x TrpcStreamFrameType) String() string { } func (TrpcStreamFrameType) Descriptor() protoreflect.EnumDescriptor { - return file_trpc_proto_trpc_proto_enumTypes[2].Descriptor() + return file_trpc_trpc_proto_enumTypes[2].Descriptor() } func (TrpcStreamFrameType) Type() protoreflect.EnumType { - return &file_trpc_proto_trpc_proto_enumTypes[2] + return &file_trpc_trpc_proto_enumTypes[2] } func (x TrpcStreamFrameType) Number() protoreflect.EnumNumber { @@ -185,7 +185,7 @@ func (x TrpcStreamFrameType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcStreamFrameType.Descriptor instead. func (TrpcStreamFrameType) EnumDescriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{2} + return file_trpc_trpc_proto_rawDescGZIP(), []int{2} } // trpc流式关闭类型 @@ -221,11 +221,11 @@ func (x TrpcStreamCloseType) String() string { } func (TrpcStreamCloseType) Descriptor() protoreflect.EnumDescriptor { - return file_trpc_proto_trpc_proto_enumTypes[3].Descriptor() + return file_trpc_trpc_proto_enumTypes[3].Descriptor() } func (TrpcStreamCloseType) Type() protoreflect.EnumType { - return &file_trpc_proto_trpc_proto_enumTypes[3] + return &file_trpc_trpc_proto_enumTypes[3] } func (x TrpcStreamCloseType) Number() protoreflect.EnumNumber { @@ -234,7 +234,7 @@ func (x TrpcStreamCloseType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcStreamCloseType.Descriptor instead. func (TrpcStreamCloseType) EnumDescriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{3} + return file_trpc_trpc_proto_rawDescGZIP(), []int{3} } // trpc协议版本 @@ -266,11 +266,11 @@ func (x TrpcProtoVersion) String() string { } func (TrpcProtoVersion) Descriptor() protoreflect.EnumDescriptor { - return file_trpc_proto_trpc_proto_enumTypes[4].Descriptor() + return file_trpc_trpc_proto_enumTypes[4].Descriptor() } func (TrpcProtoVersion) Type() protoreflect.EnumType { - return &file_trpc_proto_trpc_proto_enumTypes[4] + return &file_trpc_trpc_proto_enumTypes[4] } func (x TrpcProtoVersion) Number() protoreflect.EnumNumber { @@ -279,7 +279,7 @@ func (x TrpcProtoVersion) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcProtoVersion.Descriptor instead. func (TrpcProtoVersion) EnumDescriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{4} + return file_trpc_trpc_proto_rawDescGZIP(), []int{4} } // trpc协议中的调用类型 @@ -315,11 +315,11 @@ func (x TrpcCallType) String() string { } func (TrpcCallType) Descriptor() protoreflect.EnumDescriptor { - return file_trpc_proto_trpc_proto_enumTypes[5].Descriptor() + return file_trpc_trpc_proto_enumTypes[5].Descriptor() } func (TrpcCallType) Type() protoreflect.EnumType { - return &file_trpc_proto_trpc_proto_enumTypes[5] + return &file_trpc_trpc_proto_enumTypes[5] } func (x TrpcCallType) Number() protoreflect.EnumNumber { @@ -328,7 +328,7 @@ func (x TrpcCallType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcCallType.Descriptor instead. func (TrpcCallType) EnumDescriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{5} + return file_trpc_trpc_proto_rawDescGZIP(), []int{5} } // trpc协议中的消息透传支持的类型 @@ -380,11 +380,11 @@ func (x TrpcMessageType) String() string { } func (TrpcMessageType) Descriptor() protoreflect.EnumDescriptor { - return file_trpc_proto_trpc_proto_enumTypes[6].Descriptor() + return file_trpc_trpc_proto_enumTypes[6].Descriptor() } func (TrpcMessageType) Type() protoreflect.EnumType { - return &file_trpc_proto_trpc_proto_enumTypes[6] + return &file_trpc_trpc_proto_enumTypes[6] } func (x TrpcMessageType) Number() protoreflect.EnumNumber { @@ -393,7 +393,7 @@ func (x TrpcMessageType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcMessageType.Descriptor instead. func (TrpcMessageType) EnumDescriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{6} + return file_trpc_trpc_proto_rawDescGZIP(), []int{6} } // trpc协议中 data 内容的编码类型 @@ -451,11 +451,11 @@ func (x TrpcContentEncodeType) String() string { } func (TrpcContentEncodeType) Descriptor() protoreflect.EnumDescriptor { - return file_trpc_proto_trpc_proto_enumTypes[7].Descriptor() + return file_trpc_trpc_proto_enumTypes[7].Descriptor() } func (TrpcContentEncodeType) Type() protoreflect.EnumType { - return &file_trpc_proto_trpc_proto_enumTypes[7] + return &file_trpc_trpc_proto_enumTypes[7] } func (x TrpcContentEncodeType) Number() protoreflect.EnumNumber { @@ -464,7 +464,7 @@ func (x TrpcContentEncodeType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcContentEncodeType.Descriptor instead. func (TrpcContentEncodeType) EnumDescriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{7} + return file_trpc_trpc_proto_rawDescGZIP(), []int{7} } // trpc协议中 data 内容的压缩类型 @@ -520,11 +520,11 @@ func (x TrpcCompressType) String() string { } func (TrpcCompressType) Descriptor() protoreflect.EnumDescriptor { - return file_trpc_proto_trpc_proto_enumTypes[8].Descriptor() + return file_trpc_trpc_proto_enumTypes[8].Descriptor() } func (TrpcCompressType) Type() protoreflect.EnumType { - return &file_trpc_proto_trpc_proto_enumTypes[8] + return &file_trpc_trpc_proto_enumTypes[8] } func (x TrpcCompressType) Number() protoreflect.EnumNumber { @@ -533,7 +533,7 @@ func (x TrpcCompressType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcCompressType.Descriptor instead. func (TrpcCompressType) EnumDescriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{8} + return file_trpc_trpc_proto_rawDescGZIP(), []int{8} } // 框架层接口调用的返回码定义 @@ -759,11 +759,11 @@ func (x TrpcRetCode) String() string { } func (TrpcRetCode) Descriptor() protoreflect.EnumDescriptor { - return file_trpc_proto_trpc_proto_enumTypes[9].Descriptor() + return file_trpc_trpc_proto_enumTypes[9].Descriptor() } func (TrpcRetCode) Type() protoreflect.EnumType { - return &file_trpc_proto_trpc_proto_enumTypes[9] + return &file_trpc_trpc_proto_enumTypes[9] } func (x TrpcRetCode) Number() protoreflect.EnumNumber { @@ -772,7 +772,7 @@ func (x TrpcRetCode) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcRetCode.Descriptor instead. func (TrpcRetCode) EnumDescriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{9} + return file_trpc_trpc_proto_rawDescGZIP(), []int{9} } // trpc流式的流控帧头消息定义 @@ -800,7 +800,7 @@ type TrpcStreamInitMeta struct { func (x *TrpcStreamInitMeta) Reset() { *x = TrpcStreamInitMeta{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_trpc_proto_msgTypes[0] + mi := &file_trpc_trpc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -813,7 +813,7 @@ func (x *TrpcStreamInitMeta) String() string { func (*TrpcStreamInitMeta) ProtoMessage() {} func (x *TrpcStreamInitMeta) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_trpc_proto_msgTypes[0] + mi := &file_trpc_trpc_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -826,7 +826,7 @@ func (x *TrpcStreamInitMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TrpcStreamInitMeta.ProtoReflect.Descriptor instead. func (*TrpcStreamInitMeta) Descriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{0} + return file_trpc_trpc_proto_rawDescGZIP(), []int{0} } func (x *TrpcStreamInitMeta) GetRequestMeta() *TrpcStreamInitRequestMeta { @@ -894,7 +894,7 @@ type TrpcStreamInitRequestMeta struct { func (x *TrpcStreamInitRequestMeta) Reset() { *x = TrpcStreamInitRequestMeta{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_trpc_proto_msgTypes[1] + mi := &file_trpc_trpc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -907,7 +907,7 @@ func (x *TrpcStreamInitRequestMeta) String() string { func (*TrpcStreamInitRequestMeta) ProtoMessage() {} func (x *TrpcStreamInitRequestMeta) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_trpc_proto_msgTypes[1] + mi := &file_trpc_trpc_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -920,7 +920,7 @@ func (x *TrpcStreamInitRequestMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TrpcStreamInitRequestMeta.ProtoReflect.Descriptor instead. func (*TrpcStreamInitRequestMeta) Descriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{1} + return file_trpc_trpc_proto_rawDescGZIP(), []int{1} } func (x *TrpcStreamInitRequestMeta) GetCaller() []byte { @@ -975,7 +975,7 @@ type TrpcStreamInitResponseMeta struct { func (x *TrpcStreamInitResponseMeta) Reset() { *x = TrpcStreamInitResponseMeta{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_trpc_proto_msgTypes[2] + mi := &file_trpc_trpc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -988,7 +988,7 @@ func (x *TrpcStreamInitResponseMeta) String() string { func (*TrpcStreamInitResponseMeta) ProtoMessage() {} func (x *TrpcStreamInitResponseMeta) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_trpc_proto_msgTypes[2] + mi := &file_trpc_trpc_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1001,7 +1001,7 @@ func (x *TrpcStreamInitResponseMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TrpcStreamInitResponseMeta.ProtoReflect.Descriptor instead. func (*TrpcStreamInitResponseMeta) Descriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{2} + return file_trpc_trpc_proto_rawDescGZIP(), []int{2} } func (x *TrpcStreamInitResponseMeta) GetRet() int32 { @@ -1031,7 +1031,7 @@ type TrpcStreamFeedBackMeta struct { func (x *TrpcStreamFeedBackMeta) Reset() { *x = TrpcStreamFeedBackMeta{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_trpc_proto_msgTypes[3] + mi := &file_trpc_trpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1044,7 +1044,7 @@ func (x *TrpcStreamFeedBackMeta) String() string { func (*TrpcStreamFeedBackMeta) ProtoMessage() {} func (x *TrpcStreamFeedBackMeta) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_trpc_proto_msgTypes[3] + mi := &file_trpc_trpc_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1057,7 +1057,7 @@ func (x *TrpcStreamFeedBackMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TrpcStreamFeedBackMeta.ProtoReflect.Descriptor instead. func (*TrpcStreamFeedBackMeta) Descriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{3} + return file_trpc_trpc_proto_rawDescGZIP(), []int{3} } func (x *TrpcStreamFeedBackMeta) GetWindowSizeIncrement() uint32 { @@ -1096,7 +1096,7 @@ type TrpcStreamCloseMeta struct { func (x *TrpcStreamCloseMeta) Reset() { *x = TrpcStreamCloseMeta{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_trpc_proto_msgTypes[4] + mi := &file_trpc_trpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1109,7 +1109,7 @@ func (x *TrpcStreamCloseMeta) String() string { func (*TrpcStreamCloseMeta) ProtoMessage() {} func (x *TrpcStreamCloseMeta) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_trpc_proto_msgTypes[4] + mi := &file_trpc_trpc_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1122,7 +1122,7 @@ func (x *TrpcStreamCloseMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TrpcStreamCloseMeta.ProtoReflect.Descriptor instead. func (*TrpcStreamCloseMeta) Descriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{4} + return file_trpc_trpc_proto_rawDescGZIP(), []int{4} } func (x *TrpcStreamCloseMeta) GetCloseType() int32 { @@ -1215,7 +1215,7 @@ type RequestProtocol struct { func (x *RequestProtocol) Reset() { *x = RequestProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_trpc_proto_msgTypes[5] + mi := &file_trpc_trpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1228,7 +1228,7 @@ func (x *RequestProtocol) String() string { func (*RequestProtocol) ProtoMessage() {} func (x *RequestProtocol) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_trpc_proto_msgTypes[5] + mi := &file_trpc_trpc_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1241,7 +1241,7 @@ func (x *RequestProtocol) ProtoReflect() protoreflect.Message { // Deprecated: Use RequestProtocol.ProtoReflect.Descriptor instead. func (*RequestProtocol) Descriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{5} + return file_trpc_trpc_proto_rawDescGZIP(), []int{5} } func (x *RequestProtocol) GetVersion() uint32 { @@ -1367,7 +1367,7 @@ type ResponseProtocol struct { func (x *ResponseProtocol) Reset() { *x = ResponseProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_trpc_proto_msgTypes[6] + mi := &file_trpc_trpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1380,7 +1380,7 @@ func (x *ResponseProtocol) String() string { func (*ResponseProtocol) ProtoMessage() {} func (x *ResponseProtocol) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_trpc_proto_msgTypes[6] + mi := &file_trpc_trpc_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1393,7 +1393,7 @@ func (x *ResponseProtocol) ProtoReflect() protoreflect.Message { // Deprecated: Use ResponseProtocol.ProtoReflect.Descriptor instead. func (*ResponseProtocol) Descriptor() ([]byte, []int) { - return file_trpc_proto_trpc_proto_rawDescGZIP(), []int{6} + return file_trpc_trpc_proto_rawDescGZIP(), []int{6} } func (x *ResponseProtocol) GetVersion() uint32 { @@ -1466,321 +1466,320 @@ func (x *ResponseProtocol) GetContentEncoding() uint32 { return 0 } -var File_trpc_proto_trpc_proto protoreflect.FileDescriptor +var File_trpc_trpc_proto protoreflect.FileDescriptor -var file_trpc_proto_trpc_proto_rawDesc = []byte{ - 0x0a, 0x15, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x72, 0x70, - 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x74, 0x72, 0x70, 0x63, 0x22, 0x97, 0x02, - 0x0a, 0x12, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x70, +var file_trpc_trpc_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x04, 0x74, 0x72, 0x70, 0x63, 0x22, 0x97, 0x02, 0x0a, 0x12, 0x54, 0x72, 0x70, 0x63, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x42, + 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x70, 0x63, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x12, 0x45, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0c, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x69, + 0x74, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, + 0x67, 0x22, 0x8f, 0x02, 0x0a, 0x19, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, + 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, + 0x75, 0x6e, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0b, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x1a, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, - 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, - 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x8f, 0x02, 0x0a, 0x19, 0x54, 0x72, 0x70, 0x63, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, - 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, - 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, + 0x61, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x72, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, + 0x22, 0x4c, 0x0a, 0x16, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x65, + 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x15, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9d, + 0x02, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, + 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4d, 0x0a, 0x0a, + 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x1a, 0x54, 0x72, 0x70, - 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x4c, 0x0a, 0x16, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x46, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, - 0x12, 0x32, 0x0a, 0x15, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x13, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9d, 0x02, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, - 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x66, - 0x75, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, - 0x75, 0x6e, 0x63, 0x52, 0x65, 0x74, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb9, 0x03, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, - 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x21, 0x0a, 0x0c, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x43, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, - 0x6e, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0xa7, 0x03, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, - 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x19, 0x0a, - 0x08, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x66, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, - 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x32, 0x28, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x72, 0x65, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x74, + 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb9, + 0x03, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, + 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, + 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, + 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, - 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, + 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, - 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, + 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x39, 0x0a, 0x09, 0x54, 0x72, - 0x70, 0x63, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x15, - 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x5f, 0x56, 0x41, 0x4c, - 0x55, 0x45, 0x10, 0xb0, 0x12, 0x2a, 0x40, 0x0a, 0x11, 0x54, 0x72, 0x70, 0x63, 0x44, 0x61, 0x74, - 0x61, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, 0x00, - 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x2a, 0x9a, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x0e, 0x0a, 0x0a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x00, 0x12, - 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, - 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x46, 0x45, 0x45, - 0x44, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x4f, - 0x53, 0x45, 0x10, 0x04, 0x2a, 0x43, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, - 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x10, 0x54, 0x72, 0x70, - 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x0a, - 0x0d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x56, 0x31, 0x10, 0x00, - 0x2a, 0x39, 0x0a, 0x0c, 0x54, 0x72, 0x70, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x43, - 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4f, 0x4e, - 0x45, 0x57, 0x41, 0x59, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x2a, 0xa1, 0x01, 0x0a, 0x0f, - 0x54, 0x72, 0x70, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x10, 0x0a, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, - 0x00, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x59, 0x45, 0x49, 0x4e, 0x47, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, - 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, - 0x5f, 0x45, 0x4e, 0x56, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, - 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x52, 0x49, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, - 0x54, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x2a, - 0xb8, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, - 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x00, - 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4a, 0x43, 0x45, 0x5f, 0x45, 0x4e, 0x43, - 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4a, 0x53, - 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x46, 0x4c, 0x41, 0x54, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x45, - 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x4e, 0x4f, 0x4f, 0x50, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, - 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, - 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, - 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x2a, 0xb8, 0x01, 0x0a, 0x10, 0x54, - 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x19, 0x0a, 0x15, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, - 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x47, 0x5a, 0x49, 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, - 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, - 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x5a, 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, - 0x53, 0x53, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, - 0x50, 0x50, 0x59, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, - 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, - 0x41, 0x50, 0x50, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, - 0x45, 0x53, 0x53, 0x10, 0x05, 0x2a, 0xb0, 0x0d, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, - 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, - 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, - 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, - 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, - 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, - 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, - 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, - 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, - 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, - 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, - 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, - 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, - 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, - 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, - 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, - 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, - 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, - 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, - 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, - 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, - 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, - 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, - 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xa1, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, - 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, - 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, - 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, - 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, - 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, - 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, - 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, - 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, - 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, - 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, - 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, - 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, - 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, - 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xfe, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0xad, 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa7, 0x03, 0x0a, 0x10, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, + 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x5f, + 0x72, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x75, 0x6e, 0x63, 0x52, + 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, + 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, + 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x39, 0x0a, 0x09, 0x54, 0x72, 0x70, 0x63, 0x4d, 0x61, 0x67, 0x69, + 0x63, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, + 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0xb0, 0x12, 0x2a, + 0x40, 0x0a, 0x11, 0x54, 0x72, 0x70, 0x63, 0x44, 0x61, 0x74, 0x61, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, + 0x52, 0x59, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, + 0x01, 0x2a, 0x9a, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x49, + 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, + 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x46, 0x45, 0x45, 0x44, 0x42, 0x41, 0x43, 0x4b, 0x10, + 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x04, 0x2a, 0x43, + 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x53, 0x45, + 0x54, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x56, 0x31, 0x10, 0x00, 0x2a, 0x39, 0x0a, 0x0c, 0x54, 0x72, + 0x70, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, + 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4f, 0x4e, 0x45, 0x57, 0x41, 0x59, 0x5f, 0x43, + 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x2a, 0xa1, 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x70, 0x63, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x44, 0x59, 0x45, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x45, 0x4e, 0x56, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x47, 0x52, 0x49, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x08, 0x12, + 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x54, 0x4e, 0x41, 0x4d, 0x45, 0x5f, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x2a, 0xb8, 0x01, 0x0a, 0x15, 0x54, 0x72, + 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, + 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x4a, 0x43, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, + 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x43, + 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x46, 0x4c, + 0x41, 0x54, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, + 0x03, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4e, 0x4f, 0x4f, 0x50, 0x5f, 0x45, + 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x10, 0x06, 0x2a, 0xb8, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, + 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x5a, 0x49, + 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, + 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x5a, + 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x1f, + 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, + 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x2a, + 0xb0, 0x0d, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, + 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, + 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, + 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, + 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, + 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, + 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, + 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, + 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, + 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, + 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, + 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, + 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xa1, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0xb7, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, - 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, - 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, - 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, - 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, + 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, + 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, - 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0xcd, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, - 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, + 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, + 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, - 0xdf, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, - 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, + 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, + 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xe1, 0x02, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, - 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x1c, 0x0a, 0x17, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x61, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, - 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x42, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x5a, 0x29, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, - 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, + 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfe, 0x01, 0x12, 0x23, 0x0a, 0x1e, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xad, + 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, + 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xb7, 0x02, 0x12, + 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, + 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, + 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcd, 0x02, 0x12, + 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, + 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xdf, 0x02, 0x12, 0x26, 0x0a, 0x21, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, + 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe1, 0x02, 0x12, 0x28, 0x0a, 0x23, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, + 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xe8, 0x07, 0x42, 0x61, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, + 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0c, 0x54, 0x52, + 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x2e, + 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, + 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, + 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_trpc_proto_trpc_proto_rawDescOnce sync.Once - file_trpc_proto_trpc_proto_rawDescData = file_trpc_proto_trpc_proto_rawDesc + file_trpc_trpc_proto_rawDescOnce sync.Once + file_trpc_trpc_proto_rawDescData = file_trpc_trpc_proto_rawDesc ) -func file_trpc_proto_trpc_proto_rawDescGZIP() []byte { - file_trpc_proto_trpc_proto_rawDescOnce.Do(func() { - file_trpc_proto_trpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_proto_trpc_proto_rawDescData) +func file_trpc_trpc_proto_rawDescGZIP() []byte { + file_trpc_trpc_proto_rawDescOnce.Do(func() { + file_trpc_trpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_trpc_proto_rawDescData) }) - return file_trpc_proto_trpc_proto_rawDescData + return file_trpc_trpc_proto_rawDescData } -var file_trpc_proto_trpc_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -var file_trpc_proto_trpc_proto_msgTypes = make([]protoimpl.MessageInfo, 11) -var file_trpc_proto_trpc_proto_goTypes = []interface{}{ +var file_trpc_trpc_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_trpc_trpc_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_trpc_trpc_proto_goTypes = []interface{}{ (TrpcMagic)(0), // 0: trpc.TrpcMagic (TrpcDataFrameType)(0), // 1: trpc.TrpcDataFrameType (TrpcStreamFrameType)(0), // 2: trpc.TrpcStreamFrameType @@ -1803,7 +1802,7 @@ var file_trpc_proto_trpc_proto_goTypes = []interface{}{ nil, // 19: trpc.RequestProtocol.TransInfoEntry nil, // 20: trpc.ResponseProtocol.TransInfoEntry } -var file_trpc_proto_trpc_proto_depIdxs = []int32{ +var file_trpc_trpc_proto_depIdxs = []int32{ 11, // 0: trpc.TrpcStreamInitMeta.request_meta:type_name -> trpc.TrpcStreamInitRequestMeta 12, // 1: trpc.TrpcStreamInitMeta.response_meta:type_name -> trpc.TrpcStreamInitResponseMeta 17, // 2: trpc.TrpcStreamInitRequestMeta.trans_info:type_name -> trpc.TrpcStreamInitRequestMeta.TransInfoEntry @@ -1817,13 +1816,13 @@ var file_trpc_proto_trpc_proto_depIdxs = []int32{ 0, // [0:6] is the sub-list for field type_name } -func init() { file_trpc_proto_trpc_proto_init() } -func file_trpc_proto_trpc_proto_init() { - if File_trpc_proto_trpc_proto != nil { +func init() { file_trpc_trpc_proto_init() } +func file_trpc_trpc_proto_init() { + if File_trpc_trpc_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_trpc_proto_trpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_trpc_trpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrpcStreamInitMeta); i { case 0: return &v.state @@ -1835,7 +1834,7 @@ func file_trpc_proto_trpc_proto_init() { return nil } } - file_trpc_proto_trpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_trpc_trpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrpcStreamInitRequestMeta); i { case 0: return &v.state @@ -1847,7 +1846,7 @@ func file_trpc_proto_trpc_proto_init() { return nil } } - file_trpc_proto_trpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_trpc_trpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrpcStreamInitResponseMeta); i { case 0: return &v.state @@ -1859,7 +1858,7 @@ func file_trpc_proto_trpc_proto_init() { return nil } } - file_trpc_proto_trpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_trpc_trpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrpcStreamFeedBackMeta); i { case 0: return &v.state @@ -1871,7 +1870,7 @@ func file_trpc_proto_trpc_proto_init() { return nil } } - file_trpc_proto_trpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_trpc_trpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrpcStreamCloseMeta); i { case 0: return &v.state @@ -1883,7 +1882,7 @@ func file_trpc_proto_trpc_proto_init() { return nil } } - file_trpc_proto_trpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_trpc_trpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RequestProtocol); i { case 0: return &v.state @@ -1895,7 +1894,7 @@ func file_trpc_proto_trpc_proto_init() { return nil } } - file_trpc_proto_trpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_trpc_trpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResponseProtocol); i { case 0: return &v.state @@ -1912,19 +1911,19 @@ func file_trpc_proto_trpc_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_trpc_proto_trpc_proto_rawDesc, + RawDescriptor: file_trpc_trpc_proto_rawDesc, NumEnums: 10, NumMessages: 11, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_trpc_proto_trpc_proto_goTypes, - DependencyIndexes: file_trpc_proto_trpc_proto_depIdxs, - EnumInfos: file_trpc_proto_trpc_proto_enumTypes, - MessageInfos: file_trpc_proto_trpc_proto_msgTypes, + GoTypes: file_trpc_trpc_proto_goTypes, + DependencyIndexes: file_trpc_trpc_proto_depIdxs, + EnumInfos: file_trpc_trpc_proto_enumTypes, + MessageInfos: file_trpc_trpc_proto_msgTypes, }.Build() - File_trpc_proto_trpc_proto = out.File - file_trpc_proto_trpc_proto_rawDesc = nil - file_trpc_proto_trpc_proto_goTypes = nil - file_trpc_proto_trpc_proto_depIdxs = nil + File_trpc_trpc_proto = out.File + file_trpc_trpc_proto_rawDesc = nil + file_trpc_trpc_proto_goTypes = nil + file_trpc_trpc_proto_depIdxs = nil } diff --git a/pb/go/trpc/validate.pb.go b/pb/go/trpc/validate/validate.pb.go similarity index 66% rename from pb/go/trpc/validate.pb.go rename to pb/go/trpc/validate/validate.pb.go index 4fe0204..3d54db9 100644 --- a/pb/go/trpc/validate.pb.go +++ b/pb/go/trpc/validate/validate.pb.go @@ -2,9 +2,9 @@ // versions: // protoc-gen-go v1.26.0 // protoc v3.6.1 -// source: trpc/proto/validate.proto +// source: trpc/validate/validate.proto -package trpc +package validate import ( descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" @@ -59,11 +59,11 @@ func (x KnownRegex) String() string { } func (KnownRegex) Descriptor() protoreflect.EnumDescriptor { - return file_trpc_proto_validate_proto_enumTypes[0].Descriptor() + return file_trpc_validate_validate_proto_enumTypes[0].Descriptor() } func (KnownRegex) Type() protoreflect.EnumType { - return &file_trpc_proto_validate_proto_enumTypes[0] + return &file_trpc_validate_validate_proto_enumTypes[0] } func (x KnownRegex) Number() protoreflect.EnumNumber { @@ -82,7 +82,7 @@ func (x *KnownRegex) UnmarshalJSON(b []byte) error { // Deprecated: Use KnownRegex.Descriptor instead. func (KnownRegex) EnumDescriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{0} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{0} } // FieldRules encapsulates the rules for each type of field. Depending on the @@ -121,7 +121,7 @@ type FieldRules struct { func (x *FieldRules) Reset() { *x = FieldRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[0] + mi := &file_trpc_validate_validate_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -134,7 +134,7 @@ func (x *FieldRules) String() string { func (*FieldRules) ProtoMessage() {} func (x *FieldRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[0] + mi := &file_trpc_validate_validate_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -147,7 +147,7 @@ func (x *FieldRules) ProtoReflect() protoreflect.Message { // Deprecated: Use FieldRules.ProtoReflect.Descriptor instead. func (*FieldRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{0} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{0} } func (x *FieldRules) GetMessage() *MessageRules { @@ -480,7 +480,7 @@ type FloatRules struct { func (x *FloatRules) Reset() { *x = FloatRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[1] + mi := &file_trpc_validate_validate_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -493,7 +493,7 @@ func (x *FloatRules) String() string { func (*FloatRules) ProtoMessage() {} func (x *FloatRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[1] + mi := &file_trpc_validate_validate_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -506,7 +506,7 @@ func (x *FloatRules) ProtoReflect() protoreflect.Message { // Deprecated: Use FloatRules.ProtoReflect.Descriptor instead. func (*FloatRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{1} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{1} } func (x *FloatRules) GetConst() float32 { @@ -601,7 +601,7 @@ type DoubleRules struct { func (x *DoubleRules) Reset() { *x = DoubleRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[2] + mi := &file_trpc_validate_validate_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -614,7 +614,7 @@ func (x *DoubleRules) String() string { func (*DoubleRules) ProtoMessage() {} func (x *DoubleRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[2] + mi := &file_trpc_validate_validate_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -627,7 +627,7 @@ func (x *DoubleRules) ProtoReflect() protoreflect.Message { // Deprecated: Use DoubleRules.ProtoReflect.Descriptor instead. func (*DoubleRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{2} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{2} } func (x *DoubleRules) GetConst() float64 { @@ -722,7 +722,7 @@ type Int32Rules struct { func (x *Int32Rules) Reset() { *x = Int32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[3] + mi := &file_trpc_validate_validate_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -735,7 +735,7 @@ func (x *Int32Rules) String() string { func (*Int32Rules) ProtoMessage() {} func (x *Int32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[3] + mi := &file_trpc_validate_validate_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -748,7 +748,7 @@ func (x *Int32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use Int32Rules.ProtoReflect.Descriptor instead. func (*Int32Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{3} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{3} } func (x *Int32Rules) GetConst() int32 { @@ -843,7 +843,7 @@ type Int64Rules struct { func (x *Int64Rules) Reset() { *x = Int64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[4] + mi := &file_trpc_validate_validate_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -856,7 +856,7 @@ func (x *Int64Rules) String() string { func (*Int64Rules) ProtoMessage() {} func (x *Int64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[4] + mi := &file_trpc_validate_validate_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -869,7 +869,7 @@ func (x *Int64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use Int64Rules.ProtoReflect.Descriptor instead. func (*Int64Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{4} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{4} } func (x *Int64Rules) GetConst() int64 { @@ -964,7 +964,7 @@ type UInt32Rules struct { func (x *UInt32Rules) Reset() { *x = UInt32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[5] + mi := &file_trpc_validate_validate_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -977,7 +977,7 @@ func (x *UInt32Rules) String() string { func (*UInt32Rules) ProtoMessage() {} func (x *UInt32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[5] + mi := &file_trpc_validate_validate_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -990,7 +990,7 @@ func (x *UInt32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use UInt32Rules.ProtoReflect.Descriptor instead. func (*UInt32Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{5} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{5} } func (x *UInt32Rules) GetConst() uint32 { @@ -1085,7 +1085,7 @@ type UInt64Rules struct { func (x *UInt64Rules) Reset() { *x = UInt64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[6] + mi := &file_trpc_validate_validate_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1098,7 +1098,7 @@ func (x *UInt64Rules) String() string { func (*UInt64Rules) ProtoMessage() {} func (x *UInt64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[6] + mi := &file_trpc_validate_validate_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1111,7 +1111,7 @@ func (x *UInt64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use UInt64Rules.ProtoReflect.Descriptor instead. func (*UInt64Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{6} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{6} } func (x *UInt64Rules) GetConst() uint64 { @@ -1206,7 +1206,7 @@ type SInt32Rules struct { func (x *SInt32Rules) Reset() { *x = SInt32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[7] + mi := &file_trpc_validate_validate_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1219,7 +1219,7 @@ func (x *SInt32Rules) String() string { func (*SInt32Rules) ProtoMessage() {} func (x *SInt32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[7] + mi := &file_trpc_validate_validate_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1232,7 +1232,7 @@ func (x *SInt32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use SInt32Rules.ProtoReflect.Descriptor instead. func (*SInt32Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{7} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{7} } func (x *SInt32Rules) GetConst() int32 { @@ -1327,7 +1327,7 @@ type SInt64Rules struct { func (x *SInt64Rules) Reset() { *x = SInt64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[8] + mi := &file_trpc_validate_validate_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1340,7 +1340,7 @@ func (x *SInt64Rules) String() string { func (*SInt64Rules) ProtoMessage() {} func (x *SInt64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[8] + mi := &file_trpc_validate_validate_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1353,7 +1353,7 @@ func (x *SInt64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use SInt64Rules.ProtoReflect.Descriptor instead. func (*SInt64Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{8} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{8} } func (x *SInt64Rules) GetConst() int64 { @@ -1448,7 +1448,7 @@ type Fixed32Rules struct { func (x *Fixed32Rules) Reset() { *x = Fixed32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[9] + mi := &file_trpc_validate_validate_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1461,7 +1461,7 @@ func (x *Fixed32Rules) String() string { func (*Fixed32Rules) ProtoMessage() {} func (x *Fixed32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[9] + mi := &file_trpc_validate_validate_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1474,7 +1474,7 @@ func (x *Fixed32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use Fixed32Rules.ProtoReflect.Descriptor instead. func (*Fixed32Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{9} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{9} } func (x *Fixed32Rules) GetConst() uint32 { @@ -1569,7 +1569,7 @@ type Fixed64Rules struct { func (x *Fixed64Rules) Reset() { *x = Fixed64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[10] + mi := &file_trpc_validate_validate_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1582,7 +1582,7 @@ func (x *Fixed64Rules) String() string { func (*Fixed64Rules) ProtoMessage() {} func (x *Fixed64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[10] + mi := &file_trpc_validate_validate_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1595,7 +1595,7 @@ func (x *Fixed64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use Fixed64Rules.ProtoReflect.Descriptor instead. func (*Fixed64Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{10} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{10} } func (x *Fixed64Rules) GetConst() uint64 { @@ -1690,7 +1690,7 @@ type SFixed32Rules struct { func (x *SFixed32Rules) Reset() { *x = SFixed32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[11] + mi := &file_trpc_validate_validate_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1703,7 +1703,7 @@ func (x *SFixed32Rules) String() string { func (*SFixed32Rules) ProtoMessage() {} func (x *SFixed32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[11] + mi := &file_trpc_validate_validate_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1716,7 +1716,7 @@ func (x *SFixed32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use SFixed32Rules.ProtoReflect.Descriptor instead. func (*SFixed32Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{11} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{11} } func (x *SFixed32Rules) GetConst() int32 { @@ -1811,7 +1811,7 @@ type SFixed64Rules struct { func (x *SFixed64Rules) Reset() { *x = SFixed64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[12] + mi := &file_trpc_validate_validate_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1824,7 +1824,7 @@ func (x *SFixed64Rules) String() string { func (*SFixed64Rules) ProtoMessage() {} func (x *SFixed64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[12] + mi := &file_trpc_validate_validate_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1837,7 +1837,7 @@ func (x *SFixed64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use SFixed64Rules.ProtoReflect.Descriptor instead. func (*SFixed64Rules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{12} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{12} } func (x *SFixed64Rules) GetConst() int64 { @@ -1909,7 +1909,7 @@ type BoolRules struct { func (x *BoolRules) Reset() { *x = BoolRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[13] + mi := &file_trpc_validate_validate_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1922,7 +1922,7 @@ func (x *BoolRules) String() string { func (*BoolRules) ProtoMessage() {} func (x *BoolRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[13] + mi := &file_trpc_validate_validate_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1935,7 +1935,7 @@ func (x *BoolRules) ProtoReflect() protoreflect.Message { // Deprecated: Use BoolRules.ProtoReflect.Descriptor instead. func (*BoolRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{13} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{13} } func (x *BoolRules) GetConst() bool { @@ -2034,7 +2034,7 @@ const ( func (x *StringRules) Reset() { *x = StringRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[14] + mi := &file_trpc_validate_validate_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2047,7 +2047,7 @@ func (x *StringRules) String() string { func (*StringRules) ProtoMessage() {} func (x *StringRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[14] + mi := &file_trpc_validate_validate_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2060,7 +2060,7 @@ func (x *StringRules) ProtoReflect() protoreflect.Message { // Deprecated: Use StringRules.ProtoReflect.Descriptor instead. func (*StringRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{14} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{14} } func (x *StringRules) GetConst() string { @@ -2341,7 +2341,7 @@ type StringRules_Uuid struct { type StringRules_WellKnownRegex struct { // WellKnownRegex specifies a common well known pattern defined as a regex. - WellKnownRegex KnownRegex `protobuf:"varint,24,opt,name=well_known_regex,json=wellKnownRegex,enum=trpc.KnownRegex,oneof"` + WellKnownRegex KnownRegex `protobuf:"varint,24,opt,name=well_known_regex,json=wellKnownRegex,enum=trpc.validate.KnownRegex,oneof"` } type StringRules_Alphabets struct { @@ -2443,7 +2443,7 @@ type BytesRules struct { func (x *BytesRules) Reset() { *x = BytesRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[15] + mi := &file_trpc_validate_validate_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2456,7 +2456,7 @@ func (x *BytesRules) String() string { func (*BytesRules) ProtoMessage() {} func (x *BytesRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[15] + mi := &file_trpc_validate_validate_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2469,7 +2469,7 @@ func (x *BytesRules) ProtoReflect() protoreflect.Message { // Deprecated: Use BytesRules.ProtoReflect.Descriptor instead. func (*BytesRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{15} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{15} } func (x *BytesRules) GetConst() []byte { @@ -2627,7 +2627,7 @@ type EnumRules struct { func (x *EnumRules) Reset() { *x = EnumRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[16] + mi := &file_trpc_validate_validate_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2640,7 +2640,7 @@ func (x *EnumRules) String() string { func (*EnumRules) ProtoMessage() {} func (x *EnumRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[16] + mi := &file_trpc_validate_validate_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2653,7 +2653,7 @@ func (x *EnumRules) ProtoReflect() protoreflect.Message { // Deprecated: Use EnumRules.ProtoReflect.Descriptor instead. func (*EnumRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{16} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{16} } func (x *EnumRules) GetConst() int32 { @@ -2701,7 +2701,7 @@ type MessageRules struct { func (x *MessageRules) Reset() { *x = MessageRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[17] + mi := &file_trpc_validate_validate_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2714,7 +2714,7 @@ func (x *MessageRules) String() string { func (*MessageRules) ProtoMessage() {} func (x *MessageRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[17] + mi := &file_trpc_validate_validate_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2727,7 +2727,7 @@ func (x *MessageRules) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageRules.ProtoReflect.Descriptor instead. func (*MessageRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{17} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{17} } func (x *MessageRules) GetSkip() bool { @@ -2772,7 +2772,7 @@ type RepeatedRules struct { func (x *RepeatedRules) Reset() { *x = RepeatedRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[18] + mi := &file_trpc_validate_validate_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2785,7 +2785,7 @@ func (x *RepeatedRules) String() string { func (*RepeatedRules) ProtoMessage() {} func (x *RepeatedRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[18] + mi := &file_trpc_validate_validate_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2798,7 +2798,7 @@ func (x *RepeatedRules) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedRules.ProtoReflect.Descriptor instead. func (*RepeatedRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{18} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{18} } func (x *RepeatedRules) GetMinItems() uint64 { @@ -2865,7 +2865,7 @@ type MapRules struct { func (x *MapRules) Reset() { *x = MapRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[19] + mi := &file_trpc_validate_validate_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2878,7 +2878,7 @@ func (x *MapRules) String() string { func (*MapRules) ProtoMessage() {} func (x *MapRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[19] + mi := &file_trpc_validate_validate_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2891,7 +2891,7 @@ func (x *MapRules) ProtoReflect() protoreflect.Message { // Deprecated: Use MapRules.ProtoReflect.Descriptor instead. func (*MapRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{19} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{19} } func (x *MapRules) GetMinPairs() uint64 { @@ -2956,7 +2956,7 @@ type AnyRules struct { func (x *AnyRules) Reset() { *x = AnyRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[20] + mi := &file_trpc_validate_validate_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2969,7 +2969,7 @@ func (x *AnyRules) String() string { func (*AnyRules) ProtoMessage() {} func (x *AnyRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[20] + mi := &file_trpc_validate_validate_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2982,7 +2982,7 @@ func (x *AnyRules) ProtoReflect() protoreflect.Message { // Deprecated: Use AnyRules.ProtoReflect.Descriptor instead. func (*AnyRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{20} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{20} } func (x *AnyRules) GetRequired() bool { @@ -3040,7 +3040,7 @@ type DurationRules struct { func (x *DurationRules) Reset() { *x = DurationRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[21] + mi := &file_trpc_validate_validate_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3053,7 +3053,7 @@ func (x *DurationRules) String() string { func (*DurationRules) ProtoMessage() {} func (x *DurationRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[21] + mi := &file_trpc_validate_validate_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3066,7 +3066,7 @@ func (x *DurationRules) ProtoReflect() protoreflect.Message { // Deprecated: Use DurationRules.ProtoReflect.Descriptor instead. func (*DurationRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{21} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{21} } func (x *DurationRules) GetRequired() bool { @@ -3163,7 +3163,7 @@ type TimestampRules struct { func (x *TimestampRules) Reset() { *x = TimestampRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpc_proto_validate_proto_msgTypes[22] + mi := &file_trpc_validate_validate_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3176,7 +3176,7 @@ func (x *TimestampRules) String() string { func (*TimestampRules) ProtoMessage() {} func (x *TimestampRules) ProtoReflect() protoreflect.Message { - mi := &file_trpc_proto_validate_proto_msgTypes[22] + mi := &file_trpc_validate_validate_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3189,7 +3189,7 @@ func (x *TimestampRules) ProtoReflect() protoreflect.Message { // Deprecated: Use TimestampRules.ProtoReflect.Descriptor instead. func (*TimestampRules) Descriptor() ([]byte, []int) { - return file_trpc_proto_validate_proto_rawDescGZIP(), []int{22} + return file_trpc_validate_validate_proto_rawDescGZIP(), []int{22} } func (x *TimestampRules) GetRequired() bool { @@ -3255,38 +3255,38 @@ func (x *TimestampRules) GetWithin() *duration.Duration { return nil } -var file_trpc_proto_validate_proto_extTypes = []protoimpl.ExtensionInfo{ +var file_trpc_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*descriptor.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 1071, - Name: "trpc.disabled", + Name: "trpc.validate.disabled", Tag: "varint,1071,opt,name=disabled", - Filename: "trpc/proto/validate.proto", + Filename: "trpc/validate/validate.proto", }, { ExtendedType: (*descriptor.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 1072, - Name: "trpc.ignored", + Name: "trpc.validate.ignored", Tag: "varint,1072,opt,name=ignored", - Filename: "trpc/proto/validate.proto", + Filename: "trpc/validate/validate.proto", }, { ExtendedType: (*descriptor.OneofOptions)(nil), ExtensionType: (*bool)(nil), Field: 1071, - Name: "trpc.required", + Name: "trpc.validate.required", Tag: "varint,1071,opt,name=required", - Filename: "trpc/proto/validate.proto", + Filename: "trpc/validate/validate.proto", }, { ExtendedType: (*descriptor.FieldOptions)(nil), ExtensionType: (*FieldRules)(nil), Field: 1071, - Name: "trpc.rules", + Name: "trpc.validate.rules", Tag: "bytes,1071,opt,name=rules", - Filename: "trpc/proto/validate.proto", + Filename: "trpc/validate/validate.proto", }, } @@ -3296,11 +3296,11 @@ var ( // message fields associated with it that do support validation. // // optional bool disabled = 1071; - E_Disabled = &file_trpc_proto_validate_proto_extTypes[0] + E_Disabled = &file_trpc_validate_validate_proto_extTypes[0] // Ignore skips generation of validation methods for this message. // // optional bool ignored = 1072; - E_Ignored = &file_trpc_proto_validate_proto_extTypes[1] + E_Ignored = &file_trpc_validate_validate_proto_extTypes[1] ) // Extension fields to descriptor.OneofOptions. @@ -3309,7 +3309,7 @@ var ( // validation fails if no fields in the oneof are set. // // optional bool required = 1071; - E_Required = &file_trpc_proto_validate_proto_extTypes[2] + E_Required = &file_trpc_validate_validate_proto_extTypes[2] ) // Extension fields to descriptor.FieldOptions. @@ -3317,501 +3317,517 @@ var ( // Rules specify the validations to be performed on this field. By default, // no validation is performed against a field. // - // optional trpc.FieldRules rules = 1071; - E_Rules = &file_trpc_proto_validate_proto_extTypes[3] + // optional trpc.validate.FieldRules rules = 1071; + E_Rules = &file_trpc_validate_validate_proto_extTypes[3] ) -var File_trpc_proto_validate_proto protoreflect.FileDescriptor - -var file_trpc_proto_validate_proto_rawDesc = []byte{ - 0x0a, 0x19, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x74, 0x72, 0x70, - 0x63, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf0, 0x07, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x28, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x64, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, - 0x70, 0x63, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, - 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x33, - 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x49, +var File_trpc_validate_validate_proto protoreflect.FileDescriptor + +var file_trpc_validate_validate_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x20, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0xb6, 0x09, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x35, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x34, 0x0a, 0x06, 0x64, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, + 0x31, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, - 0x33, 0x32, 0x12, 0x28, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x06, - 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, - 0x72, 0x70, 0x63, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, - 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x06, 0x75, 0x69, 0x6e, - 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, - 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x49, - 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, - 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x12, 0x2e, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, - 0x12, 0x2e, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, - 0x12, 0x31, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, - 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, - 0x64, 0x33, 0x32, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x46, 0x69, - 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x66, - 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x2b, 0x0a, - 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x05, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, - 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x31, 0x0a, 0x08, 0x72, - 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x22, - 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x72, - 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, 0x6d, - 0x61, 0x70, 0x12, 0x22, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, - 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x31, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, - 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, - 0x72, 0x70, 0x63, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, - 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x67, 0x74, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x02, 0x69, 0x6e, - 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x02, - 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, - 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, - 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x44, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x6c, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, - 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, - 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x01, - 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x01, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, - 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb0, - 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, - 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, - 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, - 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, - 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, - 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, - 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x74, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x67, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x67, - 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x02, + 0x33, 0x32, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x34, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x34, 0x0a, 0x06, 0x75, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2e, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, + 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x37, 0x0a, + 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, + 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x37, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, + 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, + 0x3a, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2e, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x3a, 0x0a, 0x08, 0x73, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x46, + 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2e, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x31, 0x0a, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x2e, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, + 0x12, 0x3a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x03, + 0x6d, 0x61, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x2b, 0x0a, 0x03, 0x61, 0x6e, 0x79, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x67, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x67, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, + 0x28, 0x02, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, - 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x63, 0x6f, 0x6e, - 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, - 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, - 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, + 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, + 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x11, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x11, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, + 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x01, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x01, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x12, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, - 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x12, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, - 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, - 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x07, 0x52, 0x02, 0x69, 0x6e, 0x12, - 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x07, 0x52, - 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, - 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, - 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x46, 0x69, - 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, 0x6c, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x6c, - 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, - 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x06, 0x52, - 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x06, - 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x06, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, - 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, - 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0f, 0x52, - 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0f, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, - 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, - 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, - 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x67, 0x74, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x10, 0x52, 0x02, 0x69, 0x6e, - 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x10, + 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, + 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, + 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, + 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x6e, + 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, - 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x0a, 0x09, 0x42, 0x6f, - 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x22, 0xcc, 0x06, - 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x17, - 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x6e, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x79, 0x74, 0x65, - 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, - 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x16, - 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, - 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, - 0x76, 0x36, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x19, 0x0a, 0x07, 0x75, 0x72, 0x69, 0x5f, 0x72, 0x65, - 0x66, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x72, 0x69, 0x52, 0x65, - 0x66, 0x12, 0x1a, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, - 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x10, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, - 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x48, - 0x00, 0x52, 0x0e, 0x77, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, - 0x78, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x73, 0x18, 0x1b, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, - 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x1c, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, - 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x1d, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, - 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, 0x72, 0x18, 0x1e, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, 0x72, 0x12, 0x1c, 0x0a, - 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, - 0x72, 0x75, 0x65, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, - 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, + 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x11, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x11, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, + 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x11, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x12, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, + 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x12, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, + 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x67, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x67, 0x74, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x07, 0x52, 0x02, 0x69, + 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x07, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, + 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, + 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, + 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, + 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x06, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x06, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x06, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, + 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0f, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, + 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, + 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x6c, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x67, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x67, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x10, 0x52, 0x02, + 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x10, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x0a, 0x09, + 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x22, + 0xd5, 0x06, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, + 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x6e, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x65, + 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, + 0x5f, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, + 0x12, 0x16, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, + 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, + 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, + 0x69, 0x70, 0x76, 0x36, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x19, 0x0a, 0x07, 0x75, 0x72, 0x69, 0x5f, + 0x72, 0x65, 0x66, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x72, 0x69, + 0x52, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x14, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x10, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x19, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x65, + 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x09, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x09, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x09, + 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x07, + 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, + 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x06, + 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, + 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xe2, 0x02, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6c, 0x65, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, + 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, + 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x10, 0x0a, + 0x02, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, + 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0c, - 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xe2, 0x02, 0x0a, - 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, - 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, - 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, - 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, - 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, - 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, - 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x74, - 0x49, 0x6e, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, - 0x76, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, - 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x22, 0x6b, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, - 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, - 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, - 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0x3e, - 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x6b, - 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0xac, - 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, - 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xd4, 0x01, - 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, - 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, - 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x70, - 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x50, - 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x73, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x53, 0x70, 0x61, 0x72, 0x73, - 0x65, 0x12, 0x24, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x28, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, 0x0a, 0x08, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, - 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, - 0x74, 0x49, 0x6e, 0x22, 0xe9, 0x02, 0x0a, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x6e, - 0x73, 0x74, 0x12, 0x29, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2b, 0x0a, - 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x67, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0x6b, 0x0a, 0x09, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4f, 0x6e, + 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, + 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0x3e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0xb5, 0x01, 0x0a, 0x0d, 0x52, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x2f, 0x0a, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0xe6, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x61, 0x78, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x6d, 0x61, 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x73, + 0x70, 0x61, 0x72, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x53, + 0x70, 0x61, 0x72, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x04, + 0x6b, 0x65, 0x79, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, 0x0a, 0x08, 0x41, 0x6e, + 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0xe9, 0x02, 0x0a, 0x0d, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x02, 0x67, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x67, - 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x30, 0x0a, - 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, - 0xf3, 0x02, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x30, - 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x12, 0x2a, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2c, 0x0a, 0x03, - 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x02, 0x67, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x02, 0x67, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, + 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x02, 0x6c, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6c, 0x74, 0x65, + 0x12, 0x29, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x67, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x67, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x02, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, + 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0xf3, 0x02, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x03, 0x67, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0x15, 0x0a, 0x06, 0x67, - 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x74, 0x4e, - 0x6f, 0x77, 0x12, 0x31, 0x0a, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x77, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x2a, 0x46, 0x0a, 0x0a, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, - 0x67, 0x65, 0x78, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, - 0x12, 0x14, 0x0a, 0x10, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, - 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, - 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x02, 0x3a, 0x3c, 0x0a, - 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x07, 0x69, - 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb0, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x3a, 0x46, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x4a, 0x0a, 0x1d, 0x63, - 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x29, 0x67, 0x69, - 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, - 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, - 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, + 0x6c, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6c, 0x74, 0x65, + 0x12, 0x2a, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x67, 0x74, 0x12, 0x2c, 0x0a, 0x03, + 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x74, + 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x74, 0x4e, 0x6f, + 0x77, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x05, 0x67, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0x31, 0x0a, 0x06, 0x77, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x2a, 0x46, 0x0a, 0x0a, 0x4b, + 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, + 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, + 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, + 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x55, + 0x45, 0x10, 0x02, 0x3a, 0x3c, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x3a, 0x3a, 0x0a, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb0, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x3a, 0x3a, 0x0a, + 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, + 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x4f, 0x0a, 0x05, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x53, 0x0a, 0x1d, 0x63, 0x6f, + 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x32, 0x67, 0x69, 0x74, + 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, + 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, + 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, } var ( - file_trpc_proto_validate_proto_rawDescOnce sync.Once - file_trpc_proto_validate_proto_rawDescData = file_trpc_proto_validate_proto_rawDesc + file_trpc_validate_validate_proto_rawDescOnce sync.Once + file_trpc_validate_validate_proto_rawDescData = file_trpc_validate_validate_proto_rawDesc ) -func file_trpc_proto_validate_proto_rawDescGZIP() []byte { - file_trpc_proto_validate_proto_rawDescOnce.Do(func() { - file_trpc_proto_validate_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_proto_validate_proto_rawDescData) +func file_trpc_validate_validate_proto_rawDescGZIP() []byte { + file_trpc_validate_validate_proto_rawDescOnce.Do(func() { + file_trpc_validate_validate_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_validate_validate_proto_rawDescData) }) - return file_trpc_proto_validate_proto_rawDescData -} - -var file_trpc_proto_validate_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_trpc_proto_validate_proto_msgTypes = make([]protoimpl.MessageInfo, 23) -var file_trpc_proto_validate_proto_goTypes = []interface{}{ - (KnownRegex)(0), // 0: trpc.KnownRegex - (*FieldRules)(nil), // 1: trpc.FieldRules - (*FloatRules)(nil), // 2: trpc.FloatRules - (*DoubleRules)(nil), // 3: trpc.DoubleRules - (*Int32Rules)(nil), // 4: trpc.Int32Rules - (*Int64Rules)(nil), // 5: trpc.Int64Rules - (*UInt32Rules)(nil), // 6: trpc.UInt32Rules - (*UInt64Rules)(nil), // 7: trpc.UInt64Rules - (*SInt32Rules)(nil), // 8: trpc.SInt32Rules - (*SInt64Rules)(nil), // 9: trpc.SInt64Rules - (*Fixed32Rules)(nil), // 10: trpc.Fixed32Rules - (*Fixed64Rules)(nil), // 11: trpc.Fixed64Rules - (*SFixed32Rules)(nil), // 12: trpc.SFixed32Rules - (*SFixed64Rules)(nil), // 13: trpc.SFixed64Rules - (*BoolRules)(nil), // 14: trpc.BoolRules - (*StringRules)(nil), // 15: trpc.StringRules - (*BytesRules)(nil), // 16: trpc.BytesRules - (*EnumRules)(nil), // 17: trpc.EnumRules - (*MessageRules)(nil), // 18: trpc.MessageRules - (*RepeatedRules)(nil), // 19: trpc.RepeatedRules - (*MapRules)(nil), // 20: trpc.MapRules - (*AnyRules)(nil), // 21: trpc.AnyRules - (*DurationRules)(nil), // 22: trpc.DurationRules - (*TimestampRules)(nil), // 23: trpc.TimestampRules + return file_trpc_validate_validate_proto_rawDescData +} + +var file_trpc_validate_validate_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_trpc_validate_validate_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_trpc_validate_validate_proto_goTypes = []interface{}{ + (KnownRegex)(0), // 0: trpc.validate.KnownRegex + (*FieldRules)(nil), // 1: trpc.validate.FieldRules + (*FloatRules)(nil), // 2: trpc.validate.FloatRules + (*DoubleRules)(nil), // 3: trpc.validate.DoubleRules + (*Int32Rules)(nil), // 4: trpc.validate.Int32Rules + (*Int64Rules)(nil), // 5: trpc.validate.Int64Rules + (*UInt32Rules)(nil), // 6: trpc.validate.UInt32Rules + (*UInt64Rules)(nil), // 7: trpc.validate.UInt64Rules + (*SInt32Rules)(nil), // 8: trpc.validate.SInt32Rules + (*SInt64Rules)(nil), // 9: trpc.validate.SInt64Rules + (*Fixed32Rules)(nil), // 10: trpc.validate.Fixed32Rules + (*Fixed64Rules)(nil), // 11: trpc.validate.Fixed64Rules + (*SFixed32Rules)(nil), // 12: trpc.validate.SFixed32Rules + (*SFixed64Rules)(nil), // 13: trpc.validate.SFixed64Rules + (*BoolRules)(nil), // 14: trpc.validate.BoolRules + (*StringRules)(nil), // 15: trpc.validate.StringRules + (*BytesRules)(nil), // 16: trpc.validate.BytesRules + (*EnumRules)(nil), // 17: trpc.validate.EnumRules + (*MessageRules)(nil), // 18: trpc.validate.MessageRules + (*RepeatedRules)(nil), // 19: trpc.validate.RepeatedRules + (*MapRules)(nil), // 20: trpc.validate.MapRules + (*AnyRules)(nil), // 21: trpc.validate.AnyRules + (*DurationRules)(nil), // 22: trpc.validate.DurationRules + (*TimestampRules)(nil), // 23: trpc.validate.TimestampRules (*duration.Duration)(nil), // 24: google.protobuf.Duration (*timestamp.Timestamp)(nil), // 25: google.protobuf.Timestamp (*descriptor.MessageOptions)(nil), // 26: google.protobuf.MessageOptions (*descriptor.OneofOptions)(nil), // 27: google.protobuf.OneofOptions (*descriptor.FieldOptions)(nil), // 28: google.protobuf.FieldOptions } -var file_trpc_proto_validate_proto_depIdxs = []int32{ - 18, // 0: trpc.FieldRules.message:type_name -> trpc.MessageRules - 2, // 1: trpc.FieldRules.float:type_name -> trpc.FloatRules - 3, // 2: trpc.FieldRules.double:type_name -> trpc.DoubleRules - 4, // 3: trpc.FieldRules.int32:type_name -> trpc.Int32Rules - 5, // 4: trpc.FieldRules.int64:type_name -> trpc.Int64Rules - 6, // 5: trpc.FieldRules.uint32:type_name -> trpc.UInt32Rules - 7, // 6: trpc.FieldRules.uint64:type_name -> trpc.UInt64Rules - 8, // 7: trpc.FieldRules.sint32:type_name -> trpc.SInt32Rules - 9, // 8: trpc.FieldRules.sint64:type_name -> trpc.SInt64Rules - 10, // 9: trpc.FieldRules.fixed32:type_name -> trpc.Fixed32Rules - 11, // 10: trpc.FieldRules.fixed64:type_name -> trpc.Fixed64Rules - 12, // 11: trpc.FieldRules.sfixed32:type_name -> trpc.SFixed32Rules - 13, // 12: trpc.FieldRules.sfixed64:type_name -> trpc.SFixed64Rules - 14, // 13: trpc.FieldRules.bool:type_name -> trpc.BoolRules - 15, // 14: trpc.FieldRules.string:type_name -> trpc.StringRules - 16, // 15: trpc.FieldRules.bytes:type_name -> trpc.BytesRules - 17, // 16: trpc.FieldRules.enum:type_name -> trpc.EnumRules - 19, // 17: trpc.FieldRules.repeated:type_name -> trpc.RepeatedRules - 20, // 18: trpc.FieldRules.map:type_name -> trpc.MapRules - 21, // 19: trpc.FieldRules.any:type_name -> trpc.AnyRules - 22, // 20: trpc.FieldRules.duration:type_name -> trpc.DurationRules - 23, // 21: trpc.FieldRules.timestamp:type_name -> trpc.TimestampRules - 0, // 22: trpc.StringRules.well_known_regex:type_name -> trpc.KnownRegex - 1, // 23: trpc.RepeatedRules.items:type_name -> trpc.FieldRules - 1, // 24: trpc.MapRules.keys:type_name -> trpc.FieldRules - 1, // 25: trpc.MapRules.values:type_name -> trpc.FieldRules - 24, // 26: trpc.DurationRules.const:type_name -> google.protobuf.Duration - 24, // 27: trpc.DurationRules.lt:type_name -> google.protobuf.Duration - 24, // 28: trpc.DurationRules.lte:type_name -> google.protobuf.Duration - 24, // 29: trpc.DurationRules.gt:type_name -> google.protobuf.Duration - 24, // 30: trpc.DurationRules.gte:type_name -> google.protobuf.Duration - 24, // 31: trpc.DurationRules.in:type_name -> google.protobuf.Duration - 24, // 32: trpc.DurationRules.not_in:type_name -> google.protobuf.Duration - 25, // 33: trpc.TimestampRules.const:type_name -> google.protobuf.Timestamp - 25, // 34: trpc.TimestampRules.lt:type_name -> google.protobuf.Timestamp - 25, // 35: trpc.TimestampRules.lte:type_name -> google.protobuf.Timestamp - 25, // 36: trpc.TimestampRules.gt:type_name -> google.protobuf.Timestamp - 25, // 37: trpc.TimestampRules.gte:type_name -> google.protobuf.Timestamp - 24, // 38: trpc.TimestampRules.within:type_name -> google.protobuf.Duration - 26, // 39: trpc.disabled:extendee -> google.protobuf.MessageOptions - 26, // 40: trpc.ignored:extendee -> google.protobuf.MessageOptions - 27, // 41: trpc.required:extendee -> google.protobuf.OneofOptions - 28, // 42: trpc.rules:extendee -> google.protobuf.FieldOptions - 1, // 43: trpc.rules:type_name -> trpc.FieldRules +var file_trpc_validate_validate_proto_depIdxs = []int32{ + 18, // 0: trpc.validate.FieldRules.message:type_name -> trpc.validate.MessageRules + 2, // 1: trpc.validate.FieldRules.float:type_name -> trpc.validate.FloatRules + 3, // 2: trpc.validate.FieldRules.double:type_name -> trpc.validate.DoubleRules + 4, // 3: trpc.validate.FieldRules.int32:type_name -> trpc.validate.Int32Rules + 5, // 4: trpc.validate.FieldRules.int64:type_name -> trpc.validate.Int64Rules + 6, // 5: trpc.validate.FieldRules.uint32:type_name -> trpc.validate.UInt32Rules + 7, // 6: trpc.validate.FieldRules.uint64:type_name -> trpc.validate.UInt64Rules + 8, // 7: trpc.validate.FieldRules.sint32:type_name -> trpc.validate.SInt32Rules + 9, // 8: trpc.validate.FieldRules.sint64:type_name -> trpc.validate.SInt64Rules + 10, // 9: trpc.validate.FieldRules.fixed32:type_name -> trpc.validate.Fixed32Rules + 11, // 10: trpc.validate.FieldRules.fixed64:type_name -> trpc.validate.Fixed64Rules + 12, // 11: trpc.validate.FieldRules.sfixed32:type_name -> trpc.validate.SFixed32Rules + 13, // 12: trpc.validate.FieldRules.sfixed64:type_name -> trpc.validate.SFixed64Rules + 14, // 13: trpc.validate.FieldRules.bool:type_name -> trpc.validate.BoolRules + 15, // 14: trpc.validate.FieldRules.string:type_name -> trpc.validate.StringRules + 16, // 15: trpc.validate.FieldRules.bytes:type_name -> trpc.validate.BytesRules + 17, // 16: trpc.validate.FieldRules.enum:type_name -> trpc.validate.EnumRules + 19, // 17: trpc.validate.FieldRules.repeated:type_name -> trpc.validate.RepeatedRules + 20, // 18: trpc.validate.FieldRules.map:type_name -> trpc.validate.MapRules + 21, // 19: trpc.validate.FieldRules.any:type_name -> trpc.validate.AnyRules + 22, // 20: trpc.validate.FieldRules.duration:type_name -> trpc.validate.DurationRules + 23, // 21: trpc.validate.FieldRules.timestamp:type_name -> trpc.validate.TimestampRules + 0, // 22: trpc.validate.StringRules.well_known_regex:type_name -> trpc.validate.KnownRegex + 1, // 23: trpc.validate.RepeatedRules.items:type_name -> trpc.validate.FieldRules + 1, // 24: trpc.validate.MapRules.keys:type_name -> trpc.validate.FieldRules + 1, // 25: trpc.validate.MapRules.values:type_name -> trpc.validate.FieldRules + 24, // 26: trpc.validate.DurationRules.const:type_name -> google.protobuf.Duration + 24, // 27: trpc.validate.DurationRules.lt:type_name -> google.protobuf.Duration + 24, // 28: trpc.validate.DurationRules.lte:type_name -> google.protobuf.Duration + 24, // 29: trpc.validate.DurationRules.gt:type_name -> google.protobuf.Duration + 24, // 30: trpc.validate.DurationRules.gte:type_name -> google.protobuf.Duration + 24, // 31: trpc.validate.DurationRules.in:type_name -> google.protobuf.Duration + 24, // 32: trpc.validate.DurationRules.not_in:type_name -> google.protobuf.Duration + 25, // 33: trpc.validate.TimestampRules.const:type_name -> google.protobuf.Timestamp + 25, // 34: trpc.validate.TimestampRules.lt:type_name -> google.protobuf.Timestamp + 25, // 35: trpc.validate.TimestampRules.lte:type_name -> google.protobuf.Timestamp + 25, // 36: trpc.validate.TimestampRules.gt:type_name -> google.protobuf.Timestamp + 25, // 37: trpc.validate.TimestampRules.gte:type_name -> google.protobuf.Timestamp + 24, // 38: trpc.validate.TimestampRules.within:type_name -> google.protobuf.Duration + 26, // 39: trpc.validate.disabled:extendee -> google.protobuf.MessageOptions + 26, // 40: trpc.validate.ignored:extendee -> google.protobuf.MessageOptions + 27, // 41: trpc.validate.required:extendee -> google.protobuf.OneofOptions + 28, // 42: trpc.validate.rules:extendee -> google.protobuf.FieldOptions + 1, // 43: trpc.validate.rules:type_name -> trpc.validate.FieldRules 44, // [44:44] is the sub-list for method output_type 44, // [44:44] is the sub-list for method input_type 43, // [43:44] is the sub-list for extension type_name @@ -3819,13 +3835,13 @@ var file_trpc_proto_validate_proto_depIdxs = []int32{ 0, // [0:39] is the sub-list for field type_name } -func init() { file_trpc_proto_validate_proto_init() } -func file_trpc_proto_validate_proto_init() { - if File_trpc_proto_validate_proto != nil { +func init() { file_trpc_validate_validate_proto_init() } +func file_trpc_validate_validate_proto_init() { + if File_trpc_validate_validate_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_trpc_proto_validate_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldRules); i { case 0: return &v.state @@ -3837,7 +3853,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FloatRules); i { case 0: return &v.state @@ -3849,7 +3865,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DoubleRules); i { case 0: return &v.state @@ -3861,7 +3877,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Int32Rules); i { case 0: return &v.state @@ -3873,7 +3889,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Int64Rules); i { case 0: return &v.state @@ -3885,7 +3901,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UInt32Rules); i { case 0: return &v.state @@ -3897,7 +3913,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UInt64Rules); i { case 0: return &v.state @@ -3909,7 +3925,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SInt32Rules); i { case 0: return &v.state @@ -3921,7 +3937,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SInt64Rules); i { case 0: return &v.state @@ -3933,7 +3949,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Fixed32Rules); i { case 0: return &v.state @@ -3945,7 +3961,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Fixed64Rules); i { case 0: return &v.state @@ -3957,7 +3973,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SFixed32Rules); i { case 0: return &v.state @@ -3969,7 +3985,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SFixed64Rules); i { case 0: return &v.state @@ -3981,7 +3997,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BoolRules); i { case 0: return &v.state @@ -3993,7 +4009,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StringRules); i { case 0: return &v.state @@ -4005,7 +4021,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BytesRules); i { case 0: return &v.state @@ -4017,7 +4033,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnumRules); i { case 0: return &v.state @@ -4029,7 +4045,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageRules); i { case 0: return &v.state @@ -4041,7 +4057,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepeatedRules); i { case 0: return &v.state @@ -4053,7 +4069,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MapRules); i { case 0: return &v.state @@ -4065,7 +4081,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnyRules); i { case 0: return &v.state @@ -4077,7 +4093,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DurationRules); i { case 0: return &v.state @@ -4089,7 +4105,7 @@ func file_trpc_proto_validate_proto_init() { return nil } } - file_trpc_proto_validate_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_trpc_validate_validate_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TimestampRules); i { case 0: return &v.state @@ -4102,7 +4118,7 @@ func file_trpc_proto_validate_proto_init() { } } } - file_trpc_proto_validate_proto_msgTypes[0].OneofWrappers = []interface{}{ + file_trpc_validate_validate_proto_msgTypes[0].OneofWrappers = []interface{}{ (*FieldRules_Float)(nil), (*FieldRules_Double)(nil), (*FieldRules_Int32)(nil), @@ -4125,7 +4141,7 @@ func file_trpc_proto_validate_proto_init() { (*FieldRules_Duration)(nil), (*FieldRules_Timestamp)(nil), } - file_trpc_proto_validate_proto_msgTypes[14].OneofWrappers = []interface{}{ + file_trpc_validate_validate_proto_msgTypes[14].OneofWrappers = []interface{}{ (*StringRules_Email)(nil), (*StringRules_Hostname)(nil), (*StringRules_Ip)(nil), @@ -4141,7 +4157,7 @@ func file_trpc_proto_validate_proto_init() { (*StringRules_Lowercase)(nil), (*StringRules_Tsecstr)(nil), } - file_trpc_proto_validate_proto_msgTypes[15].OneofWrappers = []interface{}{ + file_trpc_validate_validate_proto_msgTypes[15].OneofWrappers = []interface{}{ (*BytesRules_Ip)(nil), (*BytesRules_Ipv4)(nil), (*BytesRules_Ipv6)(nil), @@ -4150,20 +4166,20 @@ func file_trpc_proto_validate_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_trpc_proto_validate_proto_rawDesc, + RawDescriptor: file_trpc_validate_validate_proto_rawDesc, NumEnums: 1, NumMessages: 23, NumExtensions: 4, NumServices: 0, }, - GoTypes: file_trpc_proto_validate_proto_goTypes, - DependencyIndexes: file_trpc_proto_validate_proto_depIdxs, - EnumInfos: file_trpc_proto_validate_proto_enumTypes, - MessageInfos: file_trpc_proto_validate_proto_msgTypes, - ExtensionInfos: file_trpc_proto_validate_proto_extTypes, + GoTypes: file_trpc_validate_validate_proto_goTypes, + DependencyIndexes: file_trpc_validate_validate_proto_depIdxs, + EnumInfos: file_trpc_validate_validate_proto_enumTypes, + MessageInfos: file_trpc_validate_validate_proto_msgTypes, + ExtensionInfos: file_trpc_validate_validate_proto_extTypes, }.Build() - File_trpc_proto_validate_proto = out.File - file_trpc_proto_validate_proto_rawDesc = nil - file_trpc_proto_validate_proto_goTypes = nil - file_trpc_proto_validate_proto_depIdxs = nil + File_trpc_validate_validate_proto = out.File + file_trpc_validate_validate_proto_rawDesc = nil + file_trpc_validate_validate_proto_goTypes = nil + file_trpc_validate_validate_proto_depIdxs = nil } diff --git a/test/cpp/BUILD b/test/cpp/BUILD index 634e0ff..5109206 100644 --- a/test/cpp/BUILD +++ b/test/cpp/BUILD @@ -1,7 +1,7 @@ cc_proto_library( name = "cc_trpc_proto", deps = [ - "//trpc/proto:trpc_proto", + "//trpc:trpc_proto", ], ) @@ -11,3 +11,31 @@ cc_proto_library( "//trpc/proto:trpc_options_proto", ], ) + +cc_proto_library( + name = "cc_annotations_proto", + deps = [ + "//trpc/api:annotations_proto", + ], +) + +cc_proto_library( + name = "cc_http_proto", + deps = [ + "//trpc/api:http_proto", + ], +) + +cc_proto_library( + name = "cc_swagger_proto", + deps = [ + "//trpc/swagger:swagger_proto", + ], +) + +cc_proto_library( + name = "cc_validate_proto", + deps = [ + "//trpc/validate:validate_proto", + ], +) diff --git a/testbuild.sh b/testbuild.sh new file mode 100755 index 0000000..d29df64 --- /dev/null +++ b/testbuild.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +bazel build ... diff --git a/trpc/BUILD b/trpc/BUILD index e69de29..406c1f5 100644 --- a/trpc/BUILD +++ b/trpc/BUILD @@ -0,0 +1,8 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "trpc_proto", + srcs = [ + "trpc.proto", + ], +) diff --git a/trpc/api/BUILD b/trpc/api/BUILD new file mode 100644 index 0000000..2909d2b --- /dev/null +++ b/trpc/api/BUILD @@ -0,0 +1,19 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "annotations_proto", + srcs = [ + "annotations.proto", + ], + deps = [ + "//trpc/api:http_proto", + "@com_google_protobuf//:descriptor_proto", + ], +) + +proto_library( + name = "http_proto", + srcs = [ + "http.proto", + ], +) diff --git a/trpc/proto/BUILD b/trpc/proto/BUILD index 81864a3..6cf0dab 100644 --- a/trpc/proto/BUILD +++ b/trpc/proto/BUILD @@ -1,12 +1,5 @@ package(default_visibility = ["//visibility:public"]) -proto_library( - name = "trpc_proto", - srcs = [ - "trpc.proto", - ], -) - proto_library( name = "trpc_options_proto", srcs = [ diff --git a/trpc/proto/trpc_options.proto b/trpc/proto/trpc_options.proto index 8725b6f..4e5b269 100644 --- a/trpc/proto/trpc_options.proto +++ b/trpc/proto/trpc_options.proto @@ -4,7 +4,7 @@ import "google/protobuf/descriptor.proto"; package trpc; -option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/proto"; option java_package = "com.tencent.trpc.protobuf.ext"; extend google.protobuf.MethodOptions { diff --git a/trpc/swagger/BUILD b/trpc/swagger/BUILD new file mode 100644 index 0000000..3812bda --- /dev/null +++ b/trpc/swagger/BUILD @@ -0,0 +1,11 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "swagger_proto", + srcs = [ + "swagger.proto", + ], + deps = [ + "@com_google_protobuf//:descriptor_proto", + ], +) diff --git a/trpc/proto/swagger.proto b/trpc/swagger/swagger.proto similarity index 86% rename from trpc/proto/swagger.proto rename to trpc/swagger/swagger.proto index 5b67d08..67ea374 100644 --- a/trpc/proto/swagger.proto +++ b/trpc/swagger/swagger.proto @@ -2,7 +2,7 @@ syntax = "proto3"; import "google/protobuf/descriptor.proto"; package trpc; -option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/swagger"; option java_package = "com.tencent.trpc.protobuf.ext"; extend google.protobuf.MethodOptions { diff --git a/trpc/proto/trpc.proto b/trpc/trpc.proto similarity index 100% rename from trpc/proto/trpc.proto rename to trpc/trpc.proto diff --git a/trpc/validate/BUILD b/trpc/validate/BUILD new file mode 100644 index 0000000..4e2bc91 --- /dev/null +++ b/trpc/validate/BUILD @@ -0,0 +1,13 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "validate_proto", + srcs = [ + "validate.proto", + ], + deps = [ + "@com_google_protobuf//:descriptor_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) diff --git a/trpc/proto/validate.proto b/trpc/validate/validate.proto similarity index 99% rename from trpc/proto/validate.proto rename to trpc/validate/validate.proto index d7de5c0..522f1ba 100644 --- a/trpc/proto/validate.proto +++ b/trpc/validate/validate.proto @@ -1,7 +1,7 @@ syntax = "proto2"; -package trpc; +package trpc.validate; -option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/validate"; option java_package = "com.tencent.trpc.protobuf.ext"; import "google/protobuf/descriptor.proto"; From 0c8c0e72f70021623d1f729ba2d7c9d29f5af855 Mon Sep 17 00:00:00 2001 From: wineguo Date: Mon, 28 Nov 2022 17:49:41 +0800 Subject: [PATCH 65/85] add trpcv2 proto files Reference: https://doc.weixin.qq.com/doc/w3_AGkAxgZOAFMmQcAOcIkSOWgvNFkY3?scode=AJEAIQdfAAoLH9SMkiAGkAxgZOAFM TAPD: --story=879844783 --- .gitignore | 1 + Makefile | 15 + pb/go/trpc/api/annotations.pb.go | 2 +- pb/go/trpc/api/http.pb.go | 2 +- pb/go/trpc/go.mod | 2 +- pb/go/trpc/proto/trpc_options.pb.go | 2 +- pb/go/trpc/swagger/swagger.pb.go | 2 +- pb/go/trpc/trpc.pb.go | 2 +- pb/go/trpc/validate/validate.pb.go | 2 +- pb/go/trpcv2/api/annotations.pb.go | 100 + pb/go/trpcv2/api/http.pb.go | 404 +++ pb/go/trpcv2/go.mod | 8 + pb/go/trpcv2/go.sum | 11 + pb/go/trpcv2/proto/trpc_options.pb.go | 114 + pb/go/trpcv2/swagger/swagger.pb.go | 291 ++ pb/go/trpcv2/trpc.pb.go | 1931 ++++++++++++ pb/go/trpcv2/validate/validate.pb.go | 4189 +++++++++++++++++++++++++ trpcv2/BUILD | 8 + trpcv2/api/BUILD | 19 + trpcv2/api/annotations.proto | 13 + trpcv2/api/http.proto | 70 + trpcv2/proto/BUILD | 11 + trpcv2/proto/trpc_options.proto | 16 + trpcv2/swagger/BUILD | 11 + trpcv2/swagger/swagger.proto | 24 + trpcv2/trpc.proto | 514 +++ trpcv2/validate/BUILD | 13 + trpcv2/validate/validate.proto | 875 ++++++ 28 files changed, 8645 insertions(+), 7 deletions(-) create mode 100644 pb/go/trpcv2/api/annotations.pb.go create mode 100644 pb/go/trpcv2/api/http.pb.go create mode 100644 pb/go/trpcv2/go.mod create mode 100644 pb/go/trpcv2/go.sum create mode 100644 pb/go/trpcv2/proto/trpc_options.pb.go create mode 100644 pb/go/trpcv2/swagger/swagger.pb.go create mode 100644 pb/go/trpcv2/trpc.pb.go create mode 100644 pb/go/trpcv2/validate/validate.pb.go create mode 100644 trpcv2/BUILD create mode 100644 trpcv2/api/BUILD create mode 100644 trpcv2/api/annotations.proto create mode 100644 trpcv2/api/http.proto create mode 100644 trpcv2/proto/BUILD create mode 100644 trpcv2/proto/trpc_options.proto create mode 100644 trpcv2/swagger/BUILD create mode 100644 trpcv2/swagger/swagger.proto create mode 100644 trpcv2/trpc.proto create mode 100644 trpcv2/validate/BUILD create mode 100644 trpcv2/validate/validate.proto diff --git a/.gitignore b/.gitignore index ac51a05..8d683b8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ +.vscode/* bazel-* diff --git a/Makefile b/Makefile index 26cb1b9..f93eebc 100644 --- a/Makefile +++ b/Makefile @@ -16,6 +16,21 @@ all: rm -rf $(DIR)/git.woa.com cd ./$(DIR)/trpc && go mod init git.woa.com/trpc/trpc-protocol/$(DIR)/trpc && go mod tidy && cd - + # trpc v2 + protoc -I/usr/local/include -I.\ + --go_out=paths=source_relative:./$(DIR) \ + ./trpcv2/api/annotations.proto \ + ./trpcv2/api/http.proto + protoc -I/usr/local/include -I.\ + --go_out=./$(DIR) \ + ./trpcv2/trpc.proto \ + ./trpcv2/proto/trpc_options.proto \ + ./trpcv2/swagger/swagger.proto \ + ./trpcv2/validate/validate.proto + mv $(DIR)/git.woa.com/trpc/trpc-protocol/pb/go/trpcv2/* $(DIR)/trpcv2 + rm -rf $(DIR)/git.woa.com + cd ./$(DIR)/trpcv2 && go mod init git.woa.com/trpc/trpc-protocol/$(DIR)/trpcv2 && go mod tidy && cd - + .PHONY: test clean test: diff --git a/pb/go/trpc/api/annotations.pb.go b/pb/go/trpc/api/annotations.pb.go index e8eaa27..74bf6b0 100644 --- a/pb/go/trpc/api/annotations.pb.go +++ b/pb/go/trpc/api/annotations.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.19.4 // source: trpc/api/annotations.proto package api diff --git a/pb/go/trpc/api/http.pb.go b/pb/go/trpc/api/http.pb.go index 3698ad3..4873e55 100644 --- a/pb/go/trpc/api/http.pb.go +++ b/pb/go/trpc/api/http.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.19.4 // source: trpc/api/http.proto package api diff --git a/pb/go/trpc/go.mod b/pb/go/trpc/go.mod index 68e884b..482cfe4 100644 --- a/pb/go/trpc/go.mod +++ b/pb/go/trpc/go.mod @@ -1,6 +1,6 @@ module git.woa.com/trpc/trpc-protocol/pb/go/trpc -go 1.18 +go 1.19 require ( github.com/golang/protobuf v1.5.2 diff --git a/pb/go/trpc/proto/trpc_options.pb.go b/pb/go/trpc/proto/trpc_options.pb.go index 0163aa1..6360cc4 100644 --- a/pb/go/trpc/proto/trpc_options.pb.go +++ b/pb/go/trpc/proto/trpc_options.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.19.4 // source: trpc/proto/trpc_options.proto package proto diff --git a/pb/go/trpc/swagger/swagger.pb.go b/pb/go/trpc/swagger/swagger.pb.go index 95e0783..a380020 100644 --- a/pb/go/trpc/swagger/swagger.pb.go +++ b/pb/go/trpc/swagger/swagger.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.19.4 // source: trpc/swagger/swagger.proto package swagger diff --git a/pb/go/trpc/trpc.pb.go b/pb/go/trpc/trpc.pb.go index 0c8216c..bb61c46 100644 --- a/pb/go/trpc/trpc.pb.go +++ b/pb/go/trpc/trpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.19.4 // source: trpc/trpc.proto package trpc diff --git a/pb/go/trpc/validate/validate.pb.go b/pb/go/trpc/validate/validate.pb.go index 3d54db9..f5a48b2 100644 --- a/pb/go/trpc/validate/validate.pb.go +++ b/pb/go/trpc/validate/validate.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc v3.19.4 // source: trpc/validate/validate.proto package validate diff --git a/pb/go/trpcv2/api/annotations.pb.go b/pb/go/trpcv2/api/annotations.pb.go new file mode 100644 index 0000000..686124b --- /dev/null +++ b/pb/go/trpcv2/api/annotations.pb.go @@ -0,0 +1,100 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.19.4 +// source: trpcv2/api/annotations.proto + +package api + +import ( + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var file_trpcv2_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptor.MethodOptions)(nil), + ExtensionType: (*HttpRule)(nil), + Field: 1157, + Name: "trpcv2.api.http", + Tag: "bytes,1157,opt,name=http", + Filename: "trpcv2/api/annotations.proto", + }, +} + +// Extension fields to descriptor.MethodOptions. +var ( + // optional trpcv2.api.HttpRule http = 1157; + E_Http = &file_trpcv2_api_annotations_proto_extTypes[0] +) + +var File_trpcv2_api_annotations_proto protoreflect.FileDescriptor + +var file_trpcv2_api_annotations_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, + 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x1a, 0x15, 0x74, 0x72, 0x70, 0x63, + 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x3a, 0x49, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x1e, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x85, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x42, 0x50, + 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, + 0x2f, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, + 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_trpcv2_api_annotations_proto_goTypes = []interface{}{ + (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*HttpRule)(nil), // 1: trpcv2.api.HttpRule +} +var file_trpcv2_api_annotations_proto_depIdxs = []int32{ + 0, // 0: trpcv2.api.http:extendee -> google.protobuf.MethodOptions + 1, // 1: trpcv2.api.http:type_name -> trpcv2.api.HttpRule + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 1, // [1:2] is the sub-list for extension type_name + 0, // [0:1] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_trpcv2_api_annotations_proto_init() } +func file_trpcv2_api_annotations_proto_init() { + if File_trpcv2_api_annotations_proto != nil { + return + } + file_trpcv2_api_http_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpcv2_api_annotations_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 1, + NumServices: 0, + }, + GoTypes: file_trpcv2_api_annotations_proto_goTypes, + DependencyIndexes: file_trpcv2_api_annotations_proto_depIdxs, + ExtensionInfos: file_trpcv2_api_annotations_proto_extTypes, + }.Build() + File_trpcv2_api_annotations_proto = out.File + file_trpcv2_api_annotations_proto_rawDesc = nil + file_trpcv2_api_annotations_proto_goTypes = nil + file_trpcv2_api_annotations_proto_depIdxs = nil +} diff --git a/pb/go/trpcv2/api/http.pb.go b/pb/go/trpcv2/api/http.pb.go new file mode 100644 index 0000000..609d34e --- /dev/null +++ b/pb/go/trpcv2/api/http.pb.go @@ -0,0 +1,404 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.19.4 +// source: trpcv2/api/http.proto + +package api + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type HttpRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Selects a method to which this rule applies. + // + // Refer to [selector][google.api.DocumentationRule.selector] for syntax details. + Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"` + // Determines the URL pattern is matched by this rules. This pattern can be + // used with any of the {get|put|post|delete|patch} methods. A custom method + // can be defined using the 'custom' field. + // + // Types that are assignable to Pattern: + // *HttpRule_Get + // *HttpRule_Put + // *HttpRule_Post + // *HttpRule_Delete + // *HttpRule_Patch + // *HttpRule_Custom + Pattern isHttpRule_Pattern `protobuf_oneof:"pattern"` + // The name of the request field whose value is mapped to the HTTP request + // body, or `*` for mapping all request fields not captured by the path + // pattern to the HTTP body, or omitted for not having any HTTP request body. + // + // NOTE: the referred field must be present at the top-level of the request + // message type. + Body string `protobuf:"bytes,7,opt,name=body,proto3" json:"body,omitempty"` + // Optional. The name of the response field whose value is mapped to the HTTP + // response body. When omitted, the entire response message will be used + // as the HTTP response body. + // + // NOTE: The referred field must be present at the top-level of the response + // message type. + ResponseBody string `protobuf:"bytes,12,opt,name=response_body,json=responseBody,proto3" json:"response_body,omitempty"` + // Additional HTTP bindings for the selector. Nested bindings must + // not contain an `additional_bindings` field themselves (that is, + // the nesting may only be one level deep). + AdditionalBindings []*HttpRule `protobuf:"bytes,11,rep,name=additional_bindings,json=additionalBindings,proto3" json:"additional_bindings,omitempty"` +} + +func (x *HttpRule) Reset() { + *x = HttpRule{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_api_http_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HttpRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HttpRule) ProtoMessage() {} + +func (x *HttpRule) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_api_http_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HttpRule.ProtoReflect.Descriptor instead. +func (*HttpRule) Descriptor() ([]byte, []int) { + return file_trpcv2_api_http_proto_rawDescGZIP(), []int{0} +} + +func (x *HttpRule) GetSelector() string { + if x != nil { + return x.Selector + } + return "" +} + +func (m *HttpRule) GetPattern() isHttpRule_Pattern { + if m != nil { + return m.Pattern + } + return nil +} + +func (x *HttpRule) GetGet() string { + if x, ok := x.GetPattern().(*HttpRule_Get); ok { + return x.Get + } + return "" +} + +func (x *HttpRule) GetPut() string { + if x, ok := x.GetPattern().(*HttpRule_Put); ok { + return x.Put + } + return "" +} + +func (x *HttpRule) GetPost() string { + if x, ok := x.GetPattern().(*HttpRule_Post); ok { + return x.Post + } + return "" +} + +func (x *HttpRule) GetDelete() string { + if x, ok := x.GetPattern().(*HttpRule_Delete); ok { + return x.Delete + } + return "" +} + +func (x *HttpRule) GetPatch() string { + if x, ok := x.GetPattern().(*HttpRule_Patch); ok { + return x.Patch + } + return "" +} + +func (x *HttpRule) GetCustom() *CustomHttpPattern { + if x, ok := x.GetPattern().(*HttpRule_Custom); ok { + return x.Custom + } + return nil +} + +func (x *HttpRule) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + +func (x *HttpRule) GetResponseBody() string { + if x != nil { + return x.ResponseBody + } + return "" +} + +func (x *HttpRule) GetAdditionalBindings() []*HttpRule { + if x != nil { + return x.AdditionalBindings + } + return nil +} + +type isHttpRule_Pattern interface { + isHttpRule_Pattern() +} + +type HttpRule_Get struct { + // Maps to HTTP GET. Used for listing and getting information about + // resources. + Get string `protobuf:"bytes,2,opt,name=get,proto3,oneof"` +} + +type HttpRule_Put struct { + // Maps to HTTP PUT. Used for replacing a resource. + Put string `protobuf:"bytes,3,opt,name=put,proto3,oneof"` +} + +type HttpRule_Post struct { + // Maps to HTTP POST. Used for creating a resource or performing an action. + Post string `protobuf:"bytes,4,opt,name=post,proto3,oneof"` +} + +type HttpRule_Delete struct { + // Maps to HTTP DELETE. Used for deleting a resource. + Delete string `protobuf:"bytes,5,opt,name=delete,proto3,oneof"` +} + +type HttpRule_Patch struct { + // Maps to HTTP PATCH. Used for updating a resource. + Patch string `protobuf:"bytes,6,opt,name=patch,proto3,oneof"` +} + +type HttpRule_Custom struct { + // The custom pattern is used for specifying an HTTP method that is not + // included in the `pattern` field, such as HEAD, or "*" to leave the + // HTTP method unspecified for this rule. The wild-card rule is useful + // for services that provide content to Web (HTML) clients. + Custom *CustomHttpPattern `protobuf:"bytes,8,opt,name=custom,proto3,oneof"` +} + +func (*HttpRule_Get) isHttpRule_Pattern() {} + +func (*HttpRule_Put) isHttpRule_Pattern() {} + +func (*HttpRule_Post) isHttpRule_Pattern() {} + +func (*HttpRule_Delete) isHttpRule_Pattern() {} + +func (*HttpRule_Patch) isHttpRule_Pattern() {} + +func (*HttpRule_Custom) isHttpRule_Pattern() {} + +// A custom pattern is used for defining custom HTTP verb. +type CustomHttpPattern struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of this custom HTTP verb. + Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"` + // The path matched by this custom verb. + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` +} + +func (x *CustomHttpPattern) Reset() { + *x = CustomHttpPattern{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_api_http_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CustomHttpPattern) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CustomHttpPattern) ProtoMessage() {} + +func (x *CustomHttpPattern) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_api_http_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CustomHttpPattern.ProtoReflect.Descriptor instead. +func (*CustomHttpPattern) Descriptor() ([]byte, []int) { + return file_trpcv2_api_http_proto_rawDescGZIP(), []int{1} +} + +func (x *CustomHttpPattern) GetKind() string { + if x != nil { + return x.Kind + } + return "" +} + +func (x *CustomHttpPattern) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +var File_trpcv2_api_http_proto protoreflect.FileDescriptor + +var file_trpcv2_api_http_proto_rawDesc = []byte{ + 0x0a, 0x15, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, + 0x61, 0x70, 0x69, 0x22, 0xda, 0x02, 0x0a, 0x08, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x03, + 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, 0x74, + 0x12, 0x12, 0x0a, 0x03, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x03, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x06, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x45, + 0x0a, 0x13, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x12, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x22, 0x3b, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x50, 0x0a, + 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x2f, + 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, + 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, + 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpcv2_api_http_proto_rawDescOnce sync.Once + file_trpcv2_api_http_proto_rawDescData = file_trpcv2_api_http_proto_rawDesc +) + +func file_trpcv2_api_http_proto_rawDescGZIP() []byte { + file_trpcv2_api_http_proto_rawDescOnce.Do(func() { + file_trpcv2_api_http_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpcv2_api_http_proto_rawDescData) + }) + return file_trpcv2_api_http_proto_rawDescData +} + +var file_trpcv2_api_http_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_trpcv2_api_http_proto_goTypes = []interface{}{ + (*HttpRule)(nil), // 0: trpcv2.api.HttpRule + (*CustomHttpPattern)(nil), // 1: trpcv2.api.CustomHttpPattern +} +var file_trpcv2_api_http_proto_depIdxs = []int32{ + 1, // 0: trpcv2.api.HttpRule.custom:type_name -> trpcv2.api.CustomHttpPattern + 0, // 1: trpcv2.api.HttpRule.additional_bindings:type_name -> trpcv2.api.HttpRule + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_trpcv2_api_http_proto_init() } +func file_trpcv2_api_http_proto_init() { + if File_trpcv2_api_http_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpcv2_api_http_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HttpRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_api_http_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CustomHttpPattern); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_trpcv2_api_http_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*HttpRule_Get)(nil), + (*HttpRule_Put)(nil), + (*HttpRule_Post)(nil), + (*HttpRule_Delete)(nil), + (*HttpRule_Patch)(nil), + (*HttpRule_Custom)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpcv2_api_http_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_trpcv2_api_http_proto_goTypes, + DependencyIndexes: file_trpcv2_api_http_proto_depIdxs, + MessageInfos: file_trpcv2_api_http_proto_msgTypes, + }.Build() + File_trpcv2_api_http_proto = out.File + file_trpcv2_api_http_proto_rawDesc = nil + file_trpcv2_api_http_proto_goTypes = nil + file_trpcv2_api_http_proto_depIdxs = nil +} diff --git a/pb/go/trpcv2/go.mod b/pb/go/trpcv2/go.mod new file mode 100644 index 0000000..02332d9 --- /dev/null +++ b/pb/go/trpcv2/go.mod @@ -0,0 +1,8 @@ +module git.woa.com/trpc/trpc-protocol/pb/go/trpcv2 + +go 1.19 + +require ( + github.com/golang/protobuf v1.5.2 + google.golang.org/protobuf v1.28.1 +) diff --git a/pb/go/trpcv2/go.sum b/pb/go/trpcv2/go.sum new file mode 100644 index 0000000..f415d59 --- /dev/null +++ b/pb/go/trpcv2/go.sum @@ -0,0 +1,11 @@ +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= diff --git a/pb/go/trpcv2/proto/trpc_options.pb.go b/pb/go/trpcv2/proto/trpc_options.pb.go new file mode 100644 index 0000000..4bebb66 --- /dev/null +++ b/pb/go/trpcv2/proto/trpc_options.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.19.4 +// source: trpcv2/proto/trpc_options.proto + +package proto + +import ( + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var file_trpcv2_proto_trpc_options_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptor.MethodOptions)(nil), + ExtensionType: (*string)(nil), + Field: 1155, + Name: "trpcv2.alias", + Tag: "bytes,1155,opt,name=alias", + Filename: "trpcv2/proto/trpc_options.proto", + }, + { + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 1156, + Name: "trpcv2.go_tag", + Tag: "bytes,1156,opt,name=go_tag", + Filename: "trpcv2/proto/trpc_options.proto", + }, +} + +// Extension fields to descriptor.MethodOptions. +var ( + // optional string alias = 1155; + E_Alias = &file_trpcv2_proto_trpc_options_proto_extTypes[0] +) + +// Extension fields to descriptor.FieldOptions. +var ( + // optional string go_tag = 1156; + E_GoTag = &file_trpcv2_proto_trpc_options_proto_extTypes[1] +) + +var File_trpcv2_proto_trpc_options_proto protoreflect.FileDescriptor + +var file_trpcv2_proto_trpc_options_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x06, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x35, 0x0a, 0x05, 0x61, + 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x3a, 0x35, 0x0a, 0x06, 0x67, 0x6f, 0x5f, 0x74, 0x61, 0x67, 0x12, 0x1d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x84, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x52, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, + 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x2e, + 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, + 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, + 0x2f, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_trpcv2_proto_trpc_options_proto_goTypes = []interface{}{ + (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*descriptor.FieldOptions)(nil), // 1: google.protobuf.FieldOptions +} +var file_trpcv2_proto_trpc_options_proto_depIdxs = []int32{ + 0, // 0: trpcv2.alias:extendee -> google.protobuf.MethodOptions + 1, // 1: trpcv2.go_tag:extendee -> google.protobuf.FieldOptions + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 0, // [0:2] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_trpcv2_proto_trpc_options_proto_init() } +func file_trpcv2_proto_trpc_options_proto_init() { + if File_trpcv2_proto_trpc_options_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpcv2_proto_trpc_options_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 2, + NumServices: 0, + }, + GoTypes: file_trpcv2_proto_trpc_options_proto_goTypes, + DependencyIndexes: file_trpcv2_proto_trpc_options_proto_depIdxs, + ExtensionInfos: file_trpcv2_proto_trpc_options_proto_extTypes, + }.Build() + File_trpcv2_proto_trpc_options_proto = out.File + file_trpcv2_proto_trpc_options_proto_rawDesc = nil + file_trpcv2_proto_trpc_options_proto_goTypes = nil + file_trpcv2_proto_trpc_options_proto_depIdxs = nil +} diff --git a/pb/go/trpcv2/swagger/swagger.pb.go b/pb/go/trpcv2/swagger/swagger.pb.go new file mode 100644 index 0000000..a79e8e5 --- /dev/null +++ b/pb/go/trpcv2/swagger/swagger.pb.go @@ -0,0 +1,291 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.19.4 +// source: trpcv2/swagger/swagger.proto + +package swagger + +import ( + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// to gen swagger json +type SwaggerRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,50103,opt,name=title,proto3" json:"title,omitempty"` + Method string `protobuf:"bytes,50104,opt,name=method,proto3" json:"method,omitempty"` + Description string `protobuf:"bytes,50105,opt,name=description,proto3" json:"description,omitempty"` + Params []*SwaggerParam `protobuf:"bytes,50106,rep,name=params,proto3" json:"params,omitempty"` +} + +func (x *SwaggerRule) Reset() { + *x = SwaggerRule{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_swagger_swagger_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwaggerRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwaggerRule) ProtoMessage() {} + +func (x *SwaggerRule) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_swagger_swagger_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwaggerRule.ProtoReflect.Descriptor instead. +func (*SwaggerRule) Descriptor() ([]byte, []int) { + return file_trpcv2_swagger_swagger_proto_rawDescGZIP(), []int{0} +} + +func (x *SwaggerRule) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *SwaggerRule) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +func (x *SwaggerRule) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *SwaggerRule) GetParams() []*SwaggerParam { + if x != nil { + return x.Params + } + return nil +} + +type SwaggerParam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Required bool `protobuf:"varint,2,opt,name=required,proto3" json:"required,omitempty"` + Default string `protobuf:"bytes,3,opt,name=default,proto3" json:"default,omitempty"` +} + +func (x *SwaggerParam) Reset() { + *x = SwaggerParam{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_swagger_swagger_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwaggerParam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwaggerParam) ProtoMessage() {} + +func (x *SwaggerParam) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_swagger_swagger_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwaggerParam.ProtoReflect.Descriptor instead. +func (*SwaggerParam) Descriptor() ([]byte, []int) { + return file_trpcv2_swagger_swagger_proto_rawDescGZIP(), []int{1} +} + +func (x *SwaggerParam) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SwaggerParam) GetRequired() bool { + if x != nil { + return x.Required + } + return false +} + +func (x *SwaggerParam) GetDefault() string { + if x != nil { + return x.Default + } + return "" +} + +var file_trpcv2_swagger_swagger_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptor.MethodOptions)(nil), + ExtensionType: (*SwaggerRule)(nil), + Field: 1156, + Name: "trpcv2.swagger", + Tag: "bytes,1156,opt,name=swagger", + Filename: "trpcv2/swagger/swagger.proto", + }, +} + +// Extension fields to descriptor.MethodOptions. +var ( + // optional trpcv2.SwaggerRule swagger = 1156; + E_Swagger = &file_trpcv2_swagger_swagger_proto_extTypes[0] +) + +var File_trpcv2_swagger_swagger_proto protoreflect.FileDescriptor + +var file_trpcv2_swagger_swagger_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, + 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, + 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x01, 0x0a, 0x0b, 0x53, 0x77, 0x61, + 0x67, 0x67, 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0xb7, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x12, 0x18, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0xb8, 0x87, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x22, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xb9, 0x87, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0xba, 0x87, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x58, + 0x0a, 0x0c, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x4e, 0x0a, 0x07, 0x73, 0x77, 0x61, 0x67, + 0x67, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x84, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x76, 0x32, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x52, + 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x42, 0x54, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, + 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x2e, 0x77, + 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, + 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpcv2_swagger_swagger_proto_rawDescOnce sync.Once + file_trpcv2_swagger_swagger_proto_rawDescData = file_trpcv2_swagger_swagger_proto_rawDesc +) + +func file_trpcv2_swagger_swagger_proto_rawDescGZIP() []byte { + file_trpcv2_swagger_swagger_proto_rawDescOnce.Do(func() { + file_trpcv2_swagger_swagger_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpcv2_swagger_swagger_proto_rawDescData) + }) + return file_trpcv2_swagger_swagger_proto_rawDescData +} + +var file_trpcv2_swagger_swagger_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_trpcv2_swagger_swagger_proto_goTypes = []interface{}{ + (*SwaggerRule)(nil), // 0: trpcv2.SwaggerRule + (*SwaggerParam)(nil), // 1: trpcv2.SwaggerParam + (*descriptor.MethodOptions)(nil), // 2: google.protobuf.MethodOptions +} +var file_trpcv2_swagger_swagger_proto_depIdxs = []int32{ + 1, // 0: trpcv2.SwaggerRule.params:type_name -> trpcv2.SwaggerParam + 2, // 1: trpcv2.swagger:extendee -> google.protobuf.MethodOptions + 0, // 2: trpcv2.swagger:type_name -> trpcv2.SwaggerRule + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 2, // [2:3] is the sub-list for extension type_name + 1, // [1:2] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_trpcv2_swagger_swagger_proto_init() } +func file_trpcv2_swagger_swagger_proto_init() { + if File_trpcv2_swagger_swagger_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpcv2_swagger_swagger_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwaggerRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_swagger_swagger_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwaggerParam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpcv2_swagger_swagger_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 1, + NumServices: 0, + }, + GoTypes: file_trpcv2_swagger_swagger_proto_goTypes, + DependencyIndexes: file_trpcv2_swagger_swagger_proto_depIdxs, + MessageInfos: file_trpcv2_swagger_swagger_proto_msgTypes, + ExtensionInfos: file_trpcv2_swagger_swagger_proto_extTypes, + }.Build() + File_trpcv2_swagger_swagger_proto = out.File + file_trpcv2_swagger_swagger_proto_rawDesc = nil + file_trpcv2_swagger_swagger_proto_goTypes = nil + file_trpcv2_swagger_swagger_proto_depIdxs = nil +} diff --git a/pb/go/trpcv2/trpc.pb.go b/pb/go/trpcv2/trpc.pb.go new file mode 100644 index 0000000..e0fc6cf --- /dev/null +++ b/pb/go/trpcv2/trpc.pb.go @@ -0,0 +1,1931 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.19.4 +// source: trpcv2/trpc.proto + +package trpc + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// 框架协议头里的魔数 +type TrpcMagic int32 + +const ( + // trpc不用这个值,为了提供给pb工具生成代码 + TrpcMagic_TRPC_DEFAULT_NONE TrpcMagic = 0 + // trpc协议默认使用这个魔数 + TrpcMagic_TRPC_MAGIC_VALUE TrpcMagic = 2352 +) + +// Enum value maps for TrpcMagic. +var ( + TrpcMagic_name = map[int32]string{ + 0: "TRPC_DEFAULT_NONE", + 2352: "TRPC_MAGIC_VALUE", + } + TrpcMagic_value = map[string]int32{ + "TRPC_DEFAULT_NONE": 0, + "TRPC_MAGIC_VALUE": 2352, + } +) + +func (x TrpcMagic) Enum() *TrpcMagic { + p := new(TrpcMagic) + *p = x + return p +} + +func (x TrpcMagic) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcMagic) Descriptor() protoreflect.EnumDescriptor { + return file_trpcv2_trpc_proto_enumTypes[0].Descriptor() +} + +func (TrpcMagic) Type() protoreflect.EnumType { + return &file_trpcv2_trpc_proto_enumTypes[0] +} + +func (x TrpcMagic) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcMagic.Descriptor instead. +func (TrpcMagic) EnumDescriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{0} +} + +// trpc协议的二进制数据帧类型 +// 目前支持两种类型的二进制数据帧: +// 1. 一应一答模式的二进制数据帧类型 +// 2. 流式模式的二进制数据帧类型 +type TrpcDataFrameType int32 + +const ( + // trpc一应一答模式的二进制数据帧类型 + TrpcDataFrameType_TRPC_UNARY_FRAME TrpcDataFrameType = 0 + // trpc流式模式的二进制数据帧类型 + TrpcDataFrameType_TRPC_STREAM_FRAME TrpcDataFrameType = 1 +) + +// Enum value maps for TrpcDataFrameType. +var ( + TrpcDataFrameType_name = map[int32]string{ + 0: "TRPC_UNARY_FRAME", + 1: "TRPC_STREAM_FRAME", + } + TrpcDataFrameType_value = map[string]int32{ + "TRPC_UNARY_FRAME": 0, + "TRPC_STREAM_FRAME": 1, + } +) + +func (x TrpcDataFrameType) Enum() *TrpcDataFrameType { + p := new(TrpcDataFrameType) + *p = x + return p +} + +func (x TrpcDataFrameType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcDataFrameType) Descriptor() protoreflect.EnumDescriptor { + return file_trpcv2_trpc_proto_enumTypes[1].Descriptor() +} + +func (TrpcDataFrameType) Type() protoreflect.EnumType { + return &file_trpcv2_trpc_proto_enumTypes[1] +} + +func (x TrpcDataFrameType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcDataFrameType.Descriptor instead. +func (TrpcDataFrameType) EnumDescriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{1} +} + +// trpc协议流式的二进制数据帧类型 +// 目前流式帧类型分4种:INIT/DATA/FEEDBACK/CLOSE,其中CLOSE帧不带业务数据 +// INIT帧:FIXHEADER + TrpcStreamInitMeta +// DATA帧:FIXHEADER + body(业务序列化的数据) +// FEEDBACK帧:FIXHEADER + TrpcStreamFeedBackMeta(触发策略,高低水位+定时) +// CLOSE帧:FIXHEADER + TrpcStreamCloseMeta +// 连接和流空闲超时的回收机制不考虑 +type TrpcStreamFrameType int32 + +const ( + // 一应一答的默认取值 + TrpcStreamFrameType_TRPC_UNARY TrpcStreamFrameType = 0 + // 流式INIT帧类型 + TrpcStreamFrameType_TRPC_STREAM_FRAME_INIT TrpcStreamFrameType = 1 + // 流式DATA帧类型 + TrpcStreamFrameType_TRPC_STREAM_FRAME_DATA TrpcStreamFrameType = 2 + // 流式FEEDBACK帧类型 + TrpcStreamFrameType_TRPC_STREAM_FRAME_FEEDBACK TrpcStreamFrameType = 3 + // 流式CLOSE帧类型 + TrpcStreamFrameType_TRPC_STREAM_FRAME_CLOSE TrpcStreamFrameType = 4 +) + +// Enum value maps for TrpcStreamFrameType. +var ( + TrpcStreamFrameType_name = map[int32]string{ + 0: "TRPC_UNARY", + 1: "TRPC_STREAM_FRAME_INIT", + 2: "TRPC_STREAM_FRAME_DATA", + 3: "TRPC_STREAM_FRAME_FEEDBACK", + 4: "TRPC_STREAM_FRAME_CLOSE", + } + TrpcStreamFrameType_value = map[string]int32{ + "TRPC_UNARY": 0, + "TRPC_STREAM_FRAME_INIT": 1, + "TRPC_STREAM_FRAME_DATA": 2, + "TRPC_STREAM_FRAME_FEEDBACK": 3, + "TRPC_STREAM_FRAME_CLOSE": 4, + } +) + +func (x TrpcStreamFrameType) Enum() *TrpcStreamFrameType { + p := new(TrpcStreamFrameType) + *p = x + return p +} + +func (x TrpcStreamFrameType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcStreamFrameType) Descriptor() protoreflect.EnumDescriptor { + return file_trpcv2_trpc_proto_enumTypes[2].Descriptor() +} + +func (TrpcStreamFrameType) Type() protoreflect.EnumType { + return &file_trpcv2_trpc_proto_enumTypes[2] +} + +func (x TrpcStreamFrameType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcStreamFrameType.Descriptor instead. +func (TrpcStreamFrameType) EnumDescriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{2} +} + +// trpc流式关闭类型 +type TrpcStreamCloseType int32 + +const ( + // 正常单向流关闭 + TrpcStreamCloseType_TRPC_STREAM_CLOSE TrpcStreamCloseType = 0 + // 异常关闭双向流 + TrpcStreamCloseType_TRPC_STREAM_RESET TrpcStreamCloseType = 1 +) + +// Enum value maps for TrpcStreamCloseType. +var ( + TrpcStreamCloseType_name = map[int32]string{ + 0: "TRPC_STREAM_CLOSE", + 1: "TRPC_STREAM_RESET", + } + TrpcStreamCloseType_value = map[string]int32{ + "TRPC_STREAM_CLOSE": 0, + "TRPC_STREAM_RESET": 1, + } +) + +func (x TrpcStreamCloseType) Enum() *TrpcStreamCloseType { + p := new(TrpcStreamCloseType) + *p = x + return p +} + +func (x TrpcStreamCloseType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcStreamCloseType) Descriptor() protoreflect.EnumDescriptor { + return file_trpcv2_trpc_proto_enumTypes[3].Descriptor() +} + +func (TrpcStreamCloseType) Type() protoreflect.EnumType { + return &file_trpcv2_trpc_proto_enumTypes[3] +} + +func (x TrpcStreamCloseType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcStreamCloseType.Descriptor instead. +func (TrpcStreamCloseType) EnumDescriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{3} +} + +// trpc协议版本 +type TrpcProtoVersion int32 + +const ( + // 默认版本 + TrpcProtoVersion_TRPC_PROTO_V1 TrpcProtoVersion = 0 +) + +// Enum value maps for TrpcProtoVersion. +var ( + TrpcProtoVersion_name = map[int32]string{ + 0: "TRPC_PROTO_V1", + } + TrpcProtoVersion_value = map[string]int32{ + "TRPC_PROTO_V1": 0, + } +) + +func (x TrpcProtoVersion) Enum() *TrpcProtoVersion { + p := new(TrpcProtoVersion) + *p = x + return p +} + +func (x TrpcProtoVersion) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcProtoVersion) Descriptor() protoreflect.EnumDescriptor { + return file_trpcv2_trpc_proto_enumTypes[4].Descriptor() +} + +func (TrpcProtoVersion) Type() protoreflect.EnumType { + return &file_trpcv2_trpc_proto_enumTypes[4] +} + +func (x TrpcProtoVersion) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcProtoVersion.Descriptor instead. +func (TrpcProtoVersion) EnumDescriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{4} +} + +// trpc协议中的调用类型 +type TrpcCallType int32 + +const ( + // 一应一答调用,包括同步、异步 + TrpcCallType_TRPC_UNARY_CALL TrpcCallType = 0 + // 单向调用 + TrpcCallType_TRPC_ONEWAY_CALL TrpcCallType = 1 +) + +// Enum value maps for TrpcCallType. +var ( + TrpcCallType_name = map[int32]string{ + 0: "TRPC_UNARY_CALL", + 1: "TRPC_ONEWAY_CALL", + } + TrpcCallType_value = map[string]int32{ + "TRPC_UNARY_CALL": 0, + "TRPC_ONEWAY_CALL": 1, + } +) + +func (x TrpcCallType) Enum() *TrpcCallType { + p := new(TrpcCallType) + *p = x + return p +} + +func (x TrpcCallType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcCallType) Descriptor() protoreflect.EnumDescriptor { + return file_trpcv2_trpc_proto_enumTypes[5].Descriptor() +} + +func (TrpcCallType) Type() protoreflect.EnumType { + return &file_trpcv2_trpc_proto_enumTypes[5] +} + +func (x TrpcCallType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcCallType.Descriptor instead. +func (TrpcCallType) EnumDescriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{5} +} + +// trpc协议中的消息透传支持的类型 +type TrpcMessageType int32 + +const ( + // trpc 不用这个值,为了提供给 pb 工具生成代码 + TrpcMessageType_TRPC_DEFAULT TrpcMessageType = 0 + // 染色 + TrpcMessageType_TRPC_DYEING_MESSAGE TrpcMessageType = 1 + // 调用链 + TrpcMessageType_TRPC_TRACE_MESSAGE TrpcMessageType = 2 + // 多环境 + TrpcMessageType_TRPC_MULTI_ENV_MESSAGE TrpcMessageType = 4 + // 灰度 + TrpcMessageType_TRPC_GRID_MESSAGE TrpcMessageType = 8 + // set名 + TrpcMessageType_TRPC_SETNAME_MESSAGE TrpcMessageType = 16 +) + +// Enum value maps for TrpcMessageType. +var ( + TrpcMessageType_name = map[int32]string{ + 0: "TRPC_DEFAULT", + 1: "TRPC_DYEING_MESSAGE", + 2: "TRPC_TRACE_MESSAGE", + 4: "TRPC_MULTI_ENV_MESSAGE", + 8: "TRPC_GRID_MESSAGE", + 16: "TRPC_SETNAME_MESSAGE", + } + TrpcMessageType_value = map[string]int32{ + "TRPC_DEFAULT": 0, + "TRPC_DYEING_MESSAGE": 1, + "TRPC_TRACE_MESSAGE": 2, + "TRPC_MULTI_ENV_MESSAGE": 4, + "TRPC_GRID_MESSAGE": 8, + "TRPC_SETNAME_MESSAGE": 16, + } +) + +func (x TrpcMessageType) Enum() *TrpcMessageType { + p := new(TrpcMessageType) + *p = x + return p +} + +func (x TrpcMessageType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcMessageType) Descriptor() protoreflect.EnumDescriptor { + return file_trpcv2_trpc_proto_enumTypes[6].Descriptor() +} + +func (TrpcMessageType) Type() protoreflect.EnumType { + return &file_trpcv2_trpc_proto_enumTypes[6] +} + +func (x TrpcMessageType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcMessageType.Descriptor instead. +func (TrpcMessageType) EnumDescriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{6} +} + +// trpc协议中 data 内容的编码类型 +// 默认使用pb +// 目前约定 0-127 范围的取值为框架规范的序列化方式,框架使用 +type TrpcContentEncodeType int32 + +const ( + // pb + TrpcContentEncodeType_TRPC_PROTO_ENCODE TrpcContentEncodeType = 0 + // jce + TrpcContentEncodeType_TRPC_JCE_ENCODE TrpcContentEncodeType = 1 + // json + TrpcContentEncodeType_TRPC_JSON_ENCODE TrpcContentEncodeType = 2 + // flatbuffer + TrpcContentEncodeType_TRPC_FLATBUFFER_ENCODE TrpcContentEncodeType = 3 + // 不序列化 + TrpcContentEncodeType_TRPC_NOOP_ENCODE TrpcContentEncodeType = 4 + // xml + TrpcContentEncodeType_TRPC_XML_ENCODE TrpcContentEncodeType = 5 + // thrift + TrpcContentEncodeType_TRPC_THRIFT_ENCODE TrpcContentEncodeType = 6 +) + +// Enum value maps for TrpcContentEncodeType. +var ( + TrpcContentEncodeType_name = map[int32]string{ + 0: "TRPC_PROTO_ENCODE", + 1: "TRPC_JCE_ENCODE", + 2: "TRPC_JSON_ENCODE", + 3: "TRPC_FLATBUFFER_ENCODE", + 4: "TRPC_NOOP_ENCODE", + 5: "TRPC_XML_ENCODE", + 6: "TRPC_THRIFT_ENCODE", + } + TrpcContentEncodeType_value = map[string]int32{ + "TRPC_PROTO_ENCODE": 0, + "TRPC_JCE_ENCODE": 1, + "TRPC_JSON_ENCODE": 2, + "TRPC_FLATBUFFER_ENCODE": 3, + "TRPC_NOOP_ENCODE": 4, + "TRPC_XML_ENCODE": 5, + "TRPC_THRIFT_ENCODE": 6, + } +) + +func (x TrpcContentEncodeType) Enum() *TrpcContentEncodeType { + p := new(TrpcContentEncodeType) + *p = x + return p +} + +func (x TrpcContentEncodeType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcContentEncodeType) Descriptor() protoreflect.EnumDescriptor { + return file_trpcv2_trpc_proto_enumTypes[7].Descriptor() +} + +func (TrpcContentEncodeType) Type() protoreflect.EnumType { + return &file_trpcv2_trpc_proto_enumTypes[7] +} + +func (x TrpcContentEncodeType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcContentEncodeType.Descriptor instead. +func (TrpcContentEncodeType) EnumDescriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{7} +} + +// trpc协议中 data 内容的压缩类型 +// 默认使用不压缩 +type TrpcCompressType int32 + +const ( + // 默认不使用压缩 + TrpcCompressType_TRPC_DEFAULT_COMPRESS TrpcCompressType = 0 + // 使用gzip + TrpcCompressType_TRPC_GZIP_COMPRESS TrpcCompressType = 1 + // 使用snappy + // + // Deprecated: 建议使用 TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, 因为现在 + // trpc-go 和 trpc-cpp 分别的使用的是 stream、block 模式,二者不兼容,跨语言调用会出错 + TrpcCompressType_TRPC_SNAPPY_COMPRESS TrpcCompressType = 2 + // 使用zlib + TrpcCompressType_TRPC_ZLIB_COMPRESS TrpcCompressType = 3 + // 使用 stream 模式的 snappy + TrpcCompressType_TRPC_SNAPPY_STREAM_COMPRESS TrpcCompressType = 4 + // 使用 block 模式的 snappy + TrpcCompressType_TRPC_SNAPPY_BLOCK_COMPRESS TrpcCompressType = 5 +) + +// Enum value maps for TrpcCompressType. +var ( + TrpcCompressType_name = map[int32]string{ + 0: "TRPC_DEFAULT_COMPRESS", + 1: "TRPC_GZIP_COMPRESS", + 2: "TRPC_SNAPPY_COMPRESS", + 3: "TRPC_ZLIB_COMPRESS", + 4: "TRPC_SNAPPY_STREAM_COMPRESS", + 5: "TRPC_SNAPPY_BLOCK_COMPRESS", + } + TrpcCompressType_value = map[string]int32{ + "TRPC_DEFAULT_COMPRESS": 0, + "TRPC_GZIP_COMPRESS": 1, + "TRPC_SNAPPY_COMPRESS": 2, + "TRPC_ZLIB_COMPRESS": 3, + "TRPC_SNAPPY_STREAM_COMPRESS": 4, + "TRPC_SNAPPY_BLOCK_COMPRESS": 5, + } +) + +func (x TrpcCompressType) Enum() *TrpcCompressType { + p := new(TrpcCompressType) + *p = x + return p +} + +func (x TrpcCompressType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcCompressType) Descriptor() protoreflect.EnumDescriptor { + return file_trpcv2_trpc_proto_enumTypes[8].Descriptor() +} + +func (TrpcCompressType) Type() protoreflect.EnumType { + return &file_trpcv2_trpc_proto_enumTypes[8] +} + +func (x TrpcCompressType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcCompressType.Descriptor instead. +func (TrpcCompressType) EnumDescriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{8} +} + +// 框架层接口调用的返回码定义 +type TrpcRetCode int32 + +const ( + // 调用成功 + TrpcRetCode_TRPC_INVOKE_SUCCESS TrpcRetCode = 0 + // 协议错误码 + // 服务端解码错误 + TrpcRetCode_TRPC_SERVER_DECODE_ERR TrpcRetCode = 1 + // 服务端编码错误 + TrpcRetCode_TRPC_SERVER_ENCODE_ERR TrpcRetCode = 2 + // service或者func路由错误码 + // 服务端没有调用相应的service实现 + TrpcRetCode_TRPC_SERVER_NOSERVICE_ERR TrpcRetCode = 11 + // 服务端没有调用相应的接口实现 + TrpcRetCode_TRPC_SERVER_NOFUNC_ERR TrpcRetCode = 12 + // 超时/过载/限流错误码 + // 请求在服务端超时 + TrpcRetCode_TRPC_SERVER_TIMEOUT_ERR TrpcRetCode = 21 + // 请求在服务端被过载保护而丢弃请求 + // 主要用在框架内部实现的过载保护插件上 + TrpcRetCode_TRPC_SERVER_OVERLOAD_ERR TrpcRetCode = 22 + // 请求在服务端被限流 + // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + TrpcRetCode_TRPC_SERVER_LIMITED_ERR TrpcRetCode = 23 + // 请求在服务端因全链路超时时间而超时 + TrpcRetCode_TRPC_SERVER_FULL_LINK_TIMEOUT_ERR TrpcRetCode = 24 + // 服务端系统错误 + TrpcRetCode_TRPC_SERVER_SYSTEM_ERR TrpcRetCode = 31 + // 服务端鉴权失败错误 + TrpcRetCode_TRPC_SERVER_AUTH_ERR TrpcRetCode = 41 + // 服务端请求参数自动校验失败错误 + TrpcRetCode_TRPC_SERVER_VALIDATE_ERR TrpcRetCode = 51 + // 超时错误码 + // 请求在客户端调用超时 + TrpcRetCode_TRPC_CLIENT_INVOKE_TIMEOUT_ERR TrpcRetCode = 101 + // 请求在客户端因全链路超时时间而超时 + TrpcRetCode_TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR TrpcRetCode = 102 + // 网络相关错误码 + // 客户端连接错误 + TrpcRetCode_TRPC_CLIENT_CONNECT_ERR TrpcRetCode = 111 + // 协议相关错误码 + // 客户端编码错误 + TrpcRetCode_TRPC_CLIENT_ENCODE_ERR TrpcRetCode = 121 + // 客户端解码错误 + TrpcRetCode_TRPC_CLIENT_DECODE_ERR TrpcRetCode = 122 + // 过载保护/限流相关错误码 + // 请求在客户端被限流 + // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + TrpcRetCode_TRPC_CLIENT_LIMITED_ERR TrpcRetCode = 123 + // 请求在客户端被过载保护而丢弃请求 + // 主要用在框架内部实现的过载保护插件上 + TrpcRetCode_TRPC_CLIENT_OVERLOAD_ERR TrpcRetCode = 124 + // 路由相关错误码 + // 客户端选ip路由错误 + TrpcRetCode_TRPC_CLIENT_ROUTER_ERR TrpcRetCode = 131 + // 客户端网络错误 + TrpcRetCode_TRPC_CLIENT_NETWORK_ERR TrpcRetCode = 141 + // 客户端响应参数自动校验失败错误 + TrpcRetCode_TRPC_CLIENT_VALIDATE_ERR TrpcRetCode = 151 + // 上游主动断开连接,提前取消请求错误 + TrpcRetCode_TRPC_CLIENT_CANCELED_ERR TrpcRetCode = 161 + // 服务端流式网络错误, 详细错误码需要在实现过程中再梳理 + TrpcRetCode_TRPC_STREAM_SERVER_NETWORK_ERR TrpcRetCode = 201 + // 服务端流式传输错误, 详细错误码需要在实现过程中再梳理 + // 比如:流消息过大等 + TrpcRetCode_TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR TrpcRetCode = 211 + // 服务端流式编码错误 + TrpcRetCode_TRPC_STREAM_SERVER_ENCODE_ERR TrpcRetCode = 221 + // 客户端流式编解码错误 + TrpcRetCode_TRPC_STREAM_SERVER_DECODE_ERR TrpcRetCode = 222 + // 服务端流式写错误, 详细错误码需要在实现过程中再梳理 + TrpcRetCode_TRPC_STREAM_SERVER_WRITE_END TrpcRetCode = 231 + TrpcRetCode_TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR TrpcRetCode = 232 + TrpcRetCode_TRPC_STREAM_SERVER_WRITE_CLOSE_ERR TrpcRetCode = 233 + TrpcRetCode_TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR TrpcRetCode = 234 + // 服务端流式读错误, 详细错误码需要在实现过程中再梳理 + TrpcRetCode_TRPC_STREAM_SERVER_READ_END TrpcRetCode = 251 + TrpcRetCode_TRPC_STREAM_SERVER_READ_CLOSE_ERR TrpcRetCode = 252 + TrpcRetCode_TRPC_STREAM_SERVER_READ_EMPTY_ERR TrpcRetCode = 253 + TrpcRetCode_TRPC_STREAM_SERVER_READ_TIMEOUT_ERR TrpcRetCode = 254 + // 客户端流式网络错误, 详细错误码需要在实现过程中再梳理 + TrpcRetCode_TRPC_STREAM_CLIENT_NETWORK_ERR TrpcRetCode = 301 + // 客户端流式传输错误, 详细错误码需要在实现过程中再梳理 + // 比如:流消息过大等 + TrpcRetCode_TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR TrpcRetCode = 311 + // 客户端流式编码错误 + TrpcRetCode_TRPC_STREAM_CLIENT_ENCODE_ERR TrpcRetCode = 321 + // 客户端流式编解码错误 + TrpcRetCode_TRPC_STREAM_CLIENT_DECODE_ERR TrpcRetCode = 322 + // 客户端流式写错误, 详细错误码需要在实现过程中再梳理 + TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_END TrpcRetCode = 331 + TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR TrpcRetCode = 332 + TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR TrpcRetCode = 333 + TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR TrpcRetCode = 334 + // 客户端流式读错误, 详细错误码需要在实现过程中再梳理 + TrpcRetCode_TRPC_STREAM_CLIENT_READ_END TrpcRetCode = 351 + TrpcRetCode_TRPC_STREAM_CLIENT_READ_CLOSE_ERR TrpcRetCode = 352 + TrpcRetCode_TRPC_STREAM_CLIENT_READ_EMPTY_ERR TrpcRetCode = 353 + TrpcRetCode_TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR TrpcRetCode = 354 + // 未明确的错误 + TrpcRetCode_TRPC_INVOKE_UNKNOWN_ERR TrpcRetCode = 999 + // 未明确的错误 + TrpcRetCode_TRPC_STREAM_UNKNOWN_ERR TrpcRetCode = 1000 +) + +// Enum value maps for TrpcRetCode. +var ( + TrpcRetCode_name = map[int32]string{ + 0: "TRPC_INVOKE_SUCCESS", + 1: "TRPC_SERVER_DECODE_ERR", + 2: "TRPC_SERVER_ENCODE_ERR", + 11: "TRPC_SERVER_NOSERVICE_ERR", + 12: "TRPC_SERVER_NOFUNC_ERR", + 21: "TRPC_SERVER_TIMEOUT_ERR", + 22: "TRPC_SERVER_OVERLOAD_ERR", + 23: "TRPC_SERVER_LIMITED_ERR", + 24: "TRPC_SERVER_FULL_LINK_TIMEOUT_ERR", + 31: "TRPC_SERVER_SYSTEM_ERR", + 41: "TRPC_SERVER_AUTH_ERR", + 51: "TRPC_SERVER_VALIDATE_ERR", + 101: "TRPC_CLIENT_INVOKE_TIMEOUT_ERR", + 102: "TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR", + 111: "TRPC_CLIENT_CONNECT_ERR", + 121: "TRPC_CLIENT_ENCODE_ERR", + 122: "TRPC_CLIENT_DECODE_ERR", + 123: "TRPC_CLIENT_LIMITED_ERR", + 124: "TRPC_CLIENT_OVERLOAD_ERR", + 131: "TRPC_CLIENT_ROUTER_ERR", + 141: "TRPC_CLIENT_NETWORK_ERR", + 151: "TRPC_CLIENT_VALIDATE_ERR", + 161: "TRPC_CLIENT_CANCELED_ERR", + 201: "TRPC_STREAM_SERVER_NETWORK_ERR", + 211: "TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR", + 221: "TRPC_STREAM_SERVER_ENCODE_ERR", + 222: "TRPC_STREAM_SERVER_DECODE_ERR", + 231: "TRPC_STREAM_SERVER_WRITE_END", + 232: "TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR", + 233: "TRPC_STREAM_SERVER_WRITE_CLOSE_ERR", + 234: "TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR", + 251: "TRPC_STREAM_SERVER_READ_END", + 252: "TRPC_STREAM_SERVER_READ_CLOSE_ERR", + 253: "TRPC_STREAM_SERVER_READ_EMPTY_ERR", + 254: "TRPC_STREAM_SERVER_READ_TIMEOUT_ERR", + 301: "TRPC_STREAM_CLIENT_NETWORK_ERR", + 311: "TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR", + 321: "TRPC_STREAM_CLIENT_ENCODE_ERR", + 322: "TRPC_STREAM_CLIENT_DECODE_ERR", + 331: "TRPC_STREAM_CLIENT_WRITE_END", + 332: "TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR", + 333: "TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR", + 334: "TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR", + 351: "TRPC_STREAM_CLIENT_READ_END", + 352: "TRPC_STREAM_CLIENT_READ_CLOSE_ERR", + 353: "TRPC_STREAM_CLIENT_READ_EMPTY_ERR", + 354: "TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR", + 999: "TRPC_INVOKE_UNKNOWN_ERR", + 1000: "TRPC_STREAM_UNKNOWN_ERR", + } + TrpcRetCode_value = map[string]int32{ + "TRPC_INVOKE_SUCCESS": 0, + "TRPC_SERVER_DECODE_ERR": 1, + "TRPC_SERVER_ENCODE_ERR": 2, + "TRPC_SERVER_NOSERVICE_ERR": 11, + "TRPC_SERVER_NOFUNC_ERR": 12, + "TRPC_SERVER_TIMEOUT_ERR": 21, + "TRPC_SERVER_OVERLOAD_ERR": 22, + "TRPC_SERVER_LIMITED_ERR": 23, + "TRPC_SERVER_FULL_LINK_TIMEOUT_ERR": 24, + "TRPC_SERVER_SYSTEM_ERR": 31, + "TRPC_SERVER_AUTH_ERR": 41, + "TRPC_SERVER_VALIDATE_ERR": 51, + "TRPC_CLIENT_INVOKE_TIMEOUT_ERR": 101, + "TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR": 102, + "TRPC_CLIENT_CONNECT_ERR": 111, + "TRPC_CLIENT_ENCODE_ERR": 121, + "TRPC_CLIENT_DECODE_ERR": 122, + "TRPC_CLIENT_LIMITED_ERR": 123, + "TRPC_CLIENT_OVERLOAD_ERR": 124, + "TRPC_CLIENT_ROUTER_ERR": 131, + "TRPC_CLIENT_NETWORK_ERR": 141, + "TRPC_CLIENT_VALIDATE_ERR": 151, + "TRPC_CLIENT_CANCELED_ERR": 161, + "TRPC_STREAM_SERVER_NETWORK_ERR": 201, + "TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR": 211, + "TRPC_STREAM_SERVER_ENCODE_ERR": 221, + "TRPC_STREAM_SERVER_DECODE_ERR": 222, + "TRPC_STREAM_SERVER_WRITE_END": 231, + "TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR": 232, + "TRPC_STREAM_SERVER_WRITE_CLOSE_ERR": 233, + "TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR": 234, + "TRPC_STREAM_SERVER_READ_END": 251, + "TRPC_STREAM_SERVER_READ_CLOSE_ERR": 252, + "TRPC_STREAM_SERVER_READ_EMPTY_ERR": 253, + "TRPC_STREAM_SERVER_READ_TIMEOUT_ERR": 254, + "TRPC_STREAM_CLIENT_NETWORK_ERR": 301, + "TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR": 311, + "TRPC_STREAM_CLIENT_ENCODE_ERR": 321, + "TRPC_STREAM_CLIENT_DECODE_ERR": 322, + "TRPC_STREAM_CLIENT_WRITE_END": 331, + "TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR": 332, + "TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR": 333, + "TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR": 334, + "TRPC_STREAM_CLIENT_READ_END": 351, + "TRPC_STREAM_CLIENT_READ_CLOSE_ERR": 352, + "TRPC_STREAM_CLIENT_READ_EMPTY_ERR": 353, + "TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR": 354, + "TRPC_INVOKE_UNKNOWN_ERR": 999, + "TRPC_STREAM_UNKNOWN_ERR": 1000, + } +) + +func (x TrpcRetCode) Enum() *TrpcRetCode { + p := new(TrpcRetCode) + *p = x + return p +} + +func (x TrpcRetCode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrpcRetCode) Descriptor() protoreflect.EnumDescriptor { + return file_trpcv2_trpc_proto_enumTypes[9].Descriptor() +} + +func (TrpcRetCode) Type() protoreflect.EnumType { + return &file_trpcv2_trpc_proto_enumTypes[9] +} + +func (x TrpcRetCode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrpcRetCode.Descriptor instead. +func (TrpcRetCode) EnumDescriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{9} +} + +// trpc流式的流控帧头消息定义 +type TrpcStreamInitMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // init请求元信息 + RequestMeta *TrpcStreamInitRequestMeta `protobuf:"bytes,1,opt,name=request_meta,json=requestMeta,proto3" json:"request_meta,omitempty"` + // init响应元信息 + ResponseMeta *TrpcStreamInitResponseMeta `protobuf:"bytes,2,opt,name=response_meta,json=responseMeta,proto3" json:"response_meta,omitempty"` + // 由接收端告知发送端初始的发送窗口大小 + InitWindowSize uint32 `protobuf:"varint,3,opt,name=init_window_size,json=initWindowSize,proto3" json:"init_window_size,omitempty"` + // 请求数据的序列化类型 + // 比如: proto/jce/json, 默认proto + // 具体值与TrpcContentEncodeType对应 + ContentType uint32 `protobuf:"varint,4,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` + // 请求数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + // 具体值与TrpcCompressType对应 + ContentEncoding uint32 `protobuf:"varint,5,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` +} + +func (x *TrpcStreamInitMeta) Reset() { + *x = TrpcStreamInitMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_trpc_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamInitMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamInitMeta) ProtoMessage() {} + +func (x *TrpcStreamInitMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_trpc_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamInitMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamInitMeta) Descriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{0} +} + +func (x *TrpcStreamInitMeta) GetRequestMeta() *TrpcStreamInitRequestMeta { + if x != nil { + return x.RequestMeta + } + return nil +} + +func (x *TrpcStreamInitMeta) GetResponseMeta() *TrpcStreamInitResponseMeta { + if x != nil { + return x.ResponseMeta + } + return nil +} + +func (x *TrpcStreamInitMeta) GetInitWindowSize() uint32 { + if x != nil { + return x.InitWindowSize + } + return 0 +} + +func (x *TrpcStreamInitMeta) GetContentType() uint32 { + if x != nil { + return x.ContentType + } + return 0 +} + +func (x *TrpcStreamInitMeta) GetContentEncoding() uint32 { + if x != nil { + return x.ContentEncoding + } + return 0 +} + +// trpc流式init头的请求元信息 +type TrpcStreamInitRequestMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 主调服务的名称 + // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + Caller []byte `protobuf:"bytes,1,opt,name=caller,proto3" json:"caller,omitempty"` + // 被调服务的路由名称 + // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] + // 前4段是必须有,接口可选。 + Callee []byte `protobuf:"bytes,2,opt,name=callee,proto3" json:"callee,omitempty"` + // 调用服务的接口名 + // 规范格式: /package.Service名称/接口名 + Func []byte `protobuf:"bytes,3,opt,name=func,proto3" json:"func,omitempty"` + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + MessageType uint32 `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc-开头 + // 2是业务层要透传的信息,业务可以自行设置 + // 注意: trans_info中的key-value对会全链路透传,业务请谨慎使用! + TransInfo map[string][]byte `protobuf:"bytes,5,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *TrpcStreamInitRequestMeta) Reset() { + *x = TrpcStreamInitRequestMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_trpc_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamInitRequestMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamInitRequestMeta) ProtoMessage() {} + +func (x *TrpcStreamInitRequestMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_trpc_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamInitRequestMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamInitRequestMeta) Descriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{1} +} + +func (x *TrpcStreamInitRequestMeta) GetCaller() []byte { + if x != nil { + return x.Caller + } + return nil +} + +func (x *TrpcStreamInitRequestMeta) GetCallee() []byte { + if x != nil { + return x.Callee + } + return nil +} + +func (x *TrpcStreamInitRequestMeta) GetFunc() []byte { + if x != nil { + return x.Func + } + return nil +} + +func (x *TrpcStreamInitRequestMeta) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *TrpcStreamInitRequestMeta) GetTransInfo() map[string][]byte { + if x != nil { + return x.TransInfo + } + return nil +} + +// trpc流式init头的响应元信息 +type TrpcStreamInitResponseMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 请求在框架层的错误返回码 + // 具体值与TrpcRetCode对应 + Ret int32 `protobuf:"varint,1,opt,name=ret,proto3" json:"ret,omitempty"` + // 调用结果信息描述 + // 失败的时候用 + ErrorMsg []byte `protobuf:"bytes,2,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` +} + +func (x *TrpcStreamInitResponseMeta) Reset() { + *x = TrpcStreamInitResponseMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_trpc_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamInitResponseMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamInitResponseMeta) ProtoMessage() {} + +func (x *TrpcStreamInitResponseMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_trpc_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamInitResponseMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamInitResponseMeta) Descriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{2} +} + +func (x *TrpcStreamInitResponseMeta) GetRet() int32 { + if x != nil { + return x.Ret + } + return 0 +} + +func (x *TrpcStreamInitResponseMeta) GetErrorMsg() []byte { + if x != nil { + return x.ErrorMsg + } + return nil +} + +// trpc流式的流控帧头元信息定义 +type TrpcStreamFeedBackMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 增加的窗口大小 + WindowSizeIncrement uint32 `protobuf:"varint,1,opt,name=window_size_increment,json=windowSizeIncrement,proto3" json:"window_size_increment,omitempty"` +} + +func (x *TrpcStreamFeedBackMeta) Reset() { + *x = TrpcStreamFeedBackMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_trpc_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamFeedBackMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamFeedBackMeta) ProtoMessage() {} + +func (x *TrpcStreamFeedBackMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_trpc_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamFeedBackMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamFeedBackMeta) Descriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{3} +} + +func (x *TrpcStreamFeedBackMeta) GetWindowSizeIncrement() uint32 { + if x != nil { + return x.WindowSizeIncrement + } + return 0 +} + +// trpc流式的RESET帧头消息定义 +type TrpcStreamCloseMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 关闭的类型,关闭一端,还是全部关闭 + CloseType int32 `protobuf:"varint,1,opt,name=close_type,json=closeType,proto3" json:"close_type,omitempty"` + // close返回码 + // 代表框架层的错误 + Ret int32 `protobuf:"varint,2,opt,name=ret,proto3" json:"ret,omitempty"` + // close信息描述 + Msg []byte `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + MessageType uint32 `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc-开头 + // 2是业务层要透传的信息,业务可以自行设置 + TransInfo map[string][]byte `protobuf:"bytes,5,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // 接口的错误返回码 + // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + FuncRet int32 `protobuf:"varint,6,opt,name=func_ret,json=funcRet,proto3" json:"func_ret,omitempty"` +} + +func (x *TrpcStreamCloseMeta) Reset() { + *x = TrpcStreamCloseMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_trpc_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrpcStreamCloseMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrpcStreamCloseMeta) ProtoMessage() {} + +func (x *TrpcStreamCloseMeta) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_trpc_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrpcStreamCloseMeta.ProtoReflect.Descriptor instead. +func (*TrpcStreamCloseMeta) Descriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{4} +} + +func (x *TrpcStreamCloseMeta) GetCloseType() int32 { + if x != nil { + return x.CloseType + } + return 0 +} + +func (x *TrpcStreamCloseMeta) GetRet() int32 { + if x != nil { + return x.Ret + } + return 0 +} + +func (x *TrpcStreamCloseMeta) GetMsg() []byte { + if x != nil { + return x.Msg + } + return nil +} + +func (x *TrpcStreamCloseMeta) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *TrpcStreamCloseMeta) GetTransInfo() map[string][]byte { + if x != nil { + return x.TransInfo + } + return nil +} + +func (x *TrpcStreamCloseMeta) GetFuncRet() int32 { + if x != nil { + return x.FuncRet + } + return 0 +} + +// 请求协议头 +type RequestProtocol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 协议版本 + // 具体值与TrpcProtoVersion对应 + Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + // 请求的调用类型 + // 比如: 普通调用,单向调用 + // 具体值与TrpcCallType对应 + CallType uint32 `protobuf:"varint,2,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` + // 请求唯一id + RequestId uint32 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // 请求的超时时间,单位ms + Timeout uint32 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"` + // 主调服务的名称 + // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + Caller []byte `protobuf:"bytes,5,opt,name=caller,proto3" json:"caller,omitempty"` + // 被调服务的路由名称 + // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] + // 前4段是必须有,接口可选。 + Callee []byte `protobuf:"bytes,6,opt,name=callee,proto3" json:"callee,omitempty"` + // 调用服务的接口名 + // 规范格式: /package.Service名称/接口名 + Func []byte `protobuf:"bytes,7,opt,name=func,proto3" json:"func,omitempty"` + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + MessageType uint32 `protobuf:"varint,8,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc-开头 + // 2是业务层要透传的信息,业务可以自行设置 + TransInfo map[string][]byte `protobuf:"bytes,9,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // 请求数据的序列化类型 + // 比如: proto/jce/json, 默认proto + // 具体值与TrpcContentEncodeType对应 + ContentType uint32 `protobuf:"varint,10,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` + // 请求数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + // 具体值与TrpcCompressType对应 + ContentEncoding uint32 `protobuf:"varint,11,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` +} + +func (x *RequestProtocol) Reset() { + *x = RequestProtocol{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_trpc_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RequestProtocol) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequestProtocol) ProtoMessage() {} + +func (x *RequestProtocol) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_trpc_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequestProtocol.ProtoReflect.Descriptor instead. +func (*RequestProtocol) Descriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{5} +} + +func (x *RequestProtocol) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *RequestProtocol) GetCallType() uint32 { + if x != nil { + return x.CallType + } + return 0 +} + +func (x *RequestProtocol) GetRequestId() uint32 { + if x != nil { + return x.RequestId + } + return 0 +} + +func (x *RequestProtocol) GetTimeout() uint32 { + if x != nil { + return x.Timeout + } + return 0 +} + +func (x *RequestProtocol) GetCaller() []byte { + if x != nil { + return x.Caller + } + return nil +} + +func (x *RequestProtocol) GetCallee() []byte { + if x != nil { + return x.Callee + } + return nil +} + +func (x *RequestProtocol) GetFunc() []byte { + if x != nil { + return x.Func + } + return nil +} + +func (x *RequestProtocol) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *RequestProtocol) GetTransInfo() map[string][]byte { + if x != nil { + return x.TransInfo + } + return nil +} + +func (x *RequestProtocol) GetContentType() uint32 { + if x != nil { + return x.ContentType + } + return 0 +} + +func (x *RequestProtocol) GetContentEncoding() uint32 { + if x != nil { + return x.ContentEncoding + } + return 0 +} + +// 响应协议头 +type ResponseProtocol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 协议版本 + // 具体值与TrpcProtoVersion对应 + Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + // 请求的调用类型 + // 比如: 普通调用,单向调用 + // 具体值与TrpcCallType对应 + CallType uint32 `protobuf:"varint,2,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` + // 请求唯一id + RequestId uint32 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // 请求在框架层的错误返回码 + // 具体值与TrpcRetCode对应 + Ret int32 `protobuf:"varint,4,opt,name=ret,proto3" json:"ret,omitempty"` + // 接口的错误返回码 + // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + FuncRet int32 `protobuf:"varint,5,opt,name=func_ret,json=funcRet,proto3" json:"func_ret,omitempty"` + // 调用结果信息描述 + // 失败的时候用 + ErrorMsg []byte `protobuf:"bytes,6,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + MessageType uint32 `protobuf:"varint,7,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // 框架透传回来的信息key-value对, + // 目前分两部分 + // 1是框架层透传回来的信息,key的名字要以trpc-开头 + // 2是业务层透传回来的信息,业务可以自行设置 + TransInfo map[string][]byte `protobuf:"bytes,8,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // 响应数据的编码类型 + // 比如: proto/jce/json, 默认proto + // 具体值与TrpcContentEncodeType对应 + ContentType uint32 `protobuf:"varint,9,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` + // 响应数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + // 具体值与TrpcCompressType对应 + ContentEncoding uint32 `protobuf:"varint,10,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` +} + +func (x *ResponseProtocol) Reset() { + *x = ResponseProtocol{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_trpc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResponseProtocol) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseProtocol) ProtoMessage() {} + +func (x *ResponseProtocol) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_trpc_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResponseProtocol.ProtoReflect.Descriptor instead. +func (*ResponseProtocol) Descriptor() ([]byte, []int) { + return file_trpcv2_trpc_proto_rawDescGZIP(), []int{6} +} + +func (x *ResponseProtocol) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *ResponseProtocol) GetCallType() uint32 { + if x != nil { + return x.CallType + } + return 0 +} + +func (x *ResponseProtocol) GetRequestId() uint32 { + if x != nil { + return x.RequestId + } + return 0 +} + +func (x *ResponseProtocol) GetRet() int32 { + if x != nil { + return x.Ret + } + return 0 +} + +func (x *ResponseProtocol) GetFuncRet() int32 { + if x != nil { + return x.FuncRet + } + return 0 +} + +func (x *ResponseProtocol) GetErrorMsg() []byte { + if x != nil { + return x.ErrorMsg + } + return nil +} + +func (x *ResponseProtocol) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *ResponseProtocol) GetTransInfo() map[string][]byte { + if x != nil { + return x.TransInfo + } + return nil +} + +func (x *ResponseProtocol) GetContentType() uint32 { + if x != nil { + return x.ContentType + } + return 0 +} + +func (x *ResponseProtocol) GetContentEncoding() uint32 { + if x != nil { + return x.ContentEncoding + } + return 0 +} + +var File_trpcv2_trpc_proto protoreflect.FileDescriptor + +var file_trpcv2_trpc_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x22, 0x9b, 0x02, 0x0a, 0x12, + 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x12, 0x44, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, + 0x32, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0b, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x6e, 0x69, + 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, + 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, + 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x02, 0x0a, 0x19, 0x54, 0x72, + 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, + 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, + 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x70, 0x63, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, + 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, + 0x1a, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x72, + 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x0a, + 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x4c, 0x0a, 0x16, 0x54, 0x72, + 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, + 0x4d, 0x65, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x15, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x13, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x02, 0x0a, 0x13, 0x54, 0x72, 0x70, + 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, + 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x74, 0x1a, 0x3c, 0x0a, 0x0e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbb, 0x03, 0x0a, 0x0f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, + 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x75, + 0x6e, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x72, 0x70, 0x63, + 0x76, 0x32, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, + 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa9, 0x03, 0x0a, 0x10, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x72, 0x65, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x21, 0x0a, + 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x46, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, + 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x39, 0x0a, 0x09, 0x54, 0x72, 0x70, 0x63, 0x4d, 0x61, 0x67, 0x69, + 0x63, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, + 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0xb0, 0x12, 0x2a, + 0x40, 0x0a, 0x11, 0x54, 0x72, 0x70, 0x63, 0x44, 0x61, 0x74, 0x61, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, + 0x52, 0x59, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, + 0x01, 0x2a, 0x9a, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x49, + 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, + 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x46, 0x45, 0x45, 0x44, 0x42, 0x41, 0x43, 0x4b, 0x10, + 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x04, 0x2a, 0x43, + 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x53, 0x45, + 0x54, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x56, 0x31, 0x10, 0x00, 0x2a, 0x39, 0x0a, 0x0c, 0x54, 0x72, + 0x70, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, + 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4f, 0x4e, 0x45, 0x57, 0x41, 0x59, 0x5f, 0x43, + 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x2a, 0xa1, 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x70, 0x63, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x44, 0x59, 0x45, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x45, 0x4e, 0x56, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x47, 0x52, 0x49, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x08, 0x12, + 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x54, 0x4e, 0x41, 0x4d, 0x45, 0x5f, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x2a, 0xb8, 0x01, 0x0a, 0x15, 0x54, 0x72, + 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, + 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x4a, 0x43, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, + 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x43, + 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x46, 0x4c, + 0x41, 0x54, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, + 0x03, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4e, 0x4f, 0x4f, 0x50, 0x5f, 0x45, + 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x10, 0x06, 0x2a, 0xb8, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, + 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x5a, 0x49, + 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, + 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x5a, + 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x1f, + 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, + 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x2a, + 0xb0, 0x0d, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, + 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, + 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, + 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, + 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, + 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, + 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, + 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, + 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, + 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, + 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, + 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, + 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xa1, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, + 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, + 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, + 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, + 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, + 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, + 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, + 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, + 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, + 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfe, 0x01, 0x12, 0x23, 0x0a, 0x1e, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xad, + 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, + 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xb7, 0x02, 0x12, + 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, + 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, + 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcd, 0x02, 0x12, + 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, + 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xdf, 0x02, 0x12, 0x26, 0x0a, 0x21, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, + 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe1, 0x02, 0x12, 0x28, 0x0a, 0x23, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, + 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xe8, 0x07, 0x42, 0x68, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, + 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0c, 0x54, 0x52, + 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x2e, + 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, + 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, + 0x2f, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x3b, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpcv2_trpc_proto_rawDescOnce sync.Once + file_trpcv2_trpc_proto_rawDescData = file_trpcv2_trpc_proto_rawDesc +) + +func file_trpcv2_trpc_proto_rawDescGZIP() []byte { + file_trpcv2_trpc_proto_rawDescOnce.Do(func() { + file_trpcv2_trpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpcv2_trpc_proto_rawDescData) + }) + return file_trpcv2_trpc_proto_rawDescData +} + +var file_trpcv2_trpc_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_trpcv2_trpc_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_trpcv2_trpc_proto_goTypes = []interface{}{ + (TrpcMagic)(0), // 0: trpcv2.TrpcMagic + (TrpcDataFrameType)(0), // 1: trpcv2.TrpcDataFrameType + (TrpcStreamFrameType)(0), // 2: trpcv2.TrpcStreamFrameType + (TrpcStreamCloseType)(0), // 3: trpcv2.TrpcStreamCloseType + (TrpcProtoVersion)(0), // 4: trpcv2.TrpcProtoVersion + (TrpcCallType)(0), // 5: trpcv2.TrpcCallType + (TrpcMessageType)(0), // 6: trpcv2.TrpcMessageType + (TrpcContentEncodeType)(0), // 7: trpcv2.TrpcContentEncodeType + (TrpcCompressType)(0), // 8: trpcv2.TrpcCompressType + (TrpcRetCode)(0), // 9: trpcv2.TrpcRetCode + (*TrpcStreamInitMeta)(nil), // 10: trpcv2.TrpcStreamInitMeta + (*TrpcStreamInitRequestMeta)(nil), // 11: trpcv2.TrpcStreamInitRequestMeta + (*TrpcStreamInitResponseMeta)(nil), // 12: trpcv2.TrpcStreamInitResponseMeta + (*TrpcStreamFeedBackMeta)(nil), // 13: trpcv2.TrpcStreamFeedBackMeta + (*TrpcStreamCloseMeta)(nil), // 14: trpcv2.TrpcStreamCloseMeta + (*RequestProtocol)(nil), // 15: trpcv2.RequestProtocol + (*ResponseProtocol)(nil), // 16: trpcv2.ResponseProtocol + nil, // 17: trpcv2.TrpcStreamInitRequestMeta.TransInfoEntry + nil, // 18: trpcv2.TrpcStreamCloseMeta.TransInfoEntry + nil, // 19: trpcv2.RequestProtocol.TransInfoEntry + nil, // 20: trpcv2.ResponseProtocol.TransInfoEntry +} +var file_trpcv2_trpc_proto_depIdxs = []int32{ + 11, // 0: trpcv2.TrpcStreamInitMeta.request_meta:type_name -> trpcv2.TrpcStreamInitRequestMeta + 12, // 1: trpcv2.TrpcStreamInitMeta.response_meta:type_name -> trpcv2.TrpcStreamInitResponseMeta + 17, // 2: trpcv2.TrpcStreamInitRequestMeta.trans_info:type_name -> trpcv2.TrpcStreamInitRequestMeta.TransInfoEntry + 18, // 3: trpcv2.TrpcStreamCloseMeta.trans_info:type_name -> trpcv2.TrpcStreamCloseMeta.TransInfoEntry + 19, // 4: trpcv2.RequestProtocol.trans_info:type_name -> trpcv2.RequestProtocol.TransInfoEntry + 20, // 5: trpcv2.ResponseProtocol.trans_info:type_name -> trpcv2.ResponseProtocol.TransInfoEntry + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_trpcv2_trpc_proto_init() } +func file_trpcv2_trpc_proto_init() { + if File_trpcv2_trpc_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpcv2_trpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamInitMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_trpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamInitRequestMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_trpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamInitResponseMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_trpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamFeedBackMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_trpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrpcStreamCloseMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_trpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestProtocol); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_trpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResponseProtocol); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpcv2_trpc_proto_rawDesc, + NumEnums: 10, + NumMessages: 11, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_trpcv2_trpc_proto_goTypes, + DependencyIndexes: file_trpcv2_trpc_proto_depIdxs, + EnumInfos: file_trpcv2_trpc_proto_enumTypes, + MessageInfos: file_trpcv2_trpc_proto_msgTypes, + }.Build() + File_trpcv2_trpc_proto = out.File + file_trpcv2_trpc_proto_rawDesc = nil + file_trpcv2_trpc_proto_goTypes = nil + file_trpcv2_trpc_proto_depIdxs = nil +} diff --git a/pb/go/trpcv2/validate/validate.pb.go b/pb/go/trpcv2/validate/validate.pb.go new file mode 100644 index 0000000..053d523 --- /dev/null +++ b/pb/go/trpcv2/validate/validate.pb.go @@ -0,0 +1,4189 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.19.4 +// source: trpcv2/validate/validate.proto + +package validate + +import ( + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + duration "github.com/golang/protobuf/ptypes/duration" + timestamp "github.com/golang/protobuf/ptypes/timestamp" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// WellKnownRegex contain some well-known patterns. +type KnownRegex int32 + +const ( + KnownRegex_UNKNOWN KnownRegex = 0 + // HTTP header name as defined by RFC 7230. + KnownRegex_HTTP_HEADER_NAME KnownRegex = 1 + // HTTP header value as defined by RFC 7230. + KnownRegex_HTTP_HEADER_VALUE KnownRegex = 2 +) + +// Enum value maps for KnownRegex. +var ( + KnownRegex_name = map[int32]string{ + 0: "UNKNOWN", + 1: "HTTP_HEADER_NAME", + 2: "HTTP_HEADER_VALUE", + } + KnownRegex_value = map[string]int32{ + "UNKNOWN": 0, + "HTTP_HEADER_NAME": 1, + "HTTP_HEADER_VALUE": 2, + } +) + +func (x KnownRegex) Enum() *KnownRegex { + p := new(KnownRegex) + *p = x + return p +} + +func (x KnownRegex) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (KnownRegex) Descriptor() protoreflect.EnumDescriptor { + return file_trpcv2_validate_validate_proto_enumTypes[0].Descriptor() +} + +func (KnownRegex) Type() protoreflect.EnumType { + return &file_trpcv2_validate_validate_proto_enumTypes[0] +} + +func (x KnownRegex) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *KnownRegex) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = KnownRegex(num) + return nil +} + +// Deprecated: Use KnownRegex.Descriptor instead. +func (KnownRegex) EnumDescriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{0} +} + +// FieldRules encapsulates the rules for each type of field. Depending on the +// field, the correct set should be used to ensure proper validations. +type FieldRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message *MessageRules `protobuf:"bytes,17,opt,name=message" json:"message,omitempty"` + // Types that are assignable to Type: + // *FieldRules_Float + // *FieldRules_Double + // *FieldRules_Int32 + // *FieldRules_Int64 + // *FieldRules_Uint32 + // *FieldRules_Uint64 + // *FieldRules_Sint32 + // *FieldRules_Sint64 + // *FieldRules_Fixed32 + // *FieldRules_Fixed64 + // *FieldRules_Sfixed32 + // *FieldRules_Sfixed64 + // *FieldRules_Bool + // *FieldRules_String_ + // *FieldRules_Bytes + // *FieldRules_Enum + // *FieldRules_Repeated + // *FieldRules_Map + // *FieldRules_Any + // *FieldRules_Duration + // *FieldRules_Timestamp + Type isFieldRules_Type `protobuf_oneof:"type"` +} + +func (x *FieldRules) Reset() { + *x = FieldRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FieldRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FieldRules) ProtoMessage() {} + +func (x *FieldRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FieldRules.ProtoReflect.Descriptor instead. +func (*FieldRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{0} +} + +func (x *FieldRules) GetMessage() *MessageRules { + if x != nil { + return x.Message + } + return nil +} + +func (m *FieldRules) GetType() isFieldRules_Type { + if m != nil { + return m.Type + } + return nil +} + +func (x *FieldRules) GetFloat() *FloatRules { + if x, ok := x.GetType().(*FieldRules_Float); ok { + return x.Float + } + return nil +} + +func (x *FieldRules) GetDouble() *DoubleRules { + if x, ok := x.GetType().(*FieldRules_Double); ok { + return x.Double + } + return nil +} + +func (x *FieldRules) GetInt32() *Int32Rules { + if x, ok := x.GetType().(*FieldRules_Int32); ok { + return x.Int32 + } + return nil +} + +func (x *FieldRules) GetInt64() *Int64Rules { + if x, ok := x.GetType().(*FieldRules_Int64); ok { + return x.Int64 + } + return nil +} + +func (x *FieldRules) GetUint32() *UInt32Rules { + if x, ok := x.GetType().(*FieldRules_Uint32); ok { + return x.Uint32 + } + return nil +} + +func (x *FieldRules) GetUint64() *UInt64Rules { + if x, ok := x.GetType().(*FieldRules_Uint64); ok { + return x.Uint64 + } + return nil +} + +func (x *FieldRules) GetSint32() *SInt32Rules { + if x, ok := x.GetType().(*FieldRules_Sint32); ok { + return x.Sint32 + } + return nil +} + +func (x *FieldRules) GetSint64() *SInt64Rules { + if x, ok := x.GetType().(*FieldRules_Sint64); ok { + return x.Sint64 + } + return nil +} + +func (x *FieldRules) GetFixed32() *Fixed32Rules { + if x, ok := x.GetType().(*FieldRules_Fixed32); ok { + return x.Fixed32 + } + return nil +} + +func (x *FieldRules) GetFixed64() *Fixed64Rules { + if x, ok := x.GetType().(*FieldRules_Fixed64); ok { + return x.Fixed64 + } + return nil +} + +func (x *FieldRules) GetSfixed32() *SFixed32Rules { + if x, ok := x.GetType().(*FieldRules_Sfixed32); ok { + return x.Sfixed32 + } + return nil +} + +func (x *FieldRules) GetSfixed64() *SFixed64Rules { + if x, ok := x.GetType().(*FieldRules_Sfixed64); ok { + return x.Sfixed64 + } + return nil +} + +func (x *FieldRules) GetBool() *BoolRules { + if x, ok := x.GetType().(*FieldRules_Bool); ok { + return x.Bool + } + return nil +} + +func (x *FieldRules) GetString_() *StringRules { + if x, ok := x.GetType().(*FieldRules_String_); ok { + return x.String_ + } + return nil +} + +func (x *FieldRules) GetBytes() *BytesRules { + if x, ok := x.GetType().(*FieldRules_Bytes); ok { + return x.Bytes + } + return nil +} + +func (x *FieldRules) GetEnum() *EnumRules { + if x, ok := x.GetType().(*FieldRules_Enum); ok { + return x.Enum + } + return nil +} + +func (x *FieldRules) GetRepeated() *RepeatedRules { + if x, ok := x.GetType().(*FieldRules_Repeated); ok { + return x.Repeated + } + return nil +} + +func (x *FieldRules) GetMap() *MapRules { + if x, ok := x.GetType().(*FieldRules_Map); ok { + return x.Map + } + return nil +} + +func (x *FieldRules) GetAny() *AnyRules { + if x, ok := x.GetType().(*FieldRules_Any); ok { + return x.Any + } + return nil +} + +func (x *FieldRules) GetDuration() *DurationRules { + if x, ok := x.GetType().(*FieldRules_Duration); ok { + return x.Duration + } + return nil +} + +func (x *FieldRules) GetTimestamp() *TimestampRules { + if x, ok := x.GetType().(*FieldRules_Timestamp); ok { + return x.Timestamp + } + return nil +} + +type isFieldRules_Type interface { + isFieldRules_Type() +} + +type FieldRules_Float struct { + // Scalar Field Types + Float *FloatRules `protobuf:"bytes,1,opt,name=float,oneof"` +} + +type FieldRules_Double struct { + Double *DoubleRules `protobuf:"bytes,2,opt,name=double,oneof"` +} + +type FieldRules_Int32 struct { + Int32 *Int32Rules `protobuf:"bytes,3,opt,name=int32,oneof"` +} + +type FieldRules_Int64 struct { + Int64 *Int64Rules `protobuf:"bytes,4,opt,name=int64,oneof"` +} + +type FieldRules_Uint32 struct { + Uint32 *UInt32Rules `protobuf:"bytes,5,opt,name=uint32,oneof"` +} + +type FieldRules_Uint64 struct { + Uint64 *UInt64Rules `protobuf:"bytes,6,opt,name=uint64,oneof"` +} + +type FieldRules_Sint32 struct { + Sint32 *SInt32Rules `protobuf:"bytes,7,opt,name=sint32,oneof"` +} + +type FieldRules_Sint64 struct { + Sint64 *SInt64Rules `protobuf:"bytes,8,opt,name=sint64,oneof"` +} + +type FieldRules_Fixed32 struct { + Fixed32 *Fixed32Rules `protobuf:"bytes,9,opt,name=fixed32,oneof"` +} + +type FieldRules_Fixed64 struct { + Fixed64 *Fixed64Rules `protobuf:"bytes,10,opt,name=fixed64,oneof"` +} + +type FieldRules_Sfixed32 struct { + Sfixed32 *SFixed32Rules `protobuf:"bytes,11,opt,name=sfixed32,oneof"` +} + +type FieldRules_Sfixed64 struct { + Sfixed64 *SFixed64Rules `protobuf:"bytes,12,opt,name=sfixed64,oneof"` +} + +type FieldRules_Bool struct { + Bool *BoolRules `protobuf:"bytes,13,opt,name=bool,oneof"` +} + +type FieldRules_String_ struct { + String_ *StringRules `protobuf:"bytes,14,opt,name=string,oneof"` +} + +type FieldRules_Bytes struct { + Bytes *BytesRules `protobuf:"bytes,15,opt,name=bytes,oneof"` +} + +type FieldRules_Enum struct { + // Complex Field Types + Enum *EnumRules `protobuf:"bytes,16,opt,name=enum,oneof"` +} + +type FieldRules_Repeated struct { + Repeated *RepeatedRules `protobuf:"bytes,18,opt,name=repeated,oneof"` +} + +type FieldRules_Map struct { + Map *MapRules `protobuf:"bytes,19,opt,name=map,oneof"` +} + +type FieldRules_Any struct { + // Well-Known Field Types + Any *AnyRules `protobuf:"bytes,20,opt,name=any,oneof"` +} + +type FieldRules_Duration struct { + Duration *DurationRules `protobuf:"bytes,21,opt,name=duration,oneof"` +} + +type FieldRules_Timestamp struct { + Timestamp *TimestampRules `protobuf:"bytes,22,opt,name=timestamp,oneof"` +} + +func (*FieldRules_Float) isFieldRules_Type() {} + +func (*FieldRules_Double) isFieldRules_Type() {} + +func (*FieldRules_Int32) isFieldRules_Type() {} + +func (*FieldRules_Int64) isFieldRules_Type() {} + +func (*FieldRules_Uint32) isFieldRules_Type() {} + +func (*FieldRules_Uint64) isFieldRules_Type() {} + +func (*FieldRules_Sint32) isFieldRules_Type() {} + +func (*FieldRules_Sint64) isFieldRules_Type() {} + +func (*FieldRules_Fixed32) isFieldRules_Type() {} + +func (*FieldRules_Fixed64) isFieldRules_Type() {} + +func (*FieldRules_Sfixed32) isFieldRules_Type() {} + +func (*FieldRules_Sfixed64) isFieldRules_Type() {} + +func (*FieldRules_Bool) isFieldRules_Type() {} + +func (*FieldRules_String_) isFieldRules_Type() {} + +func (*FieldRules_Bytes) isFieldRules_Type() {} + +func (*FieldRules_Enum) isFieldRules_Type() {} + +func (*FieldRules_Repeated) isFieldRules_Type() {} + +func (*FieldRules_Map) isFieldRules_Type() {} + +func (*FieldRules_Any) isFieldRules_Type() {} + +func (*FieldRules_Duration) isFieldRules_Type() {} + +func (*FieldRules_Timestamp) isFieldRules_Type() {} + +// FloatRules describes the constraints applied to `float` values +type FloatRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *float32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *float32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *float32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *float32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *float32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []float32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []float32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *FloatRules) Reset() { + *x = FloatRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FloatRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FloatRules) ProtoMessage() {} + +func (x *FloatRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FloatRules.ProtoReflect.Descriptor instead. +func (*FloatRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{1} +} + +func (x *FloatRules) GetConst() float32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *FloatRules) GetLt() float32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *FloatRules) GetLte() float32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *FloatRules) GetGt() float32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *FloatRules) GetGte() float32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *FloatRules) GetIn() []float32 { + if x != nil { + return x.In + } + return nil +} + +func (x *FloatRules) GetNotIn() []float32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *FloatRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// DoubleRules describes the constraints applied to `double` values +type DoubleRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *float64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *float64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *float64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *float64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *float64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []float64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []float64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *DoubleRules) Reset() { + *x = DoubleRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DoubleRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DoubleRules) ProtoMessage() {} + +func (x *DoubleRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DoubleRules.ProtoReflect.Descriptor instead. +func (*DoubleRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{2} +} + +func (x *DoubleRules) GetConst() float64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *DoubleRules) GetLt() float64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *DoubleRules) GetLte() float64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *DoubleRules) GetGt() float64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *DoubleRules) GetGte() float64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *DoubleRules) GetIn() []float64 { + if x != nil { + return x.In + } + return nil +} + +func (x *DoubleRules) GetNotIn() []float64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *DoubleRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// Int32Rules describes the constraints applied to `int32` values +type Int32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int32 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int32 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int32 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int32 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *Int32Rules) Reset() { + *x = Int32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Int32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Int32Rules) ProtoMessage() {} + +func (x *Int32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Int32Rules.ProtoReflect.Descriptor instead. +func (*Int32Rules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{3} +} + +func (x *Int32Rules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *Int32Rules) GetLt() int32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *Int32Rules) GetLte() int32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *Int32Rules) GetGt() int32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *Int32Rules) GetGte() int32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *Int32Rules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *Int32Rules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Int32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// Int64Rules describes the constraints applied to `int64` values +type Int64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int64 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int64 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int64 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int64 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *Int64Rules) Reset() { + *x = Int64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Int64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Int64Rules) ProtoMessage() {} + +func (x *Int64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Int64Rules.ProtoReflect.Descriptor instead. +func (*Int64Rules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{4} +} + +func (x *Int64Rules) GetConst() int64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *Int64Rules) GetLt() int64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *Int64Rules) GetLte() int64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *Int64Rules) GetGt() int64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *Int64Rules) GetGte() int64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *Int64Rules) GetIn() []int64 { + if x != nil { + return x.In + } + return nil +} + +func (x *Int64Rules) GetNotIn() []int64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Int64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// UInt32Rules describes the constraints applied to `uint32` values +type UInt32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *uint32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint32 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint32 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint32 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint32 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint32 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint32 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *UInt32Rules) Reset() { + *x = UInt32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UInt32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UInt32Rules) ProtoMessage() {} + +func (x *UInt32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UInt32Rules.ProtoReflect.Descriptor instead. +func (*UInt32Rules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{5} +} + +func (x *UInt32Rules) GetConst() uint32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *UInt32Rules) GetLt() uint32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *UInt32Rules) GetLte() uint32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *UInt32Rules) GetGt() uint32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *UInt32Rules) GetGte() uint32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *UInt32Rules) GetIn() []uint32 { + if x != nil { + return x.In + } + return nil +} + +func (x *UInt32Rules) GetNotIn() []uint32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *UInt32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// UInt64Rules describes the constraints applied to `uint64` values +type UInt64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *uint64 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint64 `protobuf:"varint,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint64 `protobuf:"varint,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint64 `protobuf:"varint,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint64 `protobuf:"varint,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint64 `protobuf:"varint,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint64 `protobuf:"varint,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *UInt64Rules) Reset() { + *x = UInt64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UInt64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UInt64Rules) ProtoMessage() {} + +func (x *UInt64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UInt64Rules.ProtoReflect.Descriptor instead. +func (*UInt64Rules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{6} +} + +func (x *UInt64Rules) GetConst() uint64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *UInt64Rules) GetLt() uint64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *UInt64Rules) GetLte() uint64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *UInt64Rules) GetGt() uint64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *UInt64Rules) GetGte() uint64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *UInt64Rules) GetIn() []uint64 { + if x != nil { + return x.In + } + return nil +} + +func (x *UInt64Rules) GetNotIn() []uint64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *UInt64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// SInt32Rules describes the constraints applied to `sint32` values +type SInt32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"zigzag32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int32 `protobuf:"zigzag32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int32 `protobuf:"zigzag32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int32 `protobuf:"zigzag32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int32 `protobuf:"zigzag32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"zigzag32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"zigzag32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *SInt32Rules) Reset() { + *x = SInt32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SInt32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SInt32Rules) ProtoMessage() {} + +func (x *SInt32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SInt32Rules.ProtoReflect.Descriptor instead. +func (*SInt32Rules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{7} +} + +func (x *SInt32Rules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *SInt32Rules) GetLt() int32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *SInt32Rules) GetLte() int32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *SInt32Rules) GetGt() int32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *SInt32Rules) GetGte() int32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *SInt32Rules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *SInt32Rules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SInt32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// SInt64Rules describes the constraints applied to `sint64` values +type SInt64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int64 `protobuf:"zigzag64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int64 `protobuf:"zigzag64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int64 `protobuf:"zigzag64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int64 `protobuf:"zigzag64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int64 `protobuf:"zigzag64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int64 `protobuf:"zigzag64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int64 `protobuf:"zigzag64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *SInt64Rules) Reset() { + *x = SInt64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SInt64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SInt64Rules) ProtoMessage() {} + +func (x *SInt64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SInt64Rules.ProtoReflect.Descriptor instead. +func (*SInt64Rules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{8} +} + +func (x *SInt64Rules) GetConst() int64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *SInt64Rules) GetLt() int64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *SInt64Rules) GetLte() int64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *SInt64Rules) GetGt() int64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *SInt64Rules) GetGte() int64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *SInt64Rules) GetIn() []int64 { + if x != nil { + return x.In + } + return nil +} + +func (x *SInt64Rules) GetNotIn() []int64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SInt64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// Fixed32Rules describes the constraints applied to `fixed32` values +type Fixed32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *uint32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *Fixed32Rules) Reset() { + *x = Fixed32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Fixed32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Fixed32Rules) ProtoMessage() {} + +func (x *Fixed32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Fixed32Rules.ProtoReflect.Descriptor instead. +func (*Fixed32Rules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{9} +} + +func (x *Fixed32Rules) GetConst() uint32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *Fixed32Rules) GetLt() uint32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *Fixed32Rules) GetLte() uint32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *Fixed32Rules) GetGt() uint32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *Fixed32Rules) GetGte() uint32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *Fixed32Rules) GetIn() []uint32 { + if x != nil { + return x.In + } + return nil +} + +func (x *Fixed32Rules) GetNotIn() []uint32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Fixed32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// Fixed64Rules describes the constraints applied to `fixed64` values +type Fixed64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *uint64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *uint64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *uint64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *uint64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *uint64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []uint64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []uint64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *Fixed64Rules) Reset() { + *x = Fixed64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Fixed64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Fixed64Rules) ProtoMessage() {} + +func (x *Fixed64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Fixed64Rules.ProtoReflect.Descriptor instead. +func (*Fixed64Rules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{10} +} + +func (x *Fixed64Rules) GetConst() uint64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *Fixed64Rules) GetLt() uint64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *Fixed64Rules) GetLte() uint64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *Fixed64Rules) GetGt() uint64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *Fixed64Rules) GetGte() uint64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *Fixed64Rules) GetIn() []uint64 { + if x != nil { + return x.In + } + return nil +} + +func (x *Fixed64Rules) GetNotIn() []uint64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *Fixed64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// SFixed32Rules describes the constraints applied to `sfixed32` values +type SFixed32Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"fixed32,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int32 `protobuf:"fixed32,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int32 `protobuf:"fixed32,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int32 `protobuf:"fixed32,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int32 `protobuf:"fixed32,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"fixed32,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"fixed32,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *SFixed32Rules) Reset() { + *x = SFixed32Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SFixed32Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SFixed32Rules) ProtoMessage() {} + +func (x *SFixed32Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SFixed32Rules.ProtoReflect.Descriptor instead. +func (*SFixed32Rules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{11} +} + +func (x *SFixed32Rules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *SFixed32Rules) GetLt() int32 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *SFixed32Rules) GetLte() int32 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *SFixed32Rules) GetGt() int32 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *SFixed32Rules) GetGte() int32 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *SFixed32Rules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *SFixed32Rules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SFixed32Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// SFixed64Rules describes the constraints applied to `sfixed64` values +type SFixed64Rules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int64 `protobuf:"fixed64,1,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *int64 `protobuf:"fixed64,2,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + Lte *int64 `protobuf:"fixed64,3,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + Gt *int64 `protobuf:"fixed64,4,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + Gte *int64 `protobuf:"fixed64,5,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int64 `protobuf:"fixed64,6,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int64 `protobuf:"fixed64,7,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,8,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *SFixed64Rules) Reset() { + *x = SFixed64Rules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SFixed64Rules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SFixed64Rules) ProtoMessage() {} + +func (x *SFixed64Rules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SFixed64Rules.ProtoReflect.Descriptor instead. +func (*SFixed64Rules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{12} +} + +func (x *SFixed64Rules) GetConst() int64 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *SFixed64Rules) GetLt() int64 { + if x != nil && x.Lt != nil { + return *x.Lt + } + return 0 +} + +func (x *SFixed64Rules) GetLte() int64 { + if x != nil && x.Lte != nil { + return *x.Lte + } + return 0 +} + +func (x *SFixed64Rules) GetGt() int64 { + if x != nil && x.Gt != nil { + return *x.Gt + } + return 0 +} + +func (x *SFixed64Rules) GetGte() int64 { + if x != nil && x.Gte != nil { + return *x.Gte + } + return 0 +} + +func (x *SFixed64Rules) GetIn() []int64 { + if x != nil { + return x.In + } + return nil +} + +func (x *SFixed64Rules) GetNotIn() []int64 { + if x != nil { + return x.NotIn + } + return nil +} + +func (x *SFixed64Rules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// BoolRules describes the constraints applied to `bool` values +type BoolRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *bool `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` +} + +func (x *BoolRules) Reset() { + *x = BoolRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BoolRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BoolRules) ProtoMessage() {} + +func (x *BoolRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BoolRules.ProtoReflect.Descriptor instead. +func (*BoolRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{13} +} + +func (x *BoolRules) GetConst() bool { + if x != nil && x.Const != nil { + return *x.Const + } + return false +} + +// StringRules describe the constraints applied to `string` values +type StringRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *string `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"` + // Len specifies that this field must be the specified number of + // characters (Unicode code points). Note that the number of + // characters may differ from the number of bytes in the string. + Len *uint64 `protobuf:"varint,19,opt,name=len" json:"len,omitempty"` + // MinLen specifies that this field must be the specified number of + // characters (Unicode code points) at a minimum. Note that the number of + // characters may differ from the number of bytes in the string. + MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"` + // MaxLen specifies that this field must be the specified number of + // characters (Unicode code points) at a maximum. Note that the number of + // characters may differ from the number of bytes in the string. + MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"` + // LenBytes specifies that this field must be the specified number of bytes + // at a minimum + LenBytes *uint64 `protobuf:"varint,20,opt,name=len_bytes,json=lenBytes" json:"len_bytes,omitempty"` + // MinBytes specifies that this field must be the specified number of bytes + // at a minimum + MinBytes *uint64 `protobuf:"varint,4,opt,name=min_bytes,json=minBytes" json:"min_bytes,omitempty"` + // MaxBytes specifies that this field must be the specified number of bytes + // at a maximum + MaxBytes *uint64 `protobuf:"varint,5,opt,name=max_bytes,json=maxBytes" json:"max_bytes,omitempty"` + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + Pattern *string `protobuf:"bytes,6,opt,name=pattern" json:"pattern,omitempty"` + // Prefix specifies that this field must have the specified substring at + // the beginning of the string. + Prefix *string `protobuf:"bytes,7,opt,name=prefix" json:"prefix,omitempty"` + // Suffix specifies that this field must have the specified substring at + // the end of the string. + Suffix *string `protobuf:"bytes,8,opt,name=suffix" json:"suffix,omitempty"` + // Contains specifies that this field must have the specified substring + // anywhere in the string. + Contains *string `protobuf:"bytes,9,opt,name=contains" json:"contains,omitempty"` + // NotContains specifies that this field cannot have the specified substring + // anywhere in the string. + NotContains *string `protobuf:"bytes,23,opt,name=not_contains,json=notContains" json:"not_contains,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []string `protobuf:"bytes,10,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []string `protobuf:"bytes,11,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // WellKnown rules provide advanced constraints against common string + // patterns + // + // Types that are assignable to WellKnown: + // *StringRules_Email + // *StringRules_Hostname + // *StringRules_Ip + // *StringRules_Ipv4 + // *StringRules_Ipv6 + // *StringRules_Uri + // *StringRules_UriRef + // *StringRules_Address + // *StringRules_Uuid + // *StringRules_WellKnownRegex + // *StringRules_Alphabets + // *StringRules_Alphanums + // *StringRules_Lowercase + // *StringRules_Tsecstr + WellKnown isStringRules_WellKnown `protobuf_oneof:"well_known"` + // This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable + // strict header validation. + // By default, this is true, and HTTP header validations are RFC-compliant. + // Setting to false will enable a looser validations that only disallows + // \r\n\0 characters, which can be used to bypass header matching rules. + Strict *bool `protobuf:"varint,25,opt,name=strict,def=1" json:"strict,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,26,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +// Default values for StringRules fields. +const ( + Default_StringRules_Strict = bool(true) +) + +func (x *StringRules) Reset() { + *x = StringRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StringRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StringRules) ProtoMessage() {} + +func (x *StringRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StringRules.ProtoReflect.Descriptor instead. +func (*StringRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{14} +} + +func (x *StringRules) GetConst() string { + if x != nil && x.Const != nil { + return *x.Const + } + return "" +} + +func (x *StringRules) GetLen() uint64 { + if x != nil && x.Len != nil { + return *x.Len + } + return 0 +} + +func (x *StringRules) GetMinLen() uint64 { + if x != nil && x.MinLen != nil { + return *x.MinLen + } + return 0 +} + +func (x *StringRules) GetMaxLen() uint64 { + if x != nil && x.MaxLen != nil { + return *x.MaxLen + } + return 0 +} + +func (x *StringRules) GetLenBytes() uint64 { + if x != nil && x.LenBytes != nil { + return *x.LenBytes + } + return 0 +} + +func (x *StringRules) GetMinBytes() uint64 { + if x != nil && x.MinBytes != nil { + return *x.MinBytes + } + return 0 +} + +func (x *StringRules) GetMaxBytes() uint64 { + if x != nil && x.MaxBytes != nil { + return *x.MaxBytes + } + return 0 +} + +func (x *StringRules) GetPattern() string { + if x != nil && x.Pattern != nil { + return *x.Pattern + } + return "" +} + +func (x *StringRules) GetPrefix() string { + if x != nil && x.Prefix != nil { + return *x.Prefix + } + return "" +} + +func (x *StringRules) GetSuffix() string { + if x != nil && x.Suffix != nil { + return *x.Suffix + } + return "" +} + +func (x *StringRules) GetContains() string { + if x != nil && x.Contains != nil { + return *x.Contains + } + return "" +} + +func (x *StringRules) GetNotContains() string { + if x != nil && x.NotContains != nil { + return *x.NotContains + } + return "" +} + +func (x *StringRules) GetIn() []string { + if x != nil { + return x.In + } + return nil +} + +func (x *StringRules) GetNotIn() []string { + if x != nil { + return x.NotIn + } + return nil +} + +func (m *StringRules) GetWellKnown() isStringRules_WellKnown { + if m != nil { + return m.WellKnown + } + return nil +} + +func (x *StringRules) GetEmail() bool { + if x, ok := x.GetWellKnown().(*StringRules_Email); ok { + return x.Email + } + return false +} + +func (x *StringRules) GetHostname() bool { + if x, ok := x.GetWellKnown().(*StringRules_Hostname); ok { + return x.Hostname + } + return false +} + +func (x *StringRules) GetIp() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ip); ok { + return x.Ip + } + return false +} + +func (x *StringRules) GetIpv4() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ipv4); ok { + return x.Ipv4 + } + return false +} + +func (x *StringRules) GetIpv6() bool { + if x, ok := x.GetWellKnown().(*StringRules_Ipv6); ok { + return x.Ipv6 + } + return false +} + +func (x *StringRules) GetUri() bool { + if x, ok := x.GetWellKnown().(*StringRules_Uri); ok { + return x.Uri + } + return false +} + +func (x *StringRules) GetUriRef() bool { + if x, ok := x.GetWellKnown().(*StringRules_UriRef); ok { + return x.UriRef + } + return false +} + +func (x *StringRules) GetAddress() bool { + if x, ok := x.GetWellKnown().(*StringRules_Address); ok { + return x.Address + } + return false +} + +func (x *StringRules) GetUuid() bool { + if x, ok := x.GetWellKnown().(*StringRules_Uuid); ok { + return x.Uuid + } + return false +} + +func (x *StringRules) GetWellKnownRegex() KnownRegex { + if x, ok := x.GetWellKnown().(*StringRules_WellKnownRegex); ok { + return x.WellKnownRegex + } + return KnownRegex_UNKNOWN +} + +func (x *StringRules) GetAlphabets() bool { + if x, ok := x.GetWellKnown().(*StringRules_Alphabets); ok { + return x.Alphabets + } + return false +} + +func (x *StringRules) GetAlphanums() bool { + if x, ok := x.GetWellKnown().(*StringRules_Alphanums); ok { + return x.Alphanums + } + return false +} + +func (x *StringRules) GetLowercase() bool { + if x, ok := x.GetWellKnown().(*StringRules_Lowercase); ok { + return x.Lowercase + } + return false +} + +func (x *StringRules) GetTsecstr() bool { + if x, ok := x.GetWellKnown().(*StringRules_Tsecstr); ok { + return x.Tsecstr + } + return false +} + +func (x *StringRules) GetStrict() bool { + if x != nil && x.Strict != nil { + return *x.Strict + } + return Default_StringRules_Strict +} + +func (x *StringRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +type isStringRules_WellKnown interface { + isStringRules_WellKnown() +} + +type StringRules_Email struct { + // Email specifies that the field must be a valid email address as + // defined by RFC 5322 + Email bool `protobuf:"varint,12,opt,name=email,oneof"` +} + +type StringRules_Hostname struct { + // Hostname specifies that the field must be a valid hostname as + // defined by RFC 1034. This constraint does not support + // internationalized domain names (IDNs). + Hostname bool `protobuf:"varint,13,opt,name=hostname,oneof"` +} + +type StringRules_Ip struct { + // Ip specifies that the field must be a valid IP (v4 or v6) address. + // Valid IPv6 addresses should not include surrounding square brackets. + Ip bool `protobuf:"varint,14,opt,name=ip,oneof"` +} + +type StringRules_Ipv4 struct { + // Ipv4 specifies that the field must be a valid IPv4 address. + Ipv4 bool `protobuf:"varint,15,opt,name=ipv4,oneof"` +} + +type StringRules_Ipv6 struct { + // Ipv6 specifies that the field must be a valid IPv6 address. Valid + // IPv6 addresses should not include surrounding square brackets. + Ipv6 bool `protobuf:"varint,16,opt,name=ipv6,oneof"` +} + +type StringRules_Uri struct { + // Uri specifies that the field must be a valid, absolute URI as defined + // by RFC 3986 + Uri bool `protobuf:"varint,17,opt,name=uri,oneof"` +} + +type StringRules_UriRef struct { + // UriRef specifies that the field must be a valid URI as defined by RFC + // 3986 and may be relative or absolute. + UriRef bool `protobuf:"varint,18,opt,name=uri_ref,json=uriRef,oneof"` +} + +type StringRules_Address struct { + // Address specifies that the field must be either a valid hostname as + // defined by RFC 1034 (which does not support internationalized domain + // names or IDNs), or it can be a valid IP (v4 or v6). + Address bool `protobuf:"varint,21,opt,name=address,oneof"` +} + +type StringRules_Uuid struct { + // Uuid specifies that the field must be a valid UUID as defined by + // RFC 4122 + Uuid bool `protobuf:"varint,22,opt,name=uuid,oneof"` +} + +type StringRules_WellKnownRegex struct { + // WellKnownRegex specifies a common well known pattern defined as a regex. + WellKnownRegex KnownRegex `protobuf:"varint,24,opt,name=well_known_regex,json=wellKnownRegex,enum=trpcv2.validate.KnownRegex,oneof"` +} + +type StringRules_Alphabets struct { + // Alphabets specifies that the field can only contain alphabets. e.g. aA + Alphabets bool `protobuf:"varint,27,opt,name=alphabets,oneof"` +} + +type StringRules_Alphanums struct { + // Alphanums specifies that the field should contain both alphabet(s) and number(s). e.g. aA1 + Alphanums bool `protobuf:"varint,28,opt,name=alphanums,oneof"` +} + +type StringRules_Lowercase struct { + // Lowercase specifies that the field can only contain lowercase alphabet(s). e.g. aa + Lowercase bool `protobuf:"varint,29,opt,name=lowercase,oneof"` +} + +type StringRules_Tsecstr struct { + // tsecstr specifies that the field can only contain secured strings + Tsecstr bool `protobuf:"varint,30,opt,name=tsecstr,oneof"` +} + +func (*StringRules_Email) isStringRules_WellKnown() {} + +func (*StringRules_Hostname) isStringRules_WellKnown() {} + +func (*StringRules_Ip) isStringRules_WellKnown() {} + +func (*StringRules_Ipv4) isStringRules_WellKnown() {} + +func (*StringRules_Ipv6) isStringRules_WellKnown() {} + +func (*StringRules_Uri) isStringRules_WellKnown() {} + +func (*StringRules_UriRef) isStringRules_WellKnown() {} + +func (*StringRules_Address) isStringRules_WellKnown() {} + +func (*StringRules_Uuid) isStringRules_WellKnown() {} + +func (*StringRules_WellKnownRegex) isStringRules_WellKnown() {} + +func (*StringRules_Alphabets) isStringRules_WellKnown() {} + +func (*StringRules_Alphanums) isStringRules_WellKnown() {} + +func (*StringRules_Lowercase) isStringRules_WellKnown() {} + +func (*StringRules_Tsecstr) isStringRules_WellKnown() {} + +// BytesRules describe the constraints applied to `bytes` values +type BytesRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const []byte `protobuf:"bytes,1,opt,name=const" json:"const,omitempty"` + // Len specifies that this field must be the specified number of bytes + Len *uint64 `protobuf:"varint,13,opt,name=len" json:"len,omitempty"` + // MinLen specifies that this field must be the specified number of bytes + // at a minimum + MinLen *uint64 `protobuf:"varint,2,opt,name=min_len,json=minLen" json:"min_len,omitempty"` + // MaxLen specifies that this field must be the specified number of bytes + // at a maximum + MaxLen *uint64 `protobuf:"varint,3,opt,name=max_len,json=maxLen" json:"max_len,omitempty"` + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + Pattern *string `protobuf:"bytes,4,opt,name=pattern" json:"pattern,omitempty"` + // Prefix specifies that this field must have the specified bytes at the + // beginning of the string. + Prefix []byte `protobuf:"bytes,5,opt,name=prefix" json:"prefix,omitempty"` + // Suffix specifies that this field must have the specified bytes at the + // end of the string. + Suffix []byte `protobuf:"bytes,6,opt,name=suffix" json:"suffix,omitempty"` + // Contains specifies that this field must have the specified bytes + // anywhere in the string. + Contains []byte `protobuf:"bytes,7,opt,name=contains" json:"contains,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In [][]byte `protobuf:"bytes,8,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn [][]byte `protobuf:"bytes,9,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + // WellKnown rules provide advanced constraints against common byte + // patterns + // + // Types that are assignable to WellKnown: + // *BytesRules_Ip + // *BytesRules_Ipv4 + // *BytesRules_Ipv6 + WellKnown isBytesRules_WellKnown `protobuf_oneof:"well_known"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,14,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *BytesRules) Reset() { + *x = BytesRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BytesRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BytesRules) ProtoMessage() {} + +func (x *BytesRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BytesRules.ProtoReflect.Descriptor instead. +func (*BytesRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{15} +} + +func (x *BytesRules) GetConst() []byte { + if x != nil { + return x.Const + } + return nil +} + +func (x *BytesRules) GetLen() uint64 { + if x != nil && x.Len != nil { + return *x.Len + } + return 0 +} + +func (x *BytesRules) GetMinLen() uint64 { + if x != nil && x.MinLen != nil { + return *x.MinLen + } + return 0 +} + +func (x *BytesRules) GetMaxLen() uint64 { + if x != nil && x.MaxLen != nil { + return *x.MaxLen + } + return 0 +} + +func (x *BytesRules) GetPattern() string { + if x != nil && x.Pattern != nil { + return *x.Pattern + } + return "" +} + +func (x *BytesRules) GetPrefix() []byte { + if x != nil { + return x.Prefix + } + return nil +} + +func (x *BytesRules) GetSuffix() []byte { + if x != nil { + return x.Suffix + } + return nil +} + +func (x *BytesRules) GetContains() []byte { + if x != nil { + return x.Contains + } + return nil +} + +func (x *BytesRules) GetIn() [][]byte { + if x != nil { + return x.In + } + return nil +} + +func (x *BytesRules) GetNotIn() [][]byte { + if x != nil { + return x.NotIn + } + return nil +} + +func (m *BytesRules) GetWellKnown() isBytesRules_WellKnown { + if m != nil { + return m.WellKnown + } + return nil +} + +func (x *BytesRules) GetIp() bool { + if x, ok := x.GetWellKnown().(*BytesRules_Ip); ok { + return x.Ip + } + return false +} + +func (x *BytesRules) GetIpv4() bool { + if x, ok := x.GetWellKnown().(*BytesRules_Ipv4); ok { + return x.Ipv4 + } + return false +} + +func (x *BytesRules) GetIpv6() bool { + if x, ok := x.GetWellKnown().(*BytesRules_Ipv6); ok { + return x.Ipv6 + } + return false +} + +func (x *BytesRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +type isBytesRules_WellKnown interface { + isBytesRules_WellKnown() +} + +type BytesRules_Ip struct { + // Ip specifies that the field must be a valid IP (v4 or v6) address in + // byte format + Ip bool `protobuf:"varint,10,opt,name=ip,oneof"` +} + +type BytesRules_Ipv4 struct { + // Ipv4 specifies that the field must be a valid IPv4 address in byte + // format + Ipv4 bool `protobuf:"varint,11,opt,name=ipv4,oneof"` +} + +type BytesRules_Ipv6 struct { + // Ipv6 specifies that the field must be a valid IPv6 address in byte + // format + Ipv6 bool `protobuf:"varint,12,opt,name=ipv6,oneof"` +} + +func (*BytesRules_Ip) isBytesRules_WellKnown() {} + +func (*BytesRules_Ipv4) isBytesRules_WellKnown() {} + +func (*BytesRules_Ipv6) isBytesRules_WellKnown() {} + +// EnumRules describe the constraints applied to enum values +type EnumRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Const specifies that this field must be exactly the specified value + Const *int32 `protobuf:"varint,1,opt,name=const" json:"const,omitempty"` + // DefinedOnly specifies that this field must be only one of the defined + // values for this enum, failing on any undefined value. + DefinedOnly *bool `protobuf:"varint,2,opt,name=defined_only,json=definedOnly" json:"defined_only,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []int32 `protobuf:"varint,3,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []int32 `protobuf:"varint,4,rep,name=not_in,json=notIn" json:"not_in,omitempty"` +} + +func (x *EnumRules) Reset() { + *x = EnumRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EnumRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumRules) ProtoMessage() {} + +func (x *EnumRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumRules.ProtoReflect.Descriptor instead. +func (*EnumRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{16} +} + +func (x *EnumRules) GetConst() int32 { + if x != nil && x.Const != nil { + return *x.Const + } + return 0 +} + +func (x *EnumRules) GetDefinedOnly() bool { + if x != nil && x.DefinedOnly != nil { + return *x.DefinedOnly + } + return false +} + +func (x *EnumRules) GetIn() []int32 { + if x != nil { + return x.In + } + return nil +} + +func (x *EnumRules) GetNotIn() []int32 { + if x != nil { + return x.NotIn + } + return nil +} + +// MessageRules describe the constraints applied to embedded message values. +// For message-type fields, validation is performed recursively. +type MessageRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Skip specifies that the validation rules of this field should not be + // evaluated + Skip *bool `protobuf:"varint,1,opt,name=skip" json:"skip,omitempty"` + // Required specifies that this field must be set + Required *bool `protobuf:"varint,2,opt,name=required" json:"required,omitempty"` +} + +func (x *MessageRules) Reset() { + *x = MessageRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageRules) ProtoMessage() {} + +func (x *MessageRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageRules.ProtoReflect.Descriptor instead. +func (*MessageRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{17} +} + +func (x *MessageRules) GetSkip() bool { + if x != nil && x.Skip != nil { + return *x.Skip + } + return false +} + +func (x *MessageRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +// RepeatedRules describe the constraints applied to `repeated` values +type RepeatedRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // MinItems specifies that this field must have the specified number of + // items at a minimum + MinItems *uint64 `protobuf:"varint,1,opt,name=min_items,json=minItems" json:"min_items,omitempty"` + // MaxItems specifies that this field must have the specified number of + // items at a maximum + MaxItems *uint64 `protobuf:"varint,2,opt,name=max_items,json=maxItems" json:"max_items,omitempty"` + // Unique specifies that all elements in this field must be unique. This + // contraint is only applicable to scalar and enum types (messages are not + // supported). + Unique *bool `protobuf:"varint,3,opt,name=unique" json:"unique,omitempty"` + // Items specifies the contraints to be applied to each item in the field. + // Repeated message fields will still execute validation against each item + // unless skip is specified here. + Items *FieldRules `protobuf:"bytes,4,opt,name=items" json:"items,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,5,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *RepeatedRules) Reset() { + *x = RepeatedRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RepeatedRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RepeatedRules) ProtoMessage() {} + +func (x *RepeatedRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RepeatedRules.ProtoReflect.Descriptor instead. +func (*RepeatedRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{18} +} + +func (x *RepeatedRules) GetMinItems() uint64 { + if x != nil && x.MinItems != nil { + return *x.MinItems + } + return 0 +} + +func (x *RepeatedRules) GetMaxItems() uint64 { + if x != nil && x.MaxItems != nil { + return *x.MaxItems + } + return 0 +} + +func (x *RepeatedRules) GetUnique() bool { + if x != nil && x.Unique != nil { + return *x.Unique + } + return false +} + +func (x *RepeatedRules) GetItems() *FieldRules { + if x != nil { + return x.Items + } + return nil +} + +func (x *RepeatedRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// MapRules describe the constraints applied to `map` values +type MapRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // MinPairs specifies that this field must have the specified number of + // KVs at a minimum + MinPairs *uint64 `protobuf:"varint,1,opt,name=min_pairs,json=minPairs" json:"min_pairs,omitempty"` + // MaxPairs specifies that this field must have the specified number of + // KVs at a maximum + MaxPairs *uint64 `protobuf:"varint,2,opt,name=max_pairs,json=maxPairs" json:"max_pairs,omitempty"` + // NoSparse specifies values in this field cannot be unset. This only + // applies to map's with message value types. + NoSparse *bool `protobuf:"varint,3,opt,name=no_sparse,json=noSparse" json:"no_sparse,omitempty"` + // Keys specifies the constraints to be applied to each key in the field. + Keys *FieldRules `protobuf:"bytes,4,opt,name=keys" json:"keys,omitempty"` + // Values specifies the constraints to be applied to the value of each key + // in the field. Message values will still have their validations evaluated + // unless skip is specified here. + Values *FieldRules `protobuf:"bytes,5,opt,name=values" json:"values,omitempty"` + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + IgnoreEmpty *bool `protobuf:"varint,6,opt,name=ignore_empty,json=ignoreEmpty" json:"ignore_empty,omitempty"` +} + +func (x *MapRules) Reset() { + *x = MapRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MapRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MapRules) ProtoMessage() {} + +func (x *MapRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MapRules.ProtoReflect.Descriptor instead. +func (*MapRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{19} +} + +func (x *MapRules) GetMinPairs() uint64 { + if x != nil && x.MinPairs != nil { + return *x.MinPairs + } + return 0 +} + +func (x *MapRules) GetMaxPairs() uint64 { + if x != nil && x.MaxPairs != nil { + return *x.MaxPairs + } + return 0 +} + +func (x *MapRules) GetNoSparse() bool { + if x != nil && x.NoSparse != nil { + return *x.NoSparse + } + return false +} + +func (x *MapRules) GetKeys() *FieldRules { + if x != nil { + return x.Keys + } + return nil +} + +func (x *MapRules) GetValues() *FieldRules { + if x != nil { + return x.Values + } + return nil +} + +func (x *MapRules) GetIgnoreEmpty() bool { + if x != nil && x.IgnoreEmpty != nil { + return *x.IgnoreEmpty + } + return false +} + +// AnyRules describe constraints applied exclusively to the +// `google.protobuf.Any` well-known type +type AnyRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required specifies that this field must be set + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` + // In specifies that this field's `type_url` must be equal to one of the + // specified values. + In []string `protobuf:"bytes,2,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field's `type_url` must not be equal to any of + // the specified values. + NotIn []string `protobuf:"bytes,3,rep,name=not_in,json=notIn" json:"not_in,omitempty"` +} + +func (x *AnyRules) Reset() { + *x = AnyRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnyRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnyRules) ProtoMessage() {} + +func (x *AnyRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AnyRules.ProtoReflect.Descriptor instead. +func (*AnyRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{20} +} + +func (x *AnyRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +func (x *AnyRules) GetIn() []string { + if x != nil { + return x.In + } + return nil +} + +func (x *AnyRules) GetNotIn() []string { + if x != nil { + return x.NotIn + } + return nil +} + +// DurationRules describe the constraints applied exclusively to the +// `google.protobuf.Duration` well-known type +type DurationRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required specifies that this field must be set + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` + // Const specifies that this field must be exactly the specified value + Const *duration.Duration `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *duration.Duration `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` + // Lt specifies that this field must be less than the specified value, + // inclusive + Lte *duration.Duration `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive + Gt *duration.Duration `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than the specified value, + // inclusive + Gte *duration.Duration `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` + // In specifies that this field must be equal to one of the specified + // values + In []*duration.Duration `protobuf:"bytes,7,rep,name=in" json:"in,omitempty"` + // NotIn specifies that this field cannot be equal to one of the specified + // values + NotIn []*duration.Duration `protobuf:"bytes,8,rep,name=not_in,json=notIn" json:"not_in,omitempty"` +} + +func (x *DurationRules) Reset() { + *x = DurationRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DurationRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DurationRules) ProtoMessage() {} + +func (x *DurationRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DurationRules.ProtoReflect.Descriptor instead. +func (*DurationRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{21} +} + +func (x *DurationRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +func (x *DurationRules) GetConst() *duration.Duration { + if x != nil { + return x.Const + } + return nil +} + +func (x *DurationRules) GetLt() *duration.Duration { + if x != nil { + return x.Lt + } + return nil +} + +func (x *DurationRules) GetLte() *duration.Duration { + if x != nil { + return x.Lte + } + return nil +} + +func (x *DurationRules) GetGt() *duration.Duration { + if x != nil { + return x.Gt + } + return nil +} + +func (x *DurationRules) GetGte() *duration.Duration { + if x != nil { + return x.Gte + } + return nil +} + +func (x *DurationRules) GetIn() []*duration.Duration { + if x != nil { + return x.In + } + return nil +} + +func (x *DurationRules) GetNotIn() []*duration.Duration { + if x != nil { + return x.NotIn + } + return nil +} + +// TimestampRules describe the constraints applied exclusively to the +// `google.protobuf.Timestamp` well-known type +type TimestampRules struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required specifies that this field must be set + Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` + // Const specifies that this field must be exactly the specified value + Const *timestamp.Timestamp `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + // Lt specifies that this field must be less than the specified value, + // exclusive + Lt *timestamp.Timestamp `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` + // Lte specifies that this field must be less than the specified value, + // inclusive + Lte *timestamp.Timestamp `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` + // Gt specifies that this field must be greater than the specified value, + // exclusive + Gt *timestamp.Timestamp `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` + // Gte specifies that this field must be greater than the specified value, + // inclusive + Gte *timestamp.Timestamp `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` + // LtNow specifies that this must be less than the current time. LtNow + // can only be used with the Within rule. + LtNow *bool `protobuf:"varint,7,opt,name=lt_now,json=ltNow" json:"lt_now,omitempty"` + // GtNow specifies that this must be greater than the current time. GtNow + // can only be used with the Within rule. + GtNow *bool `protobuf:"varint,8,opt,name=gt_now,json=gtNow" json:"gt_now,omitempty"` + // Within specifies that this field must be within this duration of the + // current time. This constraint can be used alone or with the LtNow and + // GtNow rules. + Within *duration.Duration `protobuf:"bytes,9,opt,name=within" json:"within,omitempty"` +} + +func (x *TimestampRules) Reset() { + *x = TimestampRules{} + if protoimpl.UnsafeEnabled { + mi := &file_trpcv2_validate_validate_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TimestampRules) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimestampRules) ProtoMessage() {} + +func (x *TimestampRules) ProtoReflect() protoreflect.Message { + mi := &file_trpcv2_validate_validate_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TimestampRules.ProtoReflect.Descriptor instead. +func (*TimestampRules) Descriptor() ([]byte, []int) { + return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{22} +} + +func (x *TimestampRules) GetRequired() bool { + if x != nil && x.Required != nil { + return *x.Required + } + return false +} + +func (x *TimestampRules) GetConst() *timestamp.Timestamp { + if x != nil { + return x.Const + } + return nil +} + +func (x *TimestampRules) GetLt() *timestamp.Timestamp { + if x != nil { + return x.Lt + } + return nil +} + +func (x *TimestampRules) GetLte() *timestamp.Timestamp { + if x != nil { + return x.Lte + } + return nil +} + +func (x *TimestampRules) GetGt() *timestamp.Timestamp { + if x != nil { + return x.Gt + } + return nil +} + +func (x *TimestampRules) GetGte() *timestamp.Timestamp { + if x != nil { + return x.Gte + } + return nil +} + +func (x *TimestampRules) GetLtNow() bool { + if x != nil && x.LtNow != nil { + return *x.LtNow + } + return false +} + +func (x *TimestampRules) GetGtNow() bool { + if x != nil && x.GtNow != nil { + return *x.GtNow + } + return false +} + +func (x *TimestampRules) GetWithin() *duration.Duration { + if x != nil { + return x.Within + } + return nil +} + +var file_trpcv2_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1155, + Name: "trpcv2.validate.disabled", + Tag: "varint,1155,opt,name=disabled", + Filename: "trpcv2/validate/validate.proto", + }, + { + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1156, + Name: "trpcv2.validate.ignored", + Tag: "varint,1156,opt,name=ignored", + Filename: "trpcv2/validate/validate.proto", + }, + { + ExtendedType: (*descriptor.OneofOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1155, + Name: "trpcv2.validate.required", + Tag: "varint,1155,opt,name=required", + Filename: "trpcv2/validate/validate.proto", + }, + { + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*FieldRules)(nil), + Field: 1155, + Name: "trpcv2.validate.rules", + Tag: "bytes,1155,opt,name=rules", + Filename: "trpcv2/validate/validate.proto", + }, +} + +// Extension fields to descriptor.MessageOptions. +var ( + // Disabled nullifies any validation rules for this message, including any + // message fields associated with it that do support validation. + // + // optional bool disabled = 1155; + E_Disabled = &file_trpcv2_validate_validate_proto_extTypes[0] + // Ignore skips generation of validation methods for this message. + // + // optional bool ignored = 1156; + E_Ignored = &file_trpcv2_validate_validate_proto_extTypes[1] +) + +// Extension fields to descriptor.OneofOptions. +var ( + // Required ensures that exactly one the field options in a oneof is set; + // validation fails if no fields in the oneof are set. + // + // optional bool required = 1155; + E_Required = &file_trpcv2_validate_validate_proto_extTypes[2] +) + +// Extension fields to descriptor.FieldOptions. +var ( + // Rules specify the validations to be performed on this field. By default, + // no validation is performed against a field. + // + // optional trpcv2.validate.FieldRules rules = 1155; + E_Rules = &file_trpcv2_validate_validate_proto_extTypes[3] +) + +var File_trpcv2_validate_validate_proto protoreflect.FileDescriptor + +var file_trpcv2_validate_validate_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x0f, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe2, 0x09, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x12, 0x36, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, + 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x33, + 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x12, 0x36, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x36, 0x0a, 0x06, 0x75, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x36, 0x0a, 0x06, 0x73, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x12, 0x39, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x39, + 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, + 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x3c, 0x0a, 0x08, 0x73, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x46, + 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x3c, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x36, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x72, 0x70, 0x63, + 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, + 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, + 0x33, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, + 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, + 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, + 0x6d, 0x61, 0x70, 0x12, 0x2d, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, 0x61, + 0x6e, 0x79, 0x12, 0x3c, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x3f, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x67, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x67, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x02, + 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x02, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, + 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, + 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x01, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x01, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, + 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, + 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, + 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, + 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x6e, + 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, + 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x11, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x11, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, + 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x11, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x12, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, + 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x12, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, + 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x67, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x67, 0x74, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x07, 0x52, 0x02, 0x69, + 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x07, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, + 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, + 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, + 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, + 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x06, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x06, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x06, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, + 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0f, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, + 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, + 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x6c, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x67, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x67, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x10, 0x52, 0x02, + 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x10, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x0a, 0x09, + 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x22, + 0xd7, 0x06, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, + 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x6e, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x65, + 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, + 0x5f, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, + 0x12, 0x16, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, + 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, + 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, + 0x69, 0x70, 0x76, 0x36, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x19, 0x0a, 0x07, 0x75, 0x72, 0x69, 0x5f, + 0x72, 0x65, 0x66, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x72, 0x69, + 0x52, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x14, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x10, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x48, 0x00, 0x52, 0x0e, + 0x77, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1e, + 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x73, 0x12, 0x1e, + 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x1e, + 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1a, + 0x0a, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x06, 0x73, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, + 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, + 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xe2, 0x02, 0x0a, 0x0a, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, + 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, + 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, + 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, + 0x69, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, + 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, + 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x21, 0x0a, + 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0x6b, + 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0x3e, 0x0a, 0x0c, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, + 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0xb7, 0x01, 0x0a, 0x0d, + 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, + 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, + 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, + 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, + 0x31, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xea, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x6e, 0x6f, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x6e, 0x6f, 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x6b, 0x65, 0x79, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, + 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x4d, 0x0a, 0x08, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, + 0x6e, 0x22, 0xe9, 0x02, 0x0a, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, + 0x2f, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x29, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x6c, + 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x02, 0x67, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x67, 0x74, 0x65, + 0x12, 0x29, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x06, 0x6e, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0xf3, 0x02, + 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x2a, + 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x6c, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x02, 0x67, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x67, + 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x6c, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x74, 0x5f, + 0x6e, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x74, 0x4e, 0x6f, 0x77, + 0x12, 0x31, 0x0a, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x77, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x2a, 0x46, 0x0a, 0x0a, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, + 0x78, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, + 0x0a, 0x10, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x4e, 0x41, + 0x4d, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, + 0x44, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x02, 0x3a, 0x3c, 0x0a, 0x08, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x07, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x84, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x3a, 0x51, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x42, 0x55, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, + 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, + 0x76, 0x32, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, +} + +var ( + file_trpcv2_validate_validate_proto_rawDescOnce sync.Once + file_trpcv2_validate_validate_proto_rawDescData = file_trpcv2_validate_validate_proto_rawDesc +) + +func file_trpcv2_validate_validate_proto_rawDescGZIP() []byte { + file_trpcv2_validate_validate_proto_rawDescOnce.Do(func() { + file_trpcv2_validate_validate_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpcv2_validate_validate_proto_rawDescData) + }) + return file_trpcv2_validate_validate_proto_rawDescData +} + +var file_trpcv2_validate_validate_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_trpcv2_validate_validate_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_trpcv2_validate_validate_proto_goTypes = []interface{}{ + (KnownRegex)(0), // 0: trpcv2.validate.KnownRegex + (*FieldRules)(nil), // 1: trpcv2.validate.FieldRules + (*FloatRules)(nil), // 2: trpcv2.validate.FloatRules + (*DoubleRules)(nil), // 3: trpcv2.validate.DoubleRules + (*Int32Rules)(nil), // 4: trpcv2.validate.Int32Rules + (*Int64Rules)(nil), // 5: trpcv2.validate.Int64Rules + (*UInt32Rules)(nil), // 6: trpcv2.validate.UInt32Rules + (*UInt64Rules)(nil), // 7: trpcv2.validate.UInt64Rules + (*SInt32Rules)(nil), // 8: trpcv2.validate.SInt32Rules + (*SInt64Rules)(nil), // 9: trpcv2.validate.SInt64Rules + (*Fixed32Rules)(nil), // 10: trpcv2.validate.Fixed32Rules + (*Fixed64Rules)(nil), // 11: trpcv2.validate.Fixed64Rules + (*SFixed32Rules)(nil), // 12: trpcv2.validate.SFixed32Rules + (*SFixed64Rules)(nil), // 13: trpcv2.validate.SFixed64Rules + (*BoolRules)(nil), // 14: trpcv2.validate.BoolRules + (*StringRules)(nil), // 15: trpcv2.validate.StringRules + (*BytesRules)(nil), // 16: trpcv2.validate.BytesRules + (*EnumRules)(nil), // 17: trpcv2.validate.EnumRules + (*MessageRules)(nil), // 18: trpcv2.validate.MessageRules + (*RepeatedRules)(nil), // 19: trpcv2.validate.RepeatedRules + (*MapRules)(nil), // 20: trpcv2.validate.MapRules + (*AnyRules)(nil), // 21: trpcv2.validate.AnyRules + (*DurationRules)(nil), // 22: trpcv2.validate.DurationRules + (*TimestampRules)(nil), // 23: trpcv2.validate.TimestampRules + (*duration.Duration)(nil), // 24: google.protobuf.Duration + (*timestamp.Timestamp)(nil), // 25: google.protobuf.Timestamp + (*descriptor.MessageOptions)(nil), // 26: google.protobuf.MessageOptions + (*descriptor.OneofOptions)(nil), // 27: google.protobuf.OneofOptions + (*descriptor.FieldOptions)(nil), // 28: google.protobuf.FieldOptions +} +var file_trpcv2_validate_validate_proto_depIdxs = []int32{ + 18, // 0: trpcv2.validate.FieldRules.message:type_name -> trpcv2.validate.MessageRules + 2, // 1: trpcv2.validate.FieldRules.float:type_name -> trpcv2.validate.FloatRules + 3, // 2: trpcv2.validate.FieldRules.double:type_name -> trpcv2.validate.DoubleRules + 4, // 3: trpcv2.validate.FieldRules.int32:type_name -> trpcv2.validate.Int32Rules + 5, // 4: trpcv2.validate.FieldRules.int64:type_name -> trpcv2.validate.Int64Rules + 6, // 5: trpcv2.validate.FieldRules.uint32:type_name -> trpcv2.validate.UInt32Rules + 7, // 6: trpcv2.validate.FieldRules.uint64:type_name -> trpcv2.validate.UInt64Rules + 8, // 7: trpcv2.validate.FieldRules.sint32:type_name -> trpcv2.validate.SInt32Rules + 9, // 8: trpcv2.validate.FieldRules.sint64:type_name -> trpcv2.validate.SInt64Rules + 10, // 9: trpcv2.validate.FieldRules.fixed32:type_name -> trpcv2.validate.Fixed32Rules + 11, // 10: trpcv2.validate.FieldRules.fixed64:type_name -> trpcv2.validate.Fixed64Rules + 12, // 11: trpcv2.validate.FieldRules.sfixed32:type_name -> trpcv2.validate.SFixed32Rules + 13, // 12: trpcv2.validate.FieldRules.sfixed64:type_name -> trpcv2.validate.SFixed64Rules + 14, // 13: trpcv2.validate.FieldRules.bool:type_name -> trpcv2.validate.BoolRules + 15, // 14: trpcv2.validate.FieldRules.string:type_name -> trpcv2.validate.StringRules + 16, // 15: trpcv2.validate.FieldRules.bytes:type_name -> trpcv2.validate.BytesRules + 17, // 16: trpcv2.validate.FieldRules.enum:type_name -> trpcv2.validate.EnumRules + 19, // 17: trpcv2.validate.FieldRules.repeated:type_name -> trpcv2.validate.RepeatedRules + 20, // 18: trpcv2.validate.FieldRules.map:type_name -> trpcv2.validate.MapRules + 21, // 19: trpcv2.validate.FieldRules.any:type_name -> trpcv2.validate.AnyRules + 22, // 20: trpcv2.validate.FieldRules.duration:type_name -> trpcv2.validate.DurationRules + 23, // 21: trpcv2.validate.FieldRules.timestamp:type_name -> trpcv2.validate.TimestampRules + 0, // 22: trpcv2.validate.StringRules.well_known_regex:type_name -> trpcv2.validate.KnownRegex + 1, // 23: trpcv2.validate.RepeatedRules.items:type_name -> trpcv2.validate.FieldRules + 1, // 24: trpcv2.validate.MapRules.keys:type_name -> trpcv2.validate.FieldRules + 1, // 25: trpcv2.validate.MapRules.values:type_name -> trpcv2.validate.FieldRules + 24, // 26: trpcv2.validate.DurationRules.const:type_name -> google.protobuf.Duration + 24, // 27: trpcv2.validate.DurationRules.lt:type_name -> google.protobuf.Duration + 24, // 28: trpcv2.validate.DurationRules.lte:type_name -> google.protobuf.Duration + 24, // 29: trpcv2.validate.DurationRules.gt:type_name -> google.protobuf.Duration + 24, // 30: trpcv2.validate.DurationRules.gte:type_name -> google.protobuf.Duration + 24, // 31: trpcv2.validate.DurationRules.in:type_name -> google.protobuf.Duration + 24, // 32: trpcv2.validate.DurationRules.not_in:type_name -> google.protobuf.Duration + 25, // 33: trpcv2.validate.TimestampRules.const:type_name -> google.protobuf.Timestamp + 25, // 34: trpcv2.validate.TimestampRules.lt:type_name -> google.protobuf.Timestamp + 25, // 35: trpcv2.validate.TimestampRules.lte:type_name -> google.protobuf.Timestamp + 25, // 36: trpcv2.validate.TimestampRules.gt:type_name -> google.protobuf.Timestamp + 25, // 37: trpcv2.validate.TimestampRules.gte:type_name -> google.protobuf.Timestamp + 24, // 38: trpcv2.validate.TimestampRules.within:type_name -> google.protobuf.Duration + 26, // 39: trpcv2.validate.disabled:extendee -> google.protobuf.MessageOptions + 26, // 40: trpcv2.validate.ignored:extendee -> google.protobuf.MessageOptions + 27, // 41: trpcv2.validate.required:extendee -> google.protobuf.OneofOptions + 28, // 42: trpcv2.validate.rules:extendee -> google.protobuf.FieldOptions + 1, // 43: trpcv2.validate.rules:type_name -> trpcv2.validate.FieldRules + 44, // [44:44] is the sub-list for method output_type + 44, // [44:44] is the sub-list for method input_type + 43, // [43:44] is the sub-list for extension type_name + 39, // [39:43] is the sub-list for extension extendee + 0, // [0:39] is the sub-list for field type_name +} + +func init() { file_trpcv2_validate_validate_proto_init() } +func file_trpcv2_validate_validate_proto_init() { + if File_trpcv2_validate_validate_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpcv2_validate_validate_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FieldRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FloatRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DoubleRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Int32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Int64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UInt32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UInt64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SInt32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SInt64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Fixed32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Fixed64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SFixed32Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SFixed64Rules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BoolRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StringRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BytesRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EnumRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RepeatedRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MapRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnyRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DurationRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpcv2_validate_validate_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TimestampRules); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_trpcv2_validate_validate_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*FieldRules_Float)(nil), + (*FieldRules_Double)(nil), + (*FieldRules_Int32)(nil), + (*FieldRules_Int64)(nil), + (*FieldRules_Uint32)(nil), + (*FieldRules_Uint64)(nil), + (*FieldRules_Sint32)(nil), + (*FieldRules_Sint64)(nil), + (*FieldRules_Fixed32)(nil), + (*FieldRules_Fixed64)(nil), + (*FieldRules_Sfixed32)(nil), + (*FieldRules_Sfixed64)(nil), + (*FieldRules_Bool)(nil), + (*FieldRules_String_)(nil), + (*FieldRules_Bytes)(nil), + (*FieldRules_Enum)(nil), + (*FieldRules_Repeated)(nil), + (*FieldRules_Map)(nil), + (*FieldRules_Any)(nil), + (*FieldRules_Duration)(nil), + (*FieldRules_Timestamp)(nil), + } + file_trpcv2_validate_validate_proto_msgTypes[14].OneofWrappers = []interface{}{ + (*StringRules_Email)(nil), + (*StringRules_Hostname)(nil), + (*StringRules_Ip)(nil), + (*StringRules_Ipv4)(nil), + (*StringRules_Ipv6)(nil), + (*StringRules_Uri)(nil), + (*StringRules_UriRef)(nil), + (*StringRules_Address)(nil), + (*StringRules_Uuid)(nil), + (*StringRules_WellKnownRegex)(nil), + (*StringRules_Alphabets)(nil), + (*StringRules_Alphanums)(nil), + (*StringRules_Lowercase)(nil), + (*StringRules_Tsecstr)(nil), + } + file_trpcv2_validate_validate_proto_msgTypes[15].OneofWrappers = []interface{}{ + (*BytesRules_Ip)(nil), + (*BytesRules_Ipv4)(nil), + (*BytesRules_Ipv6)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpcv2_validate_validate_proto_rawDesc, + NumEnums: 1, + NumMessages: 23, + NumExtensions: 4, + NumServices: 0, + }, + GoTypes: file_trpcv2_validate_validate_proto_goTypes, + DependencyIndexes: file_trpcv2_validate_validate_proto_depIdxs, + EnumInfos: file_trpcv2_validate_validate_proto_enumTypes, + MessageInfos: file_trpcv2_validate_validate_proto_msgTypes, + ExtensionInfos: file_trpcv2_validate_validate_proto_extTypes, + }.Build() + File_trpcv2_validate_validate_proto = out.File + file_trpcv2_validate_validate_proto_rawDesc = nil + file_trpcv2_validate_validate_proto_goTypes = nil + file_trpcv2_validate_validate_proto_depIdxs = nil +} diff --git a/trpcv2/BUILD b/trpcv2/BUILD new file mode 100644 index 0000000..406c1f5 --- /dev/null +++ b/trpcv2/BUILD @@ -0,0 +1,8 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "trpc_proto", + srcs = [ + "trpc.proto", + ], +) diff --git a/trpcv2/api/BUILD b/trpcv2/api/BUILD new file mode 100644 index 0000000..cb57431 --- /dev/null +++ b/trpcv2/api/BUILD @@ -0,0 +1,19 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "annotations_proto", + srcs = [ + "annotations.proto", + ], + deps = [ + "//trpcv2/api:http_proto", + "@com_google_protobuf//:descriptor_proto", + ], +) + +proto_library( + name = "http_proto", + srcs = [ + "http.proto", + ], +) diff --git a/trpcv2/api/annotations.proto b/trpcv2/api/annotations.proto new file mode 100644 index 0000000..294606f --- /dev/null +++ b/trpcv2/api/annotations.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; + +package trpcv2.api; + +import "trpcv2/api/http.proto"; +import "google/protobuf/descriptor.proto"; + +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpcv2/api"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +extend google.protobuf.MethodOptions { + HttpRule http = 1157; +} diff --git a/trpcv2/api/http.proto b/trpcv2/api/http.proto new file mode 100644 index 0000000..a954fc6 --- /dev/null +++ b/trpcv2/api/http.proto @@ -0,0 +1,70 @@ +syntax = "proto3"; + +package trpcv2.api; + +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpcv2/api"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +message HttpRule { + // Selects a method to which this rule applies. + // + // Refer to [selector][google.api.DocumentationRule.selector] for syntax details. + string selector = 1; + + // Determines the URL pattern is matched by this rules. This pattern can be + // used with any of the {get|put|post|delete|patch} methods. A custom method + // can be defined using the 'custom' field. + oneof pattern { + // Maps to HTTP GET. Used for listing and getting information about + // resources. + string get = 2; + + // Maps to HTTP PUT. Used for replacing a resource. + string put = 3; + + // Maps to HTTP POST. Used for creating a resource or performing an action. + string post = 4; + + // Maps to HTTP DELETE. Used for deleting a resource. + string delete = 5; + + // Maps to HTTP PATCH. Used for updating a resource. + string patch = 6; + + // The custom pattern is used for specifying an HTTP method that is not + // included in the `pattern` field, such as HEAD, or "*" to leave the + // HTTP method unspecified for this rule. The wild-card rule is useful + // for services that provide content to Web (HTML) clients. + CustomHttpPattern custom = 8; + } + + // The name of the request field whose value is mapped to the HTTP request + // body, or `*` for mapping all request fields not captured by the path + // pattern to the HTTP body, or omitted for not having any HTTP request body. + // + // NOTE: the referred field must be present at the top-level of the request + // message type. + string body = 7; + + // Optional. The name of the response field whose value is mapped to the HTTP + // response body. When omitted, the entire response message will be used + // as the HTTP response body. + // + // NOTE: The referred field must be present at the top-level of the response + // message type. + string response_body = 12; + + // Additional HTTP bindings for the selector. Nested bindings must + // not contain an `additional_bindings` field themselves (that is, + // the nesting may only be one level deep). + repeated HttpRule additional_bindings = 11; +} + +// A custom pattern is used for defining custom HTTP verb. +message CustomHttpPattern { + // The name of this custom HTTP verb. + string kind = 1; + + // The path matched by this custom verb. + string path = 2; +} diff --git a/trpcv2/proto/BUILD b/trpcv2/proto/BUILD new file mode 100644 index 0000000..6cf0dab --- /dev/null +++ b/trpcv2/proto/BUILD @@ -0,0 +1,11 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "trpc_options_proto", + srcs = [ + "trpc_options.proto", + ], + deps = [ + "@com_google_protobuf//:descriptor_proto", + ], +) diff --git a/trpcv2/proto/trpc_options.proto b/trpcv2/proto/trpc_options.proto new file mode 100644 index 0000000..97e1a6a --- /dev/null +++ b/trpcv2/proto/trpc_options.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; + +import "google/protobuf/descriptor.proto"; + +package trpcv2; + +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpcv2/proto"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +extend google.protobuf.MethodOptions { + string alias = 1155; +} + +extend google.protobuf.FieldOptions { + string go_tag = 1156; +} diff --git a/trpcv2/swagger/BUILD b/trpcv2/swagger/BUILD new file mode 100644 index 0000000..3812bda --- /dev/null +++ b/trpcv2/swagger/BUILD @@ -0,0 +1,11 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "swagger_proto", + srcs = [ + "swagger.proto", + ], + deps = [ + "@com_google_protobuf//:descriptor_proto", + ], +) diff --git a/trpcv2/swagger/swagger.proto b/trpcv2/swagger/swagger.proto new file mode 100644 index 0000000..5af1665 --- /dev/null +++ b/trpcv2/swagger/swagger.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; +import "google/protobuf/descriptor.proto"; +package trpcv2; + +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpcv2/swagger"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +extend google.protobuf.MethodOptions { + SwaggerRule swagger = 1156; +} + +// to gen swagger json +message SwaggerRule { + string title = 50103; + string method = 50104; + string description = 50105; + repeated SwaggerParam params = 50106; +} + +message SwaggerParam { + string name = 1; + bool required = 2; + string default = 3; +} \ No newline at end of file diff --git a/trpcv2/trpc.proto b/trpcv2/trpc.proto new file mode 100644 index 0000000..596b9e7 --- /dev/null +++ b/trpcv2/trpc.proto @@ -0,0 +1,514 @@ +syntax = "proto3"; + +package trpcv2; + +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpcv2;trpc"; +option java_package = "com.tencent.trpc.proto.standard.common"; +option java_outer_classname = "TRPCProtocol"; + +// 框架协议头里的魔数 +enum TrpcMagic { + // trpc不用这个值,为了提供给pb工具生成代码 + TRPC_DEFAULT_NONE = 0x00; + + // trpc协议默认使用这个魔数 + TRPC_MAGIC_VALUE = 0x930; +} + +// trpc协议的二进制数据帧类型 +// 目前支持两种类型的二进制数据帧: +// 1. 一应一答模式的二进制数据帧类型 +// 2. 流式模式的二进制数据帧类型 +enum TrpcDataFrameType { + // trpc一应一答模式的二进制数据帧类型 + TRPC_UNARY_FRAME = 0x00; + + // trpc流式模式的二进制数据帧类型 + TRPC_STREAM_FRAME = 0x01; +} + +// 此类型删掉,改成下面的TrpcStreamFrameType +// trpc协议的二进制数据帧的状态 +// 目前支持流式模式的二进制数据帧结束状态 +//enum TrpcDataFrameState { +// // 不包括任何状态 +// TRPC_NO_STATE = 0x00; +// +// // trpc流式模式下的结束状态 +// TRPC_STREAM_FINISH = 0x01; +//} + +// trpc协议流式的二进制数据帧类型 +// 目前流式帧类型分4种:INIT/DATA/FEEDBACK/CLOSE,其中CLOSE帧不带业务数据 +// INIT帧:FIXHEADER + TrpcStreamInitMeta +// DATA帧:FIXHEADER + body(业务序列化的数据) +// FEEDBACK帧:FIXHEADER + TrpcStreamFeedBackMeta(触发策略,高低水位+定时) +// CLOSE帧:FIXHEADER + TrpcStreamCloseMeta +// 连接和流空闲超时的回收机制不考虑 +enum TrpcStreamFrameType { + // 一应一答的默认取值 + TRPC_UNARY = 0x00; + + // 流式INIT帧类型 + TRPC_STREAM_FRAME_INIT = 0x01; + + // 流式DATA帧类型 + TRPC_STREAM_FRAME_DATA = 0x02; + + // 流式FEEDBACK帧类型 + TRPC_STREAM_FRAME_FEEDBACK = 0x03; + + // 流式CLOSE帧类型 + TRPC_STREAM_FRAME_CLOSE = 0x04; +} + +// trpc流式的流控帧头消息定义 +message TrpcStreamInitMeta { + // init请求元信息 + TrpcStreamInitRequestMeta request_meta = 1; + + // init响应元信息 + TrpcStreamInitResponseMeta response_meta = 2; + + // 由接收端告知发送端初始的发送窗口大小 + uint32 init_window_size = 3; + + // 请求数据的序列化类型 + // 比如: proto/jce/json, 默认proto + // 具体值与TrpcContentEncodeType对应 + uint32 content_type = 4; + + // 请求数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + // 具体值与TrpcCompressType对应 + uint32 content_encoding = 5; +} + +// trpc流式init头的请求元信息 +message TrpcStreamInitRequestMeta { + // 主调服务的名称 + // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + bytes caller = 1; + + // 被调服务的路由名称 + // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] + // 前4段是必须有,接口可选。 + bytes callee = 2; + + // 调用服务的接口名 + // 规范格式: /package.Service名称/接口名 + bytes func = 3; + + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + uint32 message_type = 4; + + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc-开头 + // 2是业务层要透传的信息,业务可以自行设置 + // 注意: trans_info中的key-value对会全链路透传,业务请谨慎使用! + map trans_info = 5; +}; + +// trpc流式init头的响应元信息 +message TrpcStreamInitResponseMeta { + // 请求在框架层的错误返回码 + // 具体值与TrpcRetCode对应 + int32 ret = 1; + + // 调用结果信息描述 + // 失败的时候用 + bytes error_msg = 2; +}; + +// trpc流式的流控帧头元信息定义 +message TrpcStreamFeedBackMeta { + // 增加的窗口大小 + uint32 window_size_increment = 1; +} + +// trpc流式关闭类型 +enum TrpcStreamCloseType { + // 正常单向流关闭 + TRPC_STREAM_CLOSE = 0; + + // 异常关闭双向流 + TRPC_STREAM_RESET = 1; +} + +// trpc流式的RESET帧头消息定义 +message TrpcStreamCloseMeta { + // 关闭的类型,关闭一端,还是全部关闭 + int32 close_type = 1; + + // close返回码 + // 代表框架层的错误 + int32 ret = 2; + + // close信息描述 + bytes msg = 3; + + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + uint32 message_type = 4; + + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc-开头 + // 2是业务层要透传的信息,业务可以自行设置 + map trans_info = 5; + + // 接口的错误返回码 + // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + int32 func_ret = 6; + +} + +// trpc协议版本 +enum TrpcProtoVersion { + // 默认版本 + TRPC_PROTO_V1 = 0; +} + +// trpc协议中的调用类型 +enum TrpcCallType { + // 一应一答调用,包括同步、异步 + TRPC_UNARY_CALL = 0; + + // 单向调用 + TRPC_ONEWAY_CALL = 1; + + // 客户端流式请求调用, 删除 + //TRPC_CLIENT_STREAM_CALL = 2; + + // 服务端流式回应,删除 + //TRPC_SERVER_STREAM_CALL = 3; + + // 客户端和服务端流式请求和回应,删除 + //TRPC_BIDI_STREAM_CALL = 4; +} + +// trpc协议中的消息透传支持的类型 +enum TrpcMessageType { + + // trpc 不用这个值,为了提供给 pb 工具生成代码 + TRPC_DEFAULT = 0x00; + + // 染色 + TRPC_DYEING_MESSAGE = 0x01; + + // 调用链 + TRPC_TRACE_MESSAGE = 0x02; + + // 多环境 + TRPC_MULTI_ENV_MESSAGE = 0x04; + + // 灰度 + TRPC_GRID_MESSAGE = 0x08; + + // set名 + TRPC_SETNAME_MESSAGE = 0x10; +} + +// trpc协议中 data 内容的编码类型 +// 默认使用pb +// 目前约定 0-127 范围的取值为框架规范的序列化方式,框架使用 +enum TrpcContentEncodeType { + // pb + TRPC_PROTO_ENCODE = 0; + + // jce + TRPC_JCE_ENCODE = 1; + + // json + TRPC_JSON_ENCODE = 2; + + // flatbuffer + TRPC_FLATBUFFER_ENCODE = 3; + + // 不序列化 + TRPC_NOOP_ENCODE = 4; + + // xml + TRPC_XML_ENCODE = 5; + + // thrift + TRPC_THRIFT_ENCODE = 6; +} + +// trpc协议中 data 内容的压缩类型 +// 默认使用不压缩 +enum TrpcCompressType { + // 默认不使用压缩 + TRPC_DEFAULT_COMPRESS = 0; + + // 使用gzip + TRPC_GZIP_COMPRESS = 1; + + // 使用snappy + // + // Deprecated: 建议使用 TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, 因为现在 + // trpc-go 和 trpc-cpp 分别的使用的是 stream、block 模式,二者不兼容,跨语言调用会出错 + TRPC_SNAPPY_COMPRESS = 2; + + // 使用zlib + TRPC_ZLIB_COMPRESS = 3; + + // 使用 stream 模式的 snappy + TRPC_SNAPPY_STREAM_COMPRESS = 4; + + // 使用 block 模式的 snappy + TRPC_SNAPPY_BLOCK_COMPRESS = 5; +} + +// 框架层接口调用的返回码定义 +enum TrpcRetCode { + // 调用成功 + TRPC_INVOKE_SUCCESS = 0; + + // 服务端的错误码 + // 主要分几类: + // 1.协议,2.service或者func路由,3.队列超时或过载 + // 其它待补充 + + // 协议错误码 + // 服务端解码错误 + TRPC_SERVER_DECODE_ERR = 1; + // 服务端编码错误 + TRPC_SERVER_ENCODE_ERR = 2; + + // service或者func路由错误码 + // 服务端没有调用相应的service实现 + TRPC_SERVER_NOSERVICE_ERR = 11; + // 服务端没有调用相应的接口实现 + TRPC_SERVER_NOFUNC_ERR = 12; + + // 超时/过载/限流错误码 + // 请求在服务端超时 + TRPC_SERVER_TIMEOUT_ERR = 21; + // 请求在服务端被过载保护而丢弃请求 + // 主要用在框架内部实现的过载保护插件上 + TRPC_SERVER_OVERLOAD_ERR = 22; + // 请求在服务端被限流 + // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + TRPC_SERVER_LIMITED_ERR = 23; + // 请求在服务端因全链路超时时间而超时 + TRPC_SERVER_FULL_LINK_TIMEOUT_ERR = 24; + + // 服务端系统错误 + TRPC_SERVER_SYSTEM_ERR = 31; + + // 服务端鉴权失败错误 + TRPC_SERVER_AUTH_ERR = 41; + + // 服务端请求参数自动校验失败错误 + TRPC_SERVER_VALIDATE_ERR = 51; + + // 客户端的错误码 + // 主要分几类: + // 1.超时,2.网络,3.协议,4.路由 + // 其它待补充 + + // 超时错误码 + // 请求在客户端调用超时 + TRPC_CLIENT_INVOKE_TIMEOUT_ERR = 101; + // 请求在客户端因全链路超时时间而超时 + TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR = 102; + + // 网络相关错误码 + // 客户端连接错误 + TRPC_CLIENT_CONNECT_ERR = 111; + + // 协议相关错误码 + // 客户端编码错误 + TRPC_CLIENT_ENCODE_ERR = 121; + // 客户端解码错误 + TRPC_CLIENT_DECODE_ERR = 122; + + // 过载保护/限流相关错误码 + // 请求在客户端被限流 + // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + TRPC_CLIENT_LIMITED_ERR = 123; + // 请求在客户端被过载保护而丢弃请求 + // 主要用在框架内部实现的过载保护插件上 + TRPC_CLIENT_OVERLOAD_ERR = 124; + + // 路由相关错误码 + // 客户端选ip路由错误 + TRPC_CLIENT_ROUTER_ERR = 131; + + // 客户端网络错误 + TRPC_CLIENT_NETWORK_ERR = 141; + + // 客户端响应参数自动校验失败错误 + TRPC_CLIENT_VALIDATE_ERR = 151; + + // 上游主动断开连接,提前取消请求错误 + TRPC_CLIENT_CANCELED_ERR = 161; + + // 服务端流式的错误码 + // 主要分几类: + // 1.网络,2.编解码,3.写,4.读 + // 其它待补充 + + // 服务端流式网络错误, 详细错误码需要在实现过程中再梳理 + TRPC_STREAM_SERVER_NETWORK_ERR = 201; + + // 服务端流式传输错误, 详细错误码需要在实现过程中再梳理 + // 比如:流消息过大等 + TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR = 211; + + // 服务端流式编码错误 + TRPC_STREAM_SERVER_ENCODE_ERR = 221; + // 客户端流式编解码错误 + TRPC_STREAM_SERVER_DECODE_ERR = 222; + + // 服务端流式写错误, 详细错误码需要在实现过程中再梳理 + TRPC_STREAM_SERVER_WRITE_END = 231; + TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR = 232; + TRPC_STREAM_SERVER_WRITE_CLOSE_ERR = 233; + TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR = 234; + + // 服务端流式读错误, 详细错误码需要在实现过程中再梳理 + TRPC_STREAM_SERVER_READ_END = 251; + TRPC_STREAM_SERVER_READ_CLOSE_ERR = 252; + TRPC_STREAM_SERVER_READ_EMPTY_ERR = 253; + TRPC_STREAM_SERVER_READ_TIMEOUT_ERR = 254; + + // 客户端流式的错误码 + // 主要分几类: + // 1.网络,2.编解码,3.写,4.读 + // 其它待补充 + + // 客户端流式网络错误, 详细错误码需要在实现过程中再梳理 + TRPC_STREAM_CLIENT_NETWORK_ERR = 301; + + // 客户端流式传输错误, 详细错误码需要在实现过程中再梳理 + // 比如:流消息过大等 + TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR = 311; + + // 客户端流式编码错误 + TRPC_STREAM_CLIENT_ENCODE_ERR = 321; + // 客户端流式编解码错误 + TRPC_STREAM_CLIENT_DECODE_ERR = 322; + + // 客户端流式写错误, 详细错误码需要在实现过程中再梳理 + TRPC_STREAM_CLIENT_WRITE_END = 331; + TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR = 332; + TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR = 333; + TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR = 334; + + // 客户端流式读错误, 详细错误码需要在实现过程中再梳理 + TRPC_STREAM_CLIENT_READ_END = 351; + TRPC_STREAM_CLIENT_READ_CLOSE_ERR = 352; + TRPC_STREAM_CLIENT_READ_EMPTY_ERR = 353; + TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR = 354; + + // 未明确的错误 + TRPC_INVOKE_UNKNOWN_ERR = 999; + // 未明确的错误 + TRPC_STREAM_UNKNOWN_ERR = 1000; +} + +// trans_info已使用的框架key,注意不要重复: +// "trpc-dyeing-key":染色key + +// 请求协议头 +message RequestProtocol { + // 协议版本 + // 具体值与TrpcProtoVersion对应 + uint32 version = 1; + + // 请求的调用类型 + // 比如: 普通调用,单向调用 + // 具体值与TrpcCallType对应 + uint32 call_type = 2; + + // 请求唯一id + uint32 request_id = 3; + + // 请求的超时时间,单位ms + uint32 timeout = 4; + + // 主调服务的名称 + // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + bytes caller = 5; + + // 被调服务的路由名称 + // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] + // 前4段是必须有,接口可选。 + bytes callee = 6; + + // 调用服务的接口名 + // 规范格式: /package.Service名称/接口名 + bytes func = 7; + + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + uint32 message_type = 8; + + // 框架透传的信息key-value对,目前分两部分 + // 1是框架层要透传的信息,key的名字要以trpc-开头 + // 2是业务层要透传的信息,业务可以自行设置 + map trans_info = 9; + + // 请求数据的序列化类型 + // 比如: proto/jce/json, 默认proto + // 具体值与TrpcContentEncodeType对应 + uint32 content_type = 10; + + // 请求数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + // 具体值与TrpcCompressType对应 + uint32 content_encoding = 11; +} + +// 响应协议头 +message ResponseProtocol { + // 协议版本 + // 具体值与TrpcProtoVersion对应 + uint32 version = 1; + + // 请求的调用类型 + // 比如: 普通调用,单向调用 + // 具体值与TrpcCallType对应 + uint32 call_type = 2; + + // 请求唯一id + uint32 request_id = 3; + + // 请求在框架层的错误返回码 + // 具体值与TrpcRetCode对应 + int32 ret = 4; + + // 接口的错误返回码 + // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + int32 func_ret = 5; + + // 调用结果信息描述 + // 失败的时候用 + bytes error_msg = 6; + + // 框架信息透传的消息类型 + // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 + // 具体值与TrpcMessageType对应 + uint32 message_type = 7; + + // 框架透传回来的信息key-value对, + // 目前分两部分 + // 1是框架层透传回来的信息,key的名字要以trpc-开头 + // 2是业务层透传回来的信息,业务可以自行设置 + map trans_info = 8; + + // 响应数据的编码类型 + // 比如: proto/jce/json, 默认proto + // 具体值与TrpcContentEncodeType对应 + uint32 content_type = 9; + + // 响应数据使用的压缩方式 + // 比如: gzip/snappy/..., 默认不使用 + // 具体值与TrpcCompressType对应 + uint32 content_encoding = 10; +} diff --git a/trpcv2/validate/BUILD b/trpcv2/validate/BUILD new file mode 100644 index 0000000..4e2bc91 --- /dev/null +++ b/trpcv2/validate/BUILD @@ -0,0 +1,13 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "validate_proto", + srcs = [ + "validate.proto", + ], + deps = [ + "@com_google_protobuf//:descriptor_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) diff --git a/trpcv2/validate/validate.proto b/trpcv2/validate/validate.proto new file mode 100644 index 0000000..f00ee15 --- /dev/null +++ b/trpcv2/validate/validate.proto @@ -0,0 +1,875 @@ +syntax = "proto2"; +package trpcv2.validate; + +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpcv2/validate"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +import "google/protobuf/descriptor.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +// Validation rules applied at the message level +extend google.protobuf.MessageOptions { + // Disabled nullifies any validation rules for this message, including any + // message fields associated with it that do support validation. + optional bool disabled = 1155; + // Ignore skips generation of validation methods for this message. + optional bool ignored = 1156; +} + +// Validation rules applied at the oneof level +extend google.protobuf.OneofOptions { + // Required ensures that exactly one the field options in a oneof is set; + // validation fails if no fields in the oneof are set. + optional bool required = 1155; +} + +// Validation rules applied at the field level +extend google.protobuf.FieldOptions { + // Rules specify the validations to be performed on this field. By default, + // no validation is performed against a field. + optional FieldRules rules = 1155; +} + +// FieldRules encapsulates the rules for each type of field. Depending on the +// field, the correct set should be used to ensure proper validations. +message FieldRules { + optional MessageRules message = 17; + oneof type { + // Scalar Field Types + FloatRules float = 1; + DoubleRules double = 2; + Int32Rules int32 = 3; + Int64Rules int64 = 4; + UInt32Rules uint32 = 5; + UInt64Rules uint64 = 6; + SInt32Rules sint32 = 7; + SInt64Rules sint64 = 8; + Fixed32Rules fixed32 = 9; + Fixed64Rules fixed64 = 10; + SFixed32Rules sfixed32 = 11; + SFixed64Rules sfixed64 = 12; + BoolRules bool = 13; + StringRules string = 14; + BytesRules bytes = 15; + + // Complex Field Types + EnumRules enum = 16; + RepeatedRules repeated = 18; + MapRules map = 19; + + // Well-Known Field Types + AnyRules any = 20; + DurationRules duration = 21; + TimestampRules timestamp = 22; + } +} + +// FloatRules describes the constraints applied to `float` values +message FloatRules { + // Const specifies that this field must be exactly the specified value + optional float const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional float lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional float lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional float gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional float gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated float in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated float not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// DoubleRules describes the constraints applied to `double` values +message DoubleRules { + // Const specifies that this field must be exactly the specified value + optional double const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional double lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional double lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional double gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional double gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated double in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated double not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// Int32Rules describes the constraints applied to `int32` values +message Int32Rules { + // Const specifies that this field must be exactly the specified value + optional int32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional int32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional int32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional int32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional int32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated int32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated int32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// Int64Rules describes the constraints applied to `int64` values +message Int64Rules { + // Const specifies that this field must be exactly the specified value + optional int64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional int64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional int64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional int64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional int64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated int64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated int64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// UInt32Rules describes the constraints applied to `uint32` values +message UInt32Rules { + // Const specifies that this field must be exactly the specified value + optional uint32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional uint32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional uint32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional uint32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional uint32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated uint32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated uint32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// UInt64Rules describes the constraints applied to `uint64` values +message UInt64Rules { + // Const specifies that this field must be exactly the specified value + optional uint64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional uint64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional uint64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional uint64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional uint64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated uint64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated uint64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// SInt32Rules describes the constraints applied to `sint32` values +message SInt32Rules { + // Const specifies that this field must be exactly the specified value + optional sint32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional sint32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional sint32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional sint32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional sint32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated sint32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated sint32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// SInt64Rules describes the constraints applied to `sint64` values +message SInt64Rules { + // Const specifies that this field must be exactly the specified value + optional sint64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional sint64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional sint64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional sint64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional sint64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated sint64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated sint64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// Fixed32Rules describes the constraints applied to `fixed32` values +message Fixed32Rules { + // Const specifies that this field must be exactly the specified value + optional fixed32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional fixed32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional fixed32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional fixed32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional fixed32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated fixed32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated fixed32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// Fixed64Rules describes the constraints applied to `fixed64` values +message Fixed64Rules { + // Const specifies that this field must be exactly the specified value + optional fixed64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional fixed64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional fixed64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional fixed64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional fixed64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated fixed64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated fixed64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// SFixed32Rules describes the constraints applied to `sfixed32` values +message SFixed32Rules { + // Const specifies that this field must be exactly the specified value + optional sfixed32 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional sfixed32 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional sfixed32 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional sfixed32 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional sfixed32 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated sfixed32 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated sfixed32 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// SFixed64Rules describes the constraints applied to `sfixed64` values +message SFixed64Rules { + // Const specifies that this field must be exactly the specified value + optional sfixed64 const = 1; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional sfixed64 lt = 2; + + // Lte specifies that this field must be less than or equal to the + // specified value, inclusive + optional sfixed64 lte = 3; + + // Gt specifies that this field must be greater than the specified value, + // exclusive. If the value of Gt is larger than a specified Lt or Lte, the + // range is reversed. + optional sfixed64 gt = 4; + + // Gte specifies that this field must be greater than or equal to the + // specified value, inclusive. If the value of Gte is larger than a + // specified Lt or Lte, the range is reversed. + optional sfixed64 gte = 5; + + // In specifies that this field must be equal to one of the specified + // values + repeated sfixed64 in = 6; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated sfixed64 not_in = 7; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 8; +} + +// BoolRules describes the constraints applied to `bool` values +message BoolRules { + // Const specifies that this field must be exactly the specified value + optional bool const = 1; +} + +// StringRules describe the constraints applied to `string` values +message StringRules { + // Const specifies that this field must be exactly the specified value + optional string const = 1; + + // Len specifies that this field must be the specified number of + // characters (Unicode code points). Note that the number of + // characters may differ from the number of bytes in the string. + optional uint64 len = 19; + + // MinLen specifies that this field must be the specified number of + // characters (Unicode code points) at a minimum. Note that the number of + // characters may differ from the number of bytes in the string. + optional uint64 min_len = 2; + + // MaxLen specifies that this field must be the specified number of + // characters (Unicode code points) at a maximum. Note that the number of + // characters may differ from the number of bytes in the string. + optional uint64 max_len = 3; + + // LenBytes specifies that this field must be the specified number of bytes + // at a minimum + optional uint64 len_bytes = 20; + + // MinBytes specifies that this field must be the specified number of bytes + // at a minimum + optional uint64 min_bytes = 4; + + // MaxBytes specifies that this field must be the specified number of bytes + // at a maximum + optional uint64 max_bytes = 5; + + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + optional string pattern = 6; + + // Prefix specifies that this field must have the specified substring at + // the beginning of the string. + optional string prefix = 7; + + // Suffix specifies that this field must have the specified substring at + // the end of the string. + optional string suffix = 8; + + // Contains specifies that this field must have the specified substring + // anywhere in the string. + optional string contains = 9; + + // NotContains specifies that this field cannot have the specified substring + // anywhere in the string. + optional string not_contains = 23; + + // In specifies that this field must be equal to one of the specified + // values + repeated string in = 10; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated string not_in = 11; + + // WellKnown rules provide advanced constraints against common string + // patterns + oneof well_known { + // Email specifies that the field must be a valid email address as + // defined by RFC 5322 + bool email = 12; + + // Hostname specifies that the field must be a valid hostname as + // defined by RFC 1034. This constraint does not support + // internationalized domain names (IDNs). + bool hostname = 13; + + // Ip specifies that the field must be a valid IP (v4 or v6) address. + // Valid IPv6 addresses should not include surrounding square brackets. + bool ip = 14; + + // Ipv4 specifies that the field must be a valid IPv4 address. + bool ipv4 = 15; + + // Ipv6 specifies that the field must be a valid IPv6 address. Valid + // IPv6 addresses should not include surrounding square brackets. + bool ipv6 = 16; + + // Uri specifies that the field must be a valid, absolute URI as defined + // by RFC 3986 + bool uri = 17; + + // UriRef specifies that the field must be a valid URI as defined by RFC + // 3986 and may be relative or absolute. + bool uri_ref = 18; + + // Address specifies that the field must be either a valid hostname as + // defined by RFC 1034 (which does not support internationalized domain + // names or IDNs), or it can be a valid IP (v4 or v6). + bool address = 21; + + // Uuid specifies that the field must be a valid UUID as defined by + // RFC 4122 + bool uuid = 22; + + // WellKnownRegex specifies a common well known pattern defined as a regex. + KnownRegex well_known_regex = 24; + + // Alphabets specifies that the field can only contain alphabets. e.g. aA + bool alphabets = 27; + + // Alphanums specifies that the field should contain both alphabet(s) and number(s). e.g. aA1 + bool alphanums = 28; + + // Lowercase specifies that the field can only contain lowercase alphabet(s). e.g. aa + bool lowercase = 29; + + // tsecstr specifies that the field can only contain secured strings + bool tsecstr = 30; + } + + // This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable + // strict header validation. + // By default, this is true, and HTTP header validations are RFC-compliant. + // Setting to false will enable a looser validations that only disallows + // \r\n\0 characters, which can be used to bypass header matching rules. + optional bool strict = 25 [default = true]; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 26; +} + +// WellKnownRegex contain some well-known patterns. +enum KnownRegex { + UNKNOWN = 0; + + // HTTP header name as defined by RFC 7230. + HTTP_HEADER_NAME = 1; + + // HTTP header value as defined by RFC 7230. + HTTP_HEADER_VALUE = 2; +} + +// BytesRules describe the constraints applied to `bytes` values +message BytesRules { + // Const specifies that this field must be exactly the specified value + optional bytes const = 1; + + // Len specifies that this field must be the specified number of bytes + optional uint64 len = 13; + + // MinLen specifies that this field must be the specified number of bytes + // at a minimum + optional uint64 min_len = 2; + + // MaxLen specifies that this field must be the specified number of bytes + // at a maximum + optional uint64 max_len = 3; + + // Pattern specifes that this field must match against the specified + // regular expression (RE2 syntax). The included expression should elide + // any delimiters. + optional string pattern = 4; + + // Prefix specifies that this field must have the specified bytes at the + // beginning of the string. + optional bytes prefix = 5; + + // Suffix specifies that this field must have the specified bytes at the + // end of the string. + optional bytes suffix = 6; + + // Contains specifies that this field must have the specified bytes + // anywhere in the string. + optional bytes contains = 7; + + // In specifies that this field must be equal to one of the specified + // values + repeated bytes in = 8; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated bytes not_in = 9; + + // WellKnown rules provide advanced constraints against common byte + // patterns + oneof well_known { + // Ip specifies that the field must be a valid IP (v4 or v6) address in + // byte format + bool ip = 10; + + // Ipv4 specifies that the field must be a valid IPv4 address in byte + // format + bool ipv4 = 11; + + // Ipv6 specifies that the field must be a valid IPv6 address in byte + // format + bool ipv6 = 12; + } + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 14; +} + +// EnumRules describe the constraints applied to enum values +message EnumRules { + // Const specifies that this field must be exactly the specified value + optional int32 const = 1; + + // DefinedOnly specifies that this field must be only one of the defined + // values for this enum, failing on any undefined value. + optional bool defined_only = 2; + + // In specifies that this field must be equal to one of the specified + // values + repeated int32 in = 3; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated int32 not_in = 4; +} + +// MessageRules describe the constraints applied to embedded message values. +// For message-type fields, validation is performed recursively. +message MessageRules { + // Skip specifies that the validation rules of this field should not be + // evaluated + optional bool skip = 1; + + // Required specifies that this field must be set + optional bool required = 2; +} + +// RepeatedRules describe the constraints applied to `repeated` values +message RepeatedRules { + // MinItems specifies that this field must have the specified number of + // items at a minimum + optional uint64 min_items = 1; + + // MaxItems specifies that this field must have the specified number of + // items at a maximum + optional uint64 max_items = 2; + + // Unique specifies that all elements in this field must be unique. This + // contraint is only applicable to scalar and enum types (messages are not + // supported). + optional bool unique = 3; + + // Items specifies the contraints to be applied to each item in the field. + // Repeated message fields will still execute validation against each item + // unless skip is specified here. + optional FieldRules items = 4; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 5; +} + +// MapRules describe the constraints applied to `map` values +message MapRules { + // MinPairs specifies that this field must have the specified number of + // KVs at a minimum + optional uint64 min_pairs = 1; + + // MaxPairs specifies that this field must have the specified number of + // KVs at a maximum + optional uint64 max_pairs = 2; + + // NoSparse specifies values in this field cannot be unset. This only + // applies to map's with message value types. + optional bool no_sparse = 3; + + // Keys specifies the constraints to be applied to each key in the field. + optional FieldRules keys = 4; + + // Values specifies the constraints to be applied to the value of each key + // in the field. Message values will still have their validations evaluated + // unless skip is specified here. + optional FieldRules values = 5; + + // IgnoreEmpty specifies that the validation rules of this field should be + // evaluated only if the field is not empty + optional bool ignore_empty = 6; +} + +// AnyRules describe constraints applied exclusively to the +// `google.protobuf.Any` well-known type +message AnyRules { + // Required specifies that this field must be set + optional bool required = 1; + + // In specifies that this field's `type_url` must be equal to one of the + // specified values. + repeated string in = 2; + + // NotIn specifies that this field's `type_url` must not be equal to any of + // the specified values. + repeated string not_in = 3; +} + +// DurationRules describe the constraints applied exclusively to the +// `google.protobuf.Duration` well-known type +message DurationRules { + // Required specifies that this field must be set + optional bool required = 1; + + // Const specifies that this field must be exactly the specified value + optional google.protobuf.Duration const = 2; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional google.protobuf.Duration lt = 3; + + // Lt specifies that this field must be less than the specified value, + // inclusive + optional google.protobuf.Duration lte = 4; + + // Gt specifies that this field must be greater than the specified value, + // exclusive + optional google.protobuf.Duration gt = 5; + + // Gte specifies that this field must be greater than the specified value, + // inclusive + optional google.protobuf.Duration gte = 6; + + // In specifies that this field must be equal to one of the specified + // values + repeated google.protobuf.Duration in = 7; + + // NotIn specifies that this field cannot be equal to one of the specified + // values + repeated google.protobuf.Duration not_in = 8; +} + +// TimestampRules describe the constraints applied exclusively to the +// `google.protobuf.Timestamp` well-known type +message TimestampRules { + // Required specifies that this field must be set + optional bool required = 1; + + // Const specifies that this field must be exactly the specified value + optional google.protobuf.Timestamp const = 2; + + // Lt specifies that this field must be less than the specified value, + // exclusive + optional google.protobuf.Timestamp lt = 3; + + // Lte specifies that this field must be less than the specified value, + // inclusive + optional google.protobuf.Timestamp lte = 4; + + // Gt specifies that this field must be greater than the specified value, + // exclusive + optional google.protobuf.Timestamp gt = 5; + + // Gte specifies that this field must be greater than the specified value, + // inclusive + optional google.protobuf.Timestamp gte = 6; + + // LtNow specifies that this must be less than the current time. LtNow + // can only be used with the Within rule. + optional bool lt_now = 7; + + // GtNow specifies that this must be greater than the current time. GtNow + // can only be used with the Within rule. + optional bool gt_now = 8; + + // Within specifies that this field must be within this duration of the + // current time. This constraint can be used alone or with the LtNow and + // GtNow rules. + optional google.protobuf.Duration within = 9; +} \ No newline at end of file From c2b996534598ade0fca44ecc74f16085c2d4c6c1 Mon Sep 17 00:00:00 2001 From: wineguo Date: Wed, 30 Nov 2022 14:47:27 +0800 Subject: [PATCH 66/85] =?UTF-8?q?rick=20=E5=9C=A8=E6=94=AF=E6=8C=81=20trpc?= =?UTF-8?q?/v2=20=E5=BD=A2=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TAPD: --story=880251209 --- CHANGELOG.md | 5 + Makefile | 16 +- README.md | 42 + pb/go/trpc/api/annotations.pb.go | 2 +- pb/go/trpc/api/http.pb.go | 2 +- pb/go/trpc/go.mod | 2 +- pb/go/trpc/proto/trpc_options.pb.go | 2 +- pb/go/trpc/swagger/swagger.pb.go | 2 +- pb/go/trpc/trpc.pb.go | 2 +- pb/go/trpc/v2/api/annotations.pb.go | 100 ++ pb/go/{trpcv2 => trpc/v2}/api/http.pb.go | 144 +- pb/go/{trpcv2 => trpc/v2}/go.mod | 4 +- pb/go/{trpcv2 => trpc/v2}/go.sum | 0 pb/go/trpc/v2/proto/trpc_options.pb.go | 114 ++ pb/go/trpc/v2/swagger/swagger.pb.go | 291 ++++ pb/go/{trpcv2 => trpc/v2}/trpc.pb.go | 808 +++++------ .../v2}/validate/validate.pb.go | 1220 +++++++++-------- pb/go/trpc/validate/validate.pb.go | 2 +- pb/go/trpcv2/api/annotations.pb.go | 100 -- pb/go/trpcv2/proto/trpc_options.pb.go | 114 -- pb/go/trpcv2/swagger/swagger.pb.go | 291 ---- {trpcv2 => trpc/v2}/BUILD | 0 {trpcv2 => trpc/v2}/api/BUILD | 2 +- {trpcv2 => trpc/v2}/api/annotations.proto | 6 +- {trpcv2 => trpc/v2}/api/http.proto | 4 +- {trpcv2 => trpc/v2}/proto/BUILD | 0 {trpcv2 => trpc/v2}/proto/trpc_options.proto | 4 +- {trpcv2 => trpc/v2}/swagger/BUILD | 0 {trpcv2 => trpc/v2}/swagger/swagger.proto | 4 +- {trpcv2 => trpc/v2}/trpc.proto | 4 +- {trpcv2 => trpc/v2}/validate/BUILD | 0 {trpcv2 => trpc/v2}/validate/validate.proto | 4 +- 32 files changed, 1670 insertions(+), 1621 deletions(-) create mode 100644 pb/go/trpc/v2/api/annotations.pb.go rename pb/go/{trpcv2 => trpc/v2}/api/http.pb.go (60%) rename pb/go/{trpcv2 => trpc/v2}/go.mod (58%) rename pb/go/{trpcv2 => trpc/v2}/go.sum (100%) create mode 100644 pb/go/trpc/v2/proto/trpc_options.pb.go create mode 100644 pb/go/trpc/v2/swagger/swagger.pb.go rename pb/go/{trpcv2 => trpc/v2}/trpc.pb.go (60%) rename pb/go/{trpcv2 => trpc/v2}/validate/validate.pb.go (67%) delete mode 100644 pb/go/trpcv2/api/annotations.pb.go delete mode 100644 pb/go/trpcv2/proto/trpc_options.pb.go delete mode 100644 pb/go/trpcv2/swagger/swagger.pb.go rename {trpcv2 => trpc/v2}/BUILD (100%) rename {trpcv2 => trpc/v2}/api/BUILD (89%) rename {trpcv2 => trpc/v2}/api/annotations.proto (59%) rename {trpcv2 => trpc/v2}/api/http.proto (96%) rename {trpcv2 => trpc/v2}/proto/BUILD (100%) rename {trpcv2 => trpc/v2}/proto/trpc_options.proto (73%) rename {trpcv2 => trpc/v2}/swagger/BUILD (100%) rename {trpcv2 => trpc/v2}/swagger/swagger.proto (83%) rename {trpcv2 => trpc/v2}/trpc.proto (99%) rename {trpcv2 => trpc/v2}/validate/BUILD (100%) rename {trpcv2 => trpc/v2}/validate/validate.proto (99%) diff --git a/CHANGELOG.md b/CHANGELOG.md index e66ab73..cc9956a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change Log +## [pb/go/trpc/v2.0.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v2.0.0)(2022-11-30) + +- 修整 trpc 目录下各个 proto 文件的路径名以规范化 +- 提供 trpc/v2 子目录以供 trpc-go trpc.tech v2 使用 + ## [0.2.1](https://git.woa.com/trpc/trpc-protocol/tree/v0.2.1)(2022-08-12) ### Features And Improvements - snappy新增两种的压缩类型(block/stream),以应对不同语言snappy的sdk实现差异 diff --git a/Makefile b/Makefile index f93eebc..47af0d9 100644 --- a/Makefile +++ b/Makefile @@ -19,17 +19,17 @@ all: # trpc v2 protoc -I/usr/local/include -I.\ --go_out=paths=source_relative:./$(DIR) \ - ./trpcv2/api/annotations.proto \ - ./trpcv2/api/http.proto + ./trpc/v2/api/annotations.proto \ + ./trpc/v2/api/http.proto protoc -I/usr/local/include -I.\ --go_out=./$(DIR) \ - ./trpcv2/trpc.proto \ - ./trpcv2/proto/trpc_options.proto \ - ./trpcv2/swagger/swagger.proto \ - ./trpcv2/validate/validate.proto - mv $(DIR)/git.woa.com/trpc/trpc-protocol/pb/go/trpcv2/* $(DIR)/trpcv2 + ./trpc/v2/trpc.proto \ + ./trpc/v2/proto/trpc_options.proto \ + ./trpc/v2/swagger/swagger.proto \ + ./trpc/v2/validate/validate.proto + mv $(DIR)/git.woa.com/trpc/trpc-protocol/pb/go/trpc/v2/* $(DIR)/trpc/v2 rm -rf $(DIR)/git.woa.com - cd ./$(DIR)/trpcv2 && go mod init git.woa.com/trpc/trpc-protocol/$(DIR)/trpcv2 && go mod tidy && cd - + cd ./$(DIR)/trpc/v2 && go mod init git.woa.com/trpc/trpc-protocol/$(DIR)/trpc/v2 && go mod tidy && cd - .PHONY: test clean diff --git a/README.md b/README.md index d0b4c01..ed87ec0 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,45 @@ trpc 统一协议的设计和定义 - 框架使用的 key 以 `trpc_` 开头,具体常量定义在框架代码中统一管理; - 业务自定义 key 以 `app_` 开头,防止重复,不能以 `trpc_` 开头; + +目录结构: + +```shell +trpc +├── api # 包含 restful 功能所需的 proto 文件 +│ ├── annotations.proto +│ └── http.proto +├── proto # 包含 alias 功能所需的 proto 文件 +│ └── trpc_options.proto +├── swagger # 包含 swagger 功能所需的 proto 文件 +│ └── swagger.proto +├── trpc.proto # trpc 协议 proto 文件 +├── validate # 包含 validate 功能所需的 proto 文件 +| └── validate.proto +└── v2 # v2 子目录, 内部结构和 trpc 目录一致 + ├── api + │ ├── annotations.proto + │ └── http.proto + ├── BUILD + ├── proto + │ └── trpc_options.proto + ├── swagger + │ └── swagger.proto + ├── trpc.proto + └── validate + └── validate.proto +``` + +`v2` 目录的存在是为了应对 trpc-go 在 v0.x.x 和 v2.x.x 之间的共存问题, 由于 module name 的变更, v0.x.x 和 v2.x.x 本质上是两个仓库 + +这意味着假如他们仍然使用同一套 proto 文件桩代码时, 两个仓库在一个项目中被引用的话, proto 相关的信息就会重复注册导致 panic + +为此, v2 版本的 proto 文件及其桩代码需要满足以下三个要求: + +1. 生成桩代码时传给 protoc 的文件名(包含相对路径)共存时不能相同 +2. proto 文件的 package name 不能相同,否则下面的字段在同一个 package 下就会有重复定义 +3. 如果有自定义的 extension,那么 extension number 需要不同(trpc.proto 协议文件不涉及这个问题,annotations.proto 这些会涉及) + +因此添加一个 `v2` 子目录并修改 proto package name 为 `trpc.v2` 可以解决上述问题 + +此外本仓库还作为与 rick 平台 import 路径的统一媒介, 详见文档: [tRPC-Go 代码生成插件 proto 依赖切换](https://doc.weixin.qq.com/doc/w3_AGkAxgZOAFMmQcAOcIkSOWgvNFkY3?scode=AJEAIQdfAAoLH9SMkiAGkAxgZOAFM) diff --git a/pb/go/trpc/api/annotations.pb.go b/pb/go/trpc/api/annotations.pb.go index 74bf6b0..e8eaa27 100644 --- a/pb/go/trpc/api/annotations.pb.go +++ b/pb/go/trpc/api/annotations.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.19.4 +// protoc v3.6.1 // source: trpc/api/annotations.proto package api diff --git a/pb/go/trpc/api/http.pb.go b/pb/go/trpc/api/http.pb.go index 4873e55..3698ad3 100644 --- a/pb/go/trpc/api/http.pb.go +++ b/pb/go/trpc/api/http.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.19.4 +// protoc v3.6.1 // source: trpc/api/http.proto package api diff --git a/pb/go/trpc/go.mod b/pb/go/trpc/go.mod index 482cfe4..97edffb 100644 --- a/pb/go/trpc/go.mod +++ b/pb/go/trpc/go.mod @@ -1,6 +1,6 @@ module git.woa.com/trpc/trpc-protocol/pb/go/trpc -go 1.19 +go 1.16 require ( github.com/golang/protobuf v1.5.2 diff --git a/pb/go/trpc/proto/trpc_options.pb.go b/pb/go/trpc/proto/trpc_options.pb.go index 6360cc4..0163aa1 100644 --- a/pb/go/trpc/proto/trpc_options.pb.go +++ b/pb/go/trpc/proto/trpc_options.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.19.4 +// protoc v3.6.1 // source: trpc/proto/trpc_options.proto package proto diff --git a/pb/go/trpc/swagger/swagger.pb.go b/pb/go/trpc/swagger/swagger.pb.go index a380020..95e0783 100644 --- a/pb/go/trpc/swagger/swagger.pb.go +++ b/pb/go/trpc/swagger/swagger.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.19.4 +// protoc v3.6.1 // source: trpc/swagger/swagger.proto package swagger diff --git a/pb/go/trpc/trpc.pb.go b/pb/go/trpc/trpc.pb.go index bb61c46..0c8216c 100644 --- a/pb/go/trpc/trpc.pb.go +++ b/pb/go/trpc/trpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.19.4 +// protoc v3.6.1 // source: trpc/trpc.proto package trpc diff --git a/pb/go/trpc/v2/api/annotations.pb.go b/pb/go/trpc/v2/api/annotations.pb.go new file mode 100644 index 0000000..d01a505 --- /dev/null +++ b/pb/go/trpc/v2/api/annotations.pb.go @@ -0,0 +1,100 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 +// source: trpc/v2/api/annotations.proto + +package api + +import ( + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var file_trpc_v2_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptor.MethodOptions)(nil), + ExtensionType: (*HttpRule)(nil), + Field: 1157, + Name: "trpc.v2.api.http", + Tag: "bytes,1157,opt,name=http", + Filename: "trpc/v2/api/annotations.proto", + }, +} + +// Extension fields to descriptor.MethodOptions. +var ( + // optional trpc.v2.api.HttpRule http = 1157; + E_Http = &file_trpc_v2_api_annotations_proto_extTypes[0] +) + +var File_trpc_v2_api_annotations_proto protoreflect.FileDescriptor + +var file_trpc_v2_api_annotations_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x0b, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x1a, 0x16, 0x74, 0x72, + 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x4a, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x1e, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x85, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x68, 0x74, + 0x74, 0x70, 0x42, 0x51, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, + 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x65, 0x78, 0x74, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, + 0x32, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_trpc_v2_api_annotations_proto_goTypes = []interface{}{ + (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*HttpRule)(nil), // 1: trpc.v2.api.HttpRule +} +var file_trpc_v2_api_annotations_proto_depIdxs = []int32{ + 0, // 0: trpc.v2.api.http:extendee -> google.protobuf.MethodOptions + 1, // 1: trpc.v2.api.http:type_name -> trpc.v2.api.HttpRule + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 1, // [1:2] is the sub-list for extension type_name + 0, // [0:1] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_trpc_v2_api_annotations_proto_init() } +func file_trpc_v2_api_annotations_proto_init() { + if File_trpc_v2_api_annotations_proto != nil { + return + } + file_trpc_v2_api_http_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_v2_api_annotations_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 1, + NumServices: 0, + }, + GoTypes: file_trpc_v2_api_annotations_proto_goTypes, + DependencyIndexes: file_trpc_v2_api_annotations_proto_depIdxs, + ExtensionInfos: file_trpc_v2_api_annotations_proto_extTypes, + }.Build() + File_trpc_v2_api_annotations_proto = out.File + file_trpc_v2_api_annotations_proto_rawDesc = nil + file_trpc_v2_api_annotations_proto_goTypes = nil + file_trpc_v2_api_annotations_proto_depIdxs = nil +} diff --git a/pb/go/trpcv2/api/http.pb.go b/pb/go/trpc/v2/api/http.pb.go similarity index 60% rename from pb/go/trpcv2/api/http.pb.go rename to pb/go/trpc/v2/api/http.pb.go index 609d34e..2b74c82 100644 --- a/pb/go/trpcv2/api/http.pb.go +++ b/pb/go/trpc/v2/api/http.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.19.4 -// source: trpcv2/api/http.proto +// protoc v3.6.1 +// source: trpc/v2/api/http.proto package api @@ -64,7 +64,7 @@ type HttpRule struct { func (x *HttpRule) Reset() { *x = HttpRule{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_api_http_proto_msgTypes[0] + mi := &file_trpc_v2_api_http_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77,7 +77,7 @@ func (x *HttpRule) String() string { func (*HttpRule) ProtoMessage() {} func (x *HttpRule) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_api_http_proto_msgTypes[0] + mi := &file_trpc_v2_api_http_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90,7 +90,7 @@ func (x *HttpRule) ProtoReflect() protoreflect.Message { // Deprecated: Use HttpRule.ProtoReflect.Descriptor instead. func (*HttpRule) Descriptor() ([]byte, []int) { - return file_trpcv2_api_http_proto_rawDescGZIP(), []int{0} + return file_trpc_v2_api_http_proto_rawDescGZIP(), []int{0} } func (x *HttpRule) GetSelector() string { @@ -235,7 +235,7 @@ type CustomHttpPattern struct { func (x *CustomHttpPattern) Reset() { *x = CustomHttpPattern{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_api_http_proto_msgTypes[1] + mi := &file_trpc_v2_api_http_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -248,7 +248,7 @@ func (x *CustomHttpPattern) String() string { func (*CustomHttpPattern) ProtoMessage() {} func (x *CustomHttpPattern) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_api_http_proto_msgTypes[1] + mi := &file_trpc_v2_api_http_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -261,7 +261,7 @@ func (x *CustomHttpPattern) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomHttpPattern.ProtoReflect.Descriptor instead. func (*CustomHttpPattern) Descriptor() ([]byte, []int) { - return file_trpcv2_api_http_proto_rawDescGZIP(), []int{1} + return file_trpc_v2_api_http_proto_rawDescGZIP(), []int{1} } func (x *CustomHttpPattern) GetKind() string { @@ -278,65 +278,65 @@ func (x *CustomHttpPattern) GetPath() string { return "" } -var File_trpcv2_api_http_proto protoreflect.FileDescriptor - -var file_trpcv2_api_http_proto_rawDesc = []byte{ - 0x0a, 0x15, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, - 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, - 0x61, 0x70, 0x69, 0x22, 0xda, 0x02, 0x0a, 0x08, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x03, - 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, 0x74, - 0x12, 0x12, 0x0a, 0x03, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x03, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, - 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x45, - 0x0a, 0x13, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x72, - 0x70, 0x63, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, - 0x65, 0x52, 0x12, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x22, 0x3b, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x50, 0x0a, - 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, - 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x2f, - 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, - 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, - 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +var File_trpc_v2_api_http_proto protoreflect.FileDescriptor + +var file_trpc_v2_api_http_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, + 0x74, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x32, 0x2e, 0x61, 0x70, 0x69, 0x22, 0xdc, 0x02, 0x0a, 0x08, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, + 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, + 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x67, + 0x65, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x03, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x06, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x38, + 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, + 0x79, 0x12, 0x46, 0x0a, 0x13, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, + 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, + 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x12, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x22, 0x3b, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x74, + 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x42, 0x51, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, + 0x78, 0x74, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, + 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_trpcv2_api_http_proto_rawDescOnce sync.Once - file_trpcv2_api_http_proto_rawDescData = file_trpcv2_api_http_proto_rawDesc + file_trpc_v2_api_http_proto_rawDescOnce sync.Once + file_trpc_v2_api_http_proto_rawDescData = file_trpc_v2_api_http_proto_rawDesc ) -func file_trpcv2_api_http_proto_rawDescGZIP() []byte { - file_trpcv2_api_http_proto_rawDescOnce.Do(func() { - file_trpcv2_api_http_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpcv2_api_http_proto_rawDescData) +func file_trpc_v2_api_http_proto_rawDescGZIP() []byte { + file_trpc_v2_api_http_proto_rawDescOnce.Do(func() { + file_trpc_v2_api_http_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_v2_api_http_proto_rawDescData) }) - return file_trpcv2_api_http_proto_rawDescData + return file_trpc_v2_api_http_proto_rawDescData } -var file_trpcv2_api_http_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_trpcv2_api_http_proto_goTypes = []interface{}{ - (*HttpRule)(nil), // 0: trpcv2.api.HttpRule - (*CustomHttpPattern)(nil), // 1: trpcv2.api.CustomHttpPattern +var file_trpc_v2_api_http_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_trpc_v2_api_http_proto_goTypes = []interface{}{ + (*HttpRule)(nil), // 0: trpc.v2.api.HttpRule + (*CustomHttpPattern)(nil), // 1: trpc.v2.api.CustomHttpPattern } -var file_trpcv2_api_http_proto_depIdxs = []int32{ - 1, // 0: trpcv2.api.HttpRule.custom:type_name -> trpcv2.api.CustomHttpPattern - 0, // 1: trpcv2.api.HttpRule.additional_bindings:type_name -> trpcv2.api.HttpRule +var file_trpc_v2_api_http_proto_depIdxs = []int32{ + 1, // 0: trpc.v2.api.HttpRule.custom:type_name -> trpc.v2.api.CustomHttpPattern + 0, // 1: trpc.v2.api.HttpRule.additional_bindings:type_name -> trpc.v2.api.HttpRule 2, // [2:2] is the sub-list for method output_type 2, // [2:2] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name @@ -344,13 +344,13 @@ var file_trpcv2_api_http_proto_depIdxs = []int32{ 0, // [0:2] is the sub-list for field type_name } -func init() { file_trpcv2_api_http_proto_init() } -func file_trpcv2_api_http_proto_init() { - if File_trpcv2_api_http_proto != nil { +func init() { file_trpc_v2_api_http_proto_init() } +func file_trpc_v2_api_http_proto_init() { + if File_trpc_v2_api_http_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_trpcv2_api_http_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_api_http_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HttpRule); i { case 0: return &v.state @@ -362,7 +362,7 @@ func file_trpcv2_api_http_proto_init() { return nil } } - file_trpcv2_api_http_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_api_http_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomHttpPattern); i { case 0: return &v.state @@ -375,7 +375,7 @@ func file_trpcv2_api_http_proto_init() { } } } - file_trpcv2_api_http_proto_msgTypes[0].OneofWrappers = []interface{}{ + file_trpc_v2_api_http_proto_msgTypes[0].OneofWrappers = []interface{}{ (*HttpRule_Get)(nil), (*HttpRule_Put)(nil), (*HttpRule_Post)(nil), @@ -387,18 +387,18 @@ func file_trpcv2_api_http_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_trpcv2_api_http_proto_rawDesc, + RawDescriptor: file_trpc_v2_api_http_proto_rawDesc, NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_trpcv2_api_http_proto_goTypes, - DependencyIndexes: file_trpcv2_api_http_proto_depIdxs, - MessageInfos: file_trpcv2_api_http_proto_msgTypes, + GoTypes: file_trpc_v2_api_http_proto_goTypes, + DependencyIndexes: file_trpc_v2_api_http_proto_depIdxs, + MessageInfos: file_trpc_v2_api_http_proto_msgTypes, }.Build() - File_trpcv2_api_http_proto = out.File - file_trpcv2_api_http_proto_rawDesc = nil - file_trpcv2_api_http_proto_goTypes = nil - file_trpcv2_api_http_proto_depIdxs = nil + File_trpc_v2_api_http_proto = out.File + file_trpc_v2_api_http_proto_rawDesc = nil + file_trpc_v2_api_http_proto_goTypes = nil + file_trpc_v2_api_http_proto_depIdxs = nil } diff --git a/pb/go/trpcv2/go.mod b/pb/go/trpc/v2/go.mod similarity index 58% rename from pb/go/trpcv2/go.mod rename to pb/go/trpc/v2/go.mod index 02332d9..b532695 100644 --- a/pb/go/trpcv2/go.mod +++ b/pb/go/trpc/v2/go.mod @@ -1,6 +1,6 @@ -module git.woa.com/trpc/trpc-protocol/pb/go/trpcv2 +module git.woa.com/trpc/trpc-protocol/pb/go/trpc/v2 -go 1.19 +go 1.16 require ( github.com/golang/protobuf v1.5.2 diff --git a/pb/go/trpcv2/go.sum b/pb/go/trpc/v2/go.sum similarity index 100% rename from pb/go/trpcv2/go.sum rename to pb/go/trpc/v2/go.sum diff --git a/pb/go/trpc/v2/proto/trpc_options.pb.go b/pb/go/trpc/v2/proto/trpc_options.pb.go new file mode 100644 index 0000000..1956f0a --- /dev/null +++ b/pb/go/trpc/v2/proto/trpc_options.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 +// source: trpc/v2/proto/trpc_options.proto + +package proto + +import ( + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var file_trpc_v2_proto_trpc_options_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptor.MethodOptions)(nil), + ExtensionType: (*string)(nil), + Field: 1155, + Name: "trpc.v2.alias", + Tag: "bytes,1155,opt,name=alias", + Filename: "trpc/v2/proto/trpc_options.proto", + }, + { + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 1156, + Name: "trpc.v2.go_tag", + Tag: "bytes,1156,opt,name=go_tag", + Filename: "trpc/v2/proto/trpc_options.proto", + }, +} + +// Extension fields to descriptor.MethodOptions. +var ( + // optional string alias = 1155; + E_Alias = &file_trpc_v2_proto_trpc_options_proto_extTypes[0] +) + +// Extension fields to descriptor.FieldOptions. +var ( + // optional string go_tag = 1156; + E_GoTag = &file_trpc_v2_proto_trpc_options_proto_extTypes[1] +) + +var File_trpc_v2_proto_trpc_options_proto protoreflect.FileDescriptor + +var file_trpc_v2_proto_trpc_options_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x07, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x1a, 0x20, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x35, 0x0a, + 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, + 0x6c, 0x69, 0x61, 0x73, 0x3a, 0x35, 0x0a, 0x06, 0x67, 0x6f, 0x5f, 0x74, 0x61, 0x67, 0x12, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x84, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x53, 0x0a, 0x1d, 0x63, + 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x32, 0x67, 0x69, + 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, + 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_trpc_v2_proto_trpc_options_proto_goTypes = []interface{}{ + (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*descriptor.FieldOptions)(nil), // 1: google.protobuf.FieldOptions +} +var file_trpc_v2_proto_trpc_options_proto_depIdxs = []int32{ + 0, // 0: trpc.v2.alias:extendee -> google.protobuf.MethodOptions + 1, // 1: trpc.v2.go_tag:extendee -> google.protobuf.FieldOptions + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 0, // [0:2] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_trpc_v2_proto_trpc_options_proto_init() } +func file_trpc_v2_proto_trpc_options_proto_init() { + if File_trpc_v2_proto_trpc_options_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_v2_proto_trpc_options_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 2, + NumServices: 0, + }, + GoTypes: file_trpc_v2_proto_trpc_options_proto_goTypes, + DependencyIndexes: file_trpc_v2_proto_trpc_options_proto_depIdxs, + ExtensionInfos: file_trpc_v2_proto_trpc_options_proto_extTypes, + }.Build() + File_trpc_v2_proto_trpc_options_proto = out.File + file_trpc_v2_proto_trpc_options_proto_rawDesc = nil + file_trpc_v2_proto_trpc_options_proto_goTypes = nil + file_trpc_v2_proto_trpc_options_proto_depIdxs = nil +} diff --git a/pb/go/trpc/v2/swagger/swagger.pb.go b/pb/go/trpc/v2/swagger/swagger.pb.go new file mode 100644 index 0000000..5de99a6 --- /dev/null +++ b/pb/go/trpc/v2/swagger/swagger.pb.go @@ -0,0 +1,291 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 +// source: trpc/v2/swagger/swagger.proto + +package swagger + +import ( + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// to gen swagger json +type SwaggerRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,50103,opt,name=title,proto3" json:"title,omitempty"` + Method string `protobuf:"bytes,50104,opt,name=method,proto3" json:"method,omitempty"` + Description string `protobuf:"bytes,50105,opt,name=description,proto3" json:"description,omitempty"` + Params []*SwaggerParam `protobuf:"bytes,50106,rep,name=params,proto3" json:"params,omitempty"` +} + +func (x *SwaggerRule) Reset() { + *x = SwaggerRule{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_swagger_swagger_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwaggerRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwaggerRule) ProtoMessage() {} + +func (x *SwaggerRule) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_swagger_swagger_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwaggerRule.ProtoReflect.Descriptor instead. +func (*SwaggerRule) Descriptor() ([]byte, []int) { + return file_trpc_v2_swagger_swagger_proto_rawDescGZIP(), []int{0} +} + +func (x *SwaggerRule) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *SwaggerRule) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +func (x *SwaggerRule) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *SwaggerRule) GetParams() []*SwaggerParam { + if x != nil { + return x.Params + } + return nil +} + +type SwaggerParam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Required bool `protobuf:"varint,2,opt,name=required,proto3" json:"required,omitempty"` + Default string `protobuf:"bytes,3,opt,name=default,proto3" json:"default,omitempty"` +} + +func (x *SwaggerParam) Reset() { + *x = SwaggerParam{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_v2_swagger_swagger_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwaggerParam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwaggerParam) ProtoMessage() {} + +func (x *SwaggerParam) ProtoReflect() protoreflect.Message { + mi := &file_trpc_v2_swagger_swagger_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwaggerParam.ProtoReflect.Descriptor instead. +func (*SwaggerParam) Descriptor() ([]byte, []int) { + return file_trpc_v2_swagger_swagger_proto_rawDescGZIP(), []int{1} +} + +func (x *SwaggerParam) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SwaggerParam) GetRequired() bool { + if x != nil { + return x.Required + } + return false +} + +func (x *SwaggerParam) GetDefault() string { + if x != nil { + return x.Default + } + return "" +} + +var file_trpc_v2_swagger_swagger_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptor.MethodOptions)(nil), + ExtensionType: (*SwaggerRule)(nil), + Field: 1156, + Name: "trpc.v2.swagger", + Tag: "bytes,1156,opt,name=swagger", + Filename: "trpc/v2/swagger/swagger.proto", + }, +} + +// Extension fields to descriptor.MethodOptions. +var ( + // optional trpc.v2.SwaggerRule swagger = 1156; + E_Swagger = &file_trpc_v2_swagger_swagger_proto_extTypes[0] +) + +var File_trpc_v2_swagger_swagger_proto protoreflect.FileDescriptor + +var file_trpc_v2_swagger_swagger_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, + 0x72, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x07, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x94, 0x01, 0x0a, 0x0b, 0x53, + 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0xb7, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0xb8, 0x87, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x22, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xb9, 0x87, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x2f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0xba, 0x87, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x77, 0x61, + 0x67, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x22, 0x58, 0x0a, 0x0c, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x4f, 0x0a, 0x07, 0x73, + 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x84, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x52, + 0x75, 0x6c, 0x65, 0x52, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x42, 0x55, 0x0a, 0x1d, + 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x34, 0x67, + 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, + 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x77, 0x61, 0x67, + 0x67, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpc_v2_swagger_swagger_proto_rawDescOnce sync.Once + file_trpc_v2_swagger_swagger_proto_rawDescData = file_trpc_v2_swagger_swagger_proto_rawDesc +) + +func file_trpc_v2_swagger_swagger_proto_rawDescGZIP() []byte { + file_trpc_v2_swagger_swagger_proto_rawDescOnce.Do(func() { + file_trpc_v2_swagger_swagger_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_v2_swagger_swagger_proto_rawDescData) + }) + return file_trpc_v2_swagger_swagger_proto_rawDescData +} + +var file_trpc_v2_swagger_swagger_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_trpc_v2_swagger_swagger_proto_goTypes = []interface{}{ + (*SwaggerRule)(nil), // 0: trpc.v2.SwaggerRule + (*SwaggerParam)(nil), // 1: trpc.v2.SwaggerParam + (*descriptor.MethodOptions)(nil), // 2: google.protobuf.MethodOptions +} +var file_trpc_v2_swagger_swagger_proto_depIdxs = []int32{ + 1, // 0: trpc.v2.SwaggerRule.params:type_name -> trpc.v2.SwaggerParam + 2, // 1: trpc.v2.swagger:extendee -> google.protobuf.MethodOptions + 0, // 2: trpc.v2.swagger:type_name -> trpc.v2.SwaggerRule + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 2, // [2:3] is the sub-list for extension type_name + 1, // [1:2] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_trpc_v2_swagger_swagger_proto_init() } +func file_trpc_v2_swagger_swagger_proto_init() { + if File_trpc_v2_swagger_swagger_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpc_v2_swagger_swagger_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwaggerRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_v2_swagger_swagger_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwaggerParam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_v2_swagger_swagger_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 1, + NumServices: 0, + }, + GoTypes: file_trpc_v2_swagger_swagger_proto_goTypes, + DependencyIndexes: file_trpc_v2_swagger_swagger_proto_depIdxs, + MessageInfos: file_trpc_v2_swagger_swagger_proto_msgTypes, + ExtensionInfos: file_trpc_v2_swagger_swagger_proto_extTypes, + }.Build() + File_trpc_v2_swagger_swagger_proto = out.File + file_trpc_v2_swagger_swagger_proto_rawDesc = nil + file_trpc_v2_swagger_swagger_proto_goTypes = nil + file_trpc_v2_swagger_swagger_proto_depIdxs = nil +} diff --git a/pb/go/trpcv2/trpc.pb.go b/pb/go/trpc/v2/trpc.pb.go similarity index 60% rename from pb/go/trpcv2/trpc.pb.go rename to pb/go/trpc/v2/trpc.pb.go index e0fc6cf..ae30bed 100644 --- a/pb/go/trpcv2/trpc.pb.go +++ b/pb/go/trpc/v2/trpc.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.19.4 -// source: trpcv2/trpc.proto +// protoc v3.6.1 +// source: trpc/v2/trpc.proto package trpc @@ -53,11 +53,11 @@ func (x TrpcMagic) String() string { } func (TrpcMagic) Descriptor() protoreflect.EnumDescriptor { - return file_trpcv2_trpc_proto_enumTypes[0].Descriptor() + return file_trpc_v2_trpc_proto_enumTypes[0].Descriptor() } func (TrpcMagic) Type() protoreflect.EnumType { - return &file_trpcv2_trpc_proto_enumTypes[0] + return &file_trpc_v2_trpc_proto_enumTypes[0] } func (x TrpcMagic) Number() protoreflect.EnumNumber { @@ -66,7 +66,7 @@ func (x TrpcMagic) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcMagic.Descriptor instead. func (TrpcMagic) EnumDescriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{0} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{0} } // trpc协议的二进制数据帧类型 @@ -105,11 +105,11 @@ func (x TrpcDataFrameType) String() string { } func (TrpcDataFrameType) Descriptor() protoreflect.EnumDescriptor { - return file_trpcv2_trpc_proto_enumTypes[1].Descriptor() + return file_trpc_v2_trpc_proto_enumTypes[1].Descriptor() } func (TrpcDataFrameType) Type() protoreflect.EnumType { - return &file_trpcv2_trpc_proto_enumTypes[1] + return &file_trpc_v2_trpc_proto_enumTypes[1] } func (x TrpcDataFrameType) Number() protoreflect.EnumNumber { @@ -118,7 +118,7 @@ func (x TrpcDataFrameType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcDataFrameType.Descriptor instead. func (TrpcDataFrameType) EnumDescriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{1} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{1} } // trpc协议流式的二进制数据帧类型 @@ -172,11 +172,11 @@ func (x TrpcStreamFrameType) String() string { } func (TrpcStreamFrameType) Descriptor() protoreflect.EnumDescriptor { - return file_trpcv2_trpc_proto_enumTypes[2].Descriptor() + return file_trpc_v2_trpc_proto_enumTypes[2].Descriptor() } func (TrpcStreamFrameType) Type() protoreflect.EnumType { - return &file_trpcv2_trpc_proto_enumTypes[2] + return &file_trpc_v2_trpc_proto_enumTypes[2] } func (x TrpcStreamFrameType) Number() protoreflect.EnumNumber { @@ -185,7 +185,7 @@ func (x TrpcStreamFrameType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcStreamFrameType.Descriptor instead. func (TrpcStreamFrameType) EnumDescriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{2} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{2} } // trpc流式关闭类型 @@ -221,11 +221,11 @@ func (x TrpcStreamCloseType) String() string { } func (TrpcStreamCloseType) Descriptor() protoreflect.EnumDescriptor { - return file_trpcv2_trpc_proto_enumTypes[3].Descriptor() + return file_trpc_v2_trpc_proto_enumTypes[3].Descriptor() } func (TrpcStreamCloseType) Type() protoreflect.EnumType { - return &file_trpcv2_trpc_proto_enumTypes[3] + return &file_trpc_v2_trpc_proto_enumTypes[3] } func (x TrpcStreamCloseType) Number() protoreflect.EnumNumber { @@ -234,7 +234,7 @@ func (x TrpcStreamCloseType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcStreamCloseType.Descriptor instead. func (TrpcStreamCloseType) EnumDescriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{3} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{3} } // trpc协议版本 @@ -266,11 +266,11 @@ func (x TrpcProtoVersion) String() string { } func (TrpcProtoVersion) Descriptor() protoreflect.EnumDescriptor { - return file_trpcv2_trpc_proto_enumTypes[4].Descriptor() + return file_trpc_v2_trpc_proto_enumTypes[4].Descriptor() } func (TrpcProtoVersion) Type() protoreflect.EnumType { - return &file_trpcv2_trpc_proto_enumTypes[4] + return &file_trpc_v2_trpc_proto_enumTypes[4] } func (x TrpcProtoVersion) Number() protoreflect.EnumNumber { @@ -279,7 +279,7 @@ func (x TrpcProtoVersion) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcProtoVersion.Descriptor instead. func (TrpcProtoVersion) EnumDescriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{4} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{4} } // trpc协议中的调用类型 @@ -315,11 +315,11 @@ func (x TrpcCallType) String() string { } func (TrpcCallType) Descriptor() protoreflect.EnumDescriptor { - return file_trpcv2_trpc_proto_enumTypes[5].Descriptor() + return file_trpc_v2_trpc_proto_enumTypes[5].Descriptor() } func (TrpcCallType) Type() protoreflect.EnumType { - return &file_trpcv2_trpc_proto_enumTypes[5] + return &file_trpc_v2_trpc_proto_enumTypes[5] } func (x TrpcCallType) Number() protoreflect.EnumNumber { @@ -328,7 +328,7 @@ func (x TrpcCallType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcCallType.Descriptor instead. func (TrpcCallType) EnumDescriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{5} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{5} } // trpc协议中的消息透传支持的类型 @@ -380,11 +380,11 @@ func (x TrpcMessageType) String() string { } func (TrpcMessageType) Descriptor() protoreflect.EnumDescriptor { - return file_trpcv2_trpc_proto_enumTypes[6].Descriptor() + return file_trpc_v2_trpc_proto_enumTypes[6].Descriptor() } func (TrpcMessageType) Type() protoreflect.EnumType { - return &file_trpcv2_trpc_proto_enumTypes[6] + return &file_trpc_v2_trpc_proto_enumTypes[6] } func (x TrpcMessageType) Number() protoreflect.EnumNumber { @@ -393,7 +393,7 @@ func (x TrpcMessageType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcMessageType.Descriptor instead. func (TrpcMessageType) EnumDescriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{6} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{6} } // trpc协议中 data 内容的编码类型 @@ -451,11 +451,11 @@ func (x TrpcContentEncodeType) String() string { } func (TrpcContentEncodeType) Descriptor() protoreflect.EnumDescriptor { - return file_trpcv2_trpc_proto_enumTypes[7].Descriptor() + return file_trpc_v2_trpc_proto_enumTypes[7].Descriptor() } func (TrpcContentEncodeType) Type() protoreflect.EnumType { - return &file_trpcv2_trpc_proto_enumTypes[7] + return &file_trpc_v2_trpc_proto_enumTypes[7] } func (x TrpcContentEncodeType) Number() protoreflect.EnumNumber { @@ -464,7 +464,7 @@ func (x TrpcContentEncodeType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcContentEncodeType.Descriptor instead. func (TrpcContentEncodeType) EnumDescriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{7} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{7} } // trpc协议中 data 内容的压缩类型 @@ -520,11 +520,11 @@ func (x TrpcCompressType) String() string { } func (TrpcCompressType) Descriptor() protoreflect.EnumDescriptor { - return file_trpcv2_trpc_proto_enumTypes[8].Descriptor() + return file_trpc_v2_trpc_proto_enumTypes[8].Descriptor() } func (TrpcCompressType) Type() protoreflect.EnumType { - return &file_trpcv2_trpc_proto_enumTypes[8] + return &file_trpc_v2_trpc_proto_enumTypes[8] } func (x TrpcCompressType) Number() protoreflect.EnumNumber { @@ -533,7 +533,7 @@ func (x TrpcCompressType) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcCompressType.Descriptor instead. func (TrpcCompressType) EnumDescriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{8} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{8} } // 框架层接口调用的返回码定义 @@ -759,11 +759,11 @@ func (x TrpcRetCode) String() string { } func (TrpcRetCode) Descriptor() protoreflect.EnumDescriptor { - return file_trpcv2_trpc_proto_enumTypes[9].Descriptor() + return file_trpc_v2_trpc_proto_enumTypes[9].Descriptor() } func (TrpcRetCode) Type() protoreflect.EnumType { - return &file_trpcv2_trpc_proto_enumTypes[9] + return &file_trpc_v2_trpc_proto_enumTypes[9] } func (x TrpcRetCode) Number() protoreflect.EnumNumber { @@ -772,7 +772,7 @@ func (x TrpcRetCode) Number() protoreflect.EnumNumber { // Deprecated: Use TrpcRetCode.Descriptor instead. func (TrpcRetCode) EnumDescriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{9} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{9} } // trpc流式的流控帧头消息定义 @@ -800,7 +800,7 @@ type TrpcStreamInitMeta struct { func (x *TrpcStreamInitMeta) Reset() { *x = TrpcStreamInitMeta{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_trpc_proto_msgTypes[0] + mi := &file_trpc_v2_trpc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -813,7 +813,7 @@ func (x *TrpcStreamInitMeta) String() string { func (*TrpcStreamInitMeta) ProtoMessage() {} func (x *TrpcStreamInitMeta) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_trpc_proto_msgTypes[0] + mi := &file_trpc_v2_trpc_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -826,7 +826,7 @@ func (x *TrpcStreamInitMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TrpcStreamInitMeta.ProtoReflect.Descriptor instead. func (*TrpcStreamInitMeta) Descriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{0} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{0} } func (x *TrpcStreamInitMeta) GetRequestMeta() *TrpcStreamInitRequestMeta { @@ -894,7 +894,7 @@ type TrpcStreamInitRequestMeta struct { func (x *TrpcStreamInitRequestMeta) Reset() { *x = TrpcStreamInitRequestMeta{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_trpc_proto_msgTypes[1] + mi := &file_trpc_v2_trpc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -907,7 +907,7 @@ func (x *TrpcStreamInitRequestMeta) String() string { func (*TrpcStreamInitRequestMeta) ProtoMessage() {} func (x *TrpcStreamInitRequestMeta) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_trpc_proto_msgTypes[1] + mi := &file_trpc_v2_trpc_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -920,7 +920,7 @@ func (x *TrpcStreamInitRequestMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TrpcStreamInitRequestMeta.ProtoReflect.Descriptor instead. func (*TrpcStreamInitRequestMeta) Descriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{1} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{1} } func (x *TrpcStreamInitRequestMeta) GetCaller() []byte { @@ -975,7 +975,7 @@ type TrpcStreamInitResponseMeta struct { func (x *TrpcStreamInitResponseMeta) Reset() { *x = TrpcStreamInitResponseMeta{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_trpc_proto_msgTypes[2] + mi := &file_trpc_v2_trpc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -988,7 +988,7 @@ func (x *TrpcStreamInitResponseMeta) String() string { func (*TrpcStreamInitResponseMeta) ProtoMessage() {} func (x *TrpcStreamInitResponseMeta) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_trpc_proto_msgTypes[2] + mi := &file_trpc_v2_trpc_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1001,7 +1001,7 @@ func (x *TrpcStreamInitResponseMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TrpcStreamInitResponseMeta.ProtoReflect.Descriptor instead. func (*TrpcStreamInitResponseMeta) Descriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{2} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{2} } func (x *TrpcStreamInitResponseMeta) GetRet() int32 { @@ -1031,7 +1031,7 @@ type TrpcStreamFeedBackMeta struct { func (x *TrpcStreamFeedBackMeta) Reset() { *x = TrpcStreamFeedBackMeta{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_trpc_proto_msgTypes[3] + mi := &file_trpc_v2_trpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1044,7 +1044,7 @@ func (x *TrpcStreamFeedBackMeta) String() string { func (*TrpcStreamFeedBackMeta) ProtoMessage() {} func (x *TrpcStreamFeedBackMeta) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_trpc_proto_msgTypes[3] + mi := &file_trpc_v2_trpc_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1057,7 +1057,7 @@ func (x *TrpcStreamFeedBackMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TrpcStreamFeedBackMeta.ProtoReflect.Descriptor instead. func (*TrpcStreamFeedBackMeta) Descriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{3} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{3} } func (x *TrpcStreamFeedBackMeta) GetWindowSizeIncrement() uint32 { @@ -1096,7 +1096,7 @@ type TrpcStreamCloseMeta struct { func (x *TrpcStreamCloseMeta) Reset() { *x = TrpcStreamCloseMeta{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_trpc_proto_msgTypes[4] + mi := &file_trpc_v2_trpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1109,7 +1109,7 @@ func (x *TrpcStreamCloseMeta) String() string { func (*TrpcStreamCloseMeta) ProtoMessage() {} func (x *TrpcStreamCloseMeta) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_trpc_proto_msgTypes[4] + mi := &file_trpc_v2_trpc_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1122,7 +1122,7 @@ func (x *TrpcStreamCloseMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TrpcStreamCloseMeta.ProtoReflect.Descriptor instead. func (*TrpcStreamCloseMeta) Descriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{4} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{4} } func (x *TrpcStreamCloseMeta) GetCloseType() int32 { @@ -1215,7 +1215,7 @@ type RequestProtocol struct { func (x *RequestProtocol) Reset() { *x = RequestProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_trpc_proto_msgTypes[5] + mi := &file_trpc_v2_trpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1228,7 +1228,7 @@ func (x *RequestProtocol) String() string { func (*RequestProtocol) ProtoMessage() {} func (x *RequestProtocol) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_trpc_proto_msgTypes[5] + mi := &file_trpc_v2_trpc_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1241,7 +1241,7 @@ func (x *RequestProtocol) ProtoReflect() protoreflect.Message { // Deprecated: Use RequestProtocol.ProtoReflect.Descriptor instead. func (*RequestProtocol) Descriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{5} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{5} } func (x *RequestProtocol) GetVersion() uint32 { @@ -1367,7 +1367,7 @@ type ResponseProtocol struct { func (x *ResponseProtocol) Reset() { *x = ResponseProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_trpc_proto_msgTypes[6] + mi := &file_trpc_v2_trpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1380,7 +1380,7 @@ func (x *ResponseProtocol) String() string { func (*ResponseProtocol) ProtoMessage() {} func (x *ResponseProtocol) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_trpc_proto_msgTypes[6] + mi := &file_trpc_v2_trpc_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1393,7 +1393,7 @@ func (x *ResponseProtocol) ProtoReflect() protoreflect.Message { // Deprecated: Use ResponseProtocol.ProtoReflect.Descriptor instead. func (*ResponseProtocol) Descriptor() ([]byte, []int) { - return file_trpcv2_trpc_proto_rawDescGZIP(), []int{6} + return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{6} } func (x *ResponseProtocol) GetVersion() uint32 { @@ -1466,351 +1466,351 @@ func (x *ResponseProtocol) GetContentEncoding() uint32 { return 0 } -var File_trpcv2_trpc_proto protoreflect.FileDescriptor - -var file_trpcv2_trpc_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x22, 0x9b, 0x02, 0x0a, 0x12, - 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x12, 0x44, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, - 0x32, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0b, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, - 0x65, 0x74, 0x61, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x6e, 0x69, - 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, - 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, - 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x02, 0x0a, 0x19, 0x54, 0x72, - 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, - 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, - 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x70, 0x63, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, - 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, - 0x1a, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x72, - 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x4c, 0x0a, 0x16, 0x54, 0x72, - 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, - 0x4d, 0x65, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x15, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x13, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x02, 0x0a, 0x13, 0x54, 0x72, 0x70, - 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x72, 0x70, - 0x63, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, - 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x74, 0x1a, 0x3c, 0x0a, 0x0e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbb, 0x03, 0x0a, 0x0f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, - 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x75, - 0x6e, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x72, 0x70, 0x63, - 0x76, 0x32, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, - 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa9, 0x03, 0x0a, 0x10, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x72, 0x65, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x21, 0x0a, - 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x46, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, - 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x39, 0x0a, 0x09, 0x54, 0x72, 0x70, 0x63, 0x4d, 0x61, 0x67, 0x69, - 0x63, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, - 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0xb0, 0x12, 0x2a, - 0x40, 0x0a, 0x11, 0x54, 0x72, 0x70, 0x63, 0x44, 0x61, 0x74, 0x61, 0x46, 0x72, 0x61, 0x6d, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, - 0x52, 0x59, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, - 0x01, 0x2a, 0x9a, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x49, - 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, - 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, - 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x46, 0x45, 0x45, 0x44, 0x42, 0x41, 0x43, 0x4b, 0x10, - 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, - 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x04, 0x2a, 0x43, +var File_trpc_v2_trpc_proto protoreflect.FileDescriptor + +var file_trpc_v2_trpc_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x22, 0x9d, 0x02, + 0x0a, 0x12, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, + 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0b, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x0d, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x70, + 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, + 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x92, 0x02, + 0x0a, 0x19, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x63, + 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, + 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, + 0x75, 0x6e, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, + 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, + 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x1a, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, + 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, + 0x4c, 0x0a, 0x16, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x65, 0x65, + 0x64, 0x42, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x15, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xa0, 0x02, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x53, 0x45, - 0x54, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x56, 0x31, 0x10, 0x00, 0x2a, 0x39, 0x0a, 0x0c, 0x54, 0x72, - 0x70, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, - 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4f, 0x4e, 0x45, 0x57, 0x41, 0x59, 0x5f, 0x43, - 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x2a, 0xa1, 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x70, 0x63, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x44, 0x59, 0x45, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, - 0x47, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x45, 0x4e, 0x56, 0x5f, 0x4d, - 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x47, 0x52, 0x49, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x08, 0x12, - 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x54, 0x4e, 0x41, 0x4d, 0x45, 0x5f, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x2a, 0xb8, 0x01, 0x0a, 0x15, 0x54, 0x72, - 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, - 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x4a, 0x43, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, - 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x43, - 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x46, 0x4c, - 0x41, 0x54, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, - 0x03, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4e, 0x4f, 0x4f, 0x50, 0x5f, 0x45, - 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, - 0x44, 0x45, 0x10, 0x06, 0x2a, 0xb8, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, - 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x5a, 0x49, - 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, - 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x5a, - 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x1f, - 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, - 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x2a, - 0xb0, 0x0d, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, - 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, - 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, - 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, - 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, - 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, - 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, - 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x5f, + 0x72, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x75, 0x6e, 0x63, 0x52, + 0x65, 0x74, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0xbc, 0x03, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, + 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, + 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x0a, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, + 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0xaa, 0x03, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, + 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x66, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x4d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, + 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3c, + 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x39, 0x0a, 0x09, + 0x54, 0x72, 0x70, 0x63, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x5f, 0x56, + 0x41, 0x4c, 0x55, 0x45, 0x10, 0xb0, 0x12, 0x2a, 0x40, 0x0a, 0x11, 0x54, 0x72, 0x70, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, + 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x2a, 0x9a, 0x01, 0x0a, 0x13, 0x54, 0x72, + 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x10, + 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, + 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, + 0x4d, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x46, + 0x45, 0x45, 0x44, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x43, + 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x04, 0x2a, 0x43, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, + 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x4f, + 0x53, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x10, 0x54, + 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x11, 0x0a, 0x0d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x56, 0x31, + 0x10, 0x00, 0x2a, 0x39, 0x0a, 0x0c, 0x54, 0x72, 0x70, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, + 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x4f, 0x4e, 0x45, 0x57, 0x41, 0x59, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x2a, 0xa1, 0x01, + 0x0a, 0x0f, 0x54, 0x72, 0x70, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, + 0x54, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x59, 0x45, 0x49, + 0x4e, 0x47, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x55, 0x4c, + 0x54, 0x49, 0x5f, 0x45, 0x4e, 0x56, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, + 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x52, 0x49, 0x44, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x45, 0x54, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, + 0x10, 0x2a, 0xb8, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, + 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4a, 0x43, 0x45, 0x5f, 0x45, + 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, + 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x46, 0x4c, 0x41, 0x54, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, + 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x4e, 0x4f, 0x4f, 0x50, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, + 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, + 0x49, 0x46, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x2a, 0xb8, 0x01, 0x0a, + 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, + 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x5a, 0x49, 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, + 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, + 0x50, 0x50, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, + 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x5a, 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, + 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, + 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, + 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x2a, 0xb0, 0x0d, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, + 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, + 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, + 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, - 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, - 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, - 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, - 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, - 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, - 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, - 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xa1, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, - 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, - 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, - 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, - 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, - 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, - 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, + 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, + 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, + 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, + 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, + 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, + 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, + 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, + 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, + 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0x7c, 0x12, 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, + 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, + 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xa1, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, + 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, + 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, + 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, + 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, - 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, - 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, - 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, - 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, + 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, + 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, + 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, + 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, + 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, + 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, - 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, - 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfe, 0x01, 0x12, 0x23, 0x0a, 0x1e, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xad, - 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, - 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, - 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xb7, 0x02, 0x12, - 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xfc, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, + 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xfe, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xad, 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, + 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xb7, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, + 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, + 0xcb, 0x02, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, + 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, + 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, + 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcd, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, - 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, - 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, - 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcd, 0x02, 0x12, - 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, - 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, - 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xdf, 0x02, 0x12, 0x26, 0x0a, 0x21, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xce, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, + 0x44, 0x10, 0xdf, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, - 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe1, 0x02, 0x12, 0x28, 0x0a, 0x23, + 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, - 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, - 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xe8, 0x07, 0x42, 0x68, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, - 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0c, 0x54, 0x52, - 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x2e, - 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, - 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, - 0x2f, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x3b, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xe1, 0x02, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, + 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x1c, + 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x69, 0x0a, 0x26, 0x63, 0x6f, + 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, + 0x3b, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_trpcv2_trpc_proto_rawDescOnce sync.Once - file_trpcv2_trpc_proto_rawDescData = file_trpcv2_trpc_proto_rawDesc + file_trpc_v2_trpc_proto_rawDescOnce sync.Once + file_trpc_v2_trpc_proto_rawDescData = file_trpc_v2_trpc_proto_rawDesc ) -func file_trpcv2_trpc_proto_rawDescGZIP() []byte { - file_trpcv2_trpc_proto_rawDescOnce.Do(func() { - file_trpcv2_trpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpcv2_trpc_proto_rawDescData) +func file_trpc_v2_trpc_proto_rawDescGZIP() []byte { + file_trpc_v2_trpc_proto_rawDescOnce.Do(func() { + file_trpc_v2_trpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_v2_trpc_proto_rawDescData) }) - return file_trpcv2_trpc_proto_rawDescData -} - -var file_trpcv2_trpc_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -var file_trpcv2_trpc_proto_msgTypes = make([]protoimpl.MessageInfo, 11) -var file_trpcv2_trpc_proto_goTypes = []interface{}{ - (TrpcMagic)(0), // 0: trpcv2.TrpcMagic - (TrpcDataFrameType)(0), // 1: trpcv2.TrpcDataFrameType - (TrpcStreamFrameType)(0), // 2: trpcv2.TrpcStreamFrameType - (TrpcStreamCloseType)(0), // 3: trpcv2.TrpcStreamCloseType - (TrpcProtoVersion)(0), // 4: trpcv2.TrpcProtoVersion - (TrpcCallType)(0), // 5: trpcv2.TrpcCallType - (TrpcMessageType)(0), // 6: trpcv2.TrpcMessageType - (TrpcContentEncodeType)(0), // 7: trpcv2.TrpcContentEncodeType - (TrpcCompressType)(0), // 8: trpcv2.TrpcCompressType - (TrpcRetCode)(0), // 9: trpcv2.TrpcRetCode - (*TrpcStreamInitMeta)(nil), // 10: trpcv2.TrpcStreamInitMeta - (*TrpcStreamInitRequestMeta)(nil), // 11: trpcv2.TrpcStreamInitRequestMeta - (*TrpcStreamInitResponseMeta)(nil), // 12: trpcv2.TrpcStreamInitResponseMeta - (*TrpcStreamFeedBackMeta)(nil), // 13: trpcv2.TrpcStreamFeedBackMeta - (*TrpcStreamCloseMeta)(nil), // 14: trpcv2.TrpcStreamCloseMeta - (*RequestProtocol)(nil), // 15: trpcv2.RequestProtocol - (*ResponseProtocol)(nil), // 16: trpcv2.ResponseProtocol - nil, // 17: trpcv2.TrpcStreamInitRequestMeta.TransInfoEntry - nil, // 18: trpcv2.TrpcStreamCloseMeta.TransInfoEntry - nil, // 19: trpcv2.RequestProtocol.TransInfoEntry - nil, // 20: trpcv2.ResponseProtocol.TransInfoEntry -} -var file_trpcv2_trpc_proto_depIdxs = []int32{ - 11, // 0: trpcv2.TrpcStreamInitMeta.request_meta:type_name -> trpcv2.TrpcStreamInitRequestMeta - 12, // 1: trpcv2.TrpcStreamInitMeta.response_meta:type_name -> trpcv2.TrpcStreamInitResponseMeta - 17, // 2: trpcv2.TrpcStreamInitRequestMeta.trans_info:type_name -> trpcv2.TrpcStreamInitRequestMeta.TransInfoEntry - 18, // 3: trpcv2.TrpcStreamCloseMeta.trans_info:type_name -> trpcv2.TrpcStreamCloseMeta.TransInfoEntry - 19, // 4: trpcv2.RequestProtocol.trans_info:type_name -> trpcv2.RequestProtocol.TransInfoEntry - 20, // 5: trpcv2.ResponseProtocol.trans_info:type_name -> trpcv2.ResponseProtocol.TransInfoEntry + return file_trpc_v2_trpc_proto_rawDescData +} + +var file_trpc_v2_trpc_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_trpc_v2_trpc_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_trpc_v2_trpc_proto_goTypes = []interface{}{ + (TrpcMagic)(0), // 0: trpc.v2.TrpcMagic + (TrpcDataFrameType)(0), // 1: trpc.v2.TrpcDataFrameType + (TrpcStreamFrameType)(0), // 2: trpc.v2.TrpcStreamFrameType + (TrpcStreamCloseType)(0), // 3: trpc.v2.TrpcStreamCloseType + (TrpcProtoVersion)(0), // 4: trpc.v2.TrpcProtoVersion + (TrpcCallType)(0), // 5: trpc.v2.TrpcCallType + (TrpcMessageType)(0), // 6: trpc.v2.TrpcMessageType + (TrpcContentEncodeType)(0), // 7: trpc.v2.TrpcContentEncodeType + (TrpcCompressType)(0), // 8: trpc.v2.TrpcCompressType + (TrpcRetCode)(0), // 9: trpc.v2.TrpcRetCode + (*TrpcStreamInitMeta)(nil), // 10: trpc.v2.TrpcStreamInitMeta + (*TrpcStreamInitRequestMeta)(nil), // 11: trpc.v2.TrpcStreamInitRequestMeta + (*TrpcStreamInitResponseMeta)(nil), // 12: trpc.v2.TrpcStreamInitResponseMeta + (*TrpcStreamFeedBackMeta)(nil), // 13: trpc.v2.TrpcStreamFeedBackMeta + (*TrpcStreamCloseMeta)(nil), // 14: trpc.v2.TrpcStreamCloseMeta + (*RequestProtocol)(nil), // 15: trpc.v2.RequestProtocol + (*ResponseProtocol)(nil), // 16: trpc.v2.ResponseProtocol + nil, // 17: trpc.v2.TrpcStreamInitRequestMeta.TransInfoEntry + nil, // 18: trpc.v2.TrpcStreamCloseMeta.TransInfoEntry + nil, // 19: trpc.v2.RequestProtocol.TransInfoEntry + nil, // 20: trpc.v2.ResponseProtocol.TransInfoEntry +} +var file_trpc_v2_trpc_proto_depIdxs = []int32{ + 11, // 0: trpc.v2.TrpcStreamInitMeta.request_meta:type_name -> trpc.v2.TrpcStreamInitRequestMeta + 12, // 1: trpc.v2.TrpcStreamInitMeta.response_meta:type_name -> trpc.v2.TrpcStreamInitResponseMeta + 17, // 2: trpc.v2.TrpcStreamInitRequestMeta.trans_info:type_name -> trpc.v2.TrpcStreamInitRequestMeta.TransInfoEntry + 18, // 3: trpc.v2.TrpcStreamCloseMeta.trans_info:type_name -> trpc.v2.TrpcStreamCloseMeta.TransInfoEntry + 19, // 4: trpc.v2.RequestProtocol.trans_info:type_name -> trpc.v2.RequestProtocol.TransInfoEntry + 20, // 5: trpc.v2.ResponseProtocol.trans_info:type_name -> trpc.v2.ResponseProtocol.TransInfoEntry 6, // [6:6] is the sub-list for method output_type 6, // [6:6] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name @@ -1818,13 +1818,13 @@ var file_trpcv2_trpc_proto_depIdxs = []int32{ 0, // [0:6] is the sub-list for field type_name } -func init() { file_trpcv2_trpc_proto_init() } -func file_trpcv2_trpc_proto_init() { - if File_trpcv2_trpc_proto != nil { +func init() { file_trpc_v2_trpc_proto_init() } +func file_trpc_v2_trpc_proto_init() { + if File_trpc_v2_trpc_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_trpcv2_trpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_trpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrpcStreamInitMeta); i { case 0: return &v.state @@ -1836,7 +1836,7 @@ func file_trpcv2_trpc_proto_init() { return nil } } - file_trpcv2_trpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_trpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrpcStreamInitRequestMeta); i { case 0: return &v.state @@ -1848,7 +1848,7 @@ func file_trpcv2_trpc_proto_init() { return nil } } - file_trpcv2_trpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_trpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrpcStreamInitResponseMeta); i { case 0: return &v.state @@ -1860,7 +1860,7 @@ func file_trpcv2_trpc_proto_init() { return nil } } - file_trpcv2_trpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_trpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrpcStreamFeedBackMeta); i { case 0: return &v.state @@ -1872,7 +1872,7 @@ func file_trpcv2_trpc_proto_init() { return nil } } - file_trpcv2_trpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_trpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrpcStreamCloseMeta); i { case 0: return &v.state @@ -1884,7 +1884,7 @@ func file_trpcv2_trpc_proto_init() { return nil } } - file_trpcv2_trpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_trpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RequestProtocol); i { case 0: return &v.state @@ -1896,7 +1896,7 @@ func file_trpcv2_trpc_proto_init() { return nil } } - file_trpcv2_trpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_trpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResponseProtocol); i { case 0: return &v.state @@ -1913,19 +1913,19 @@ func file_trpcv2_trpc_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_trpcv2_trpc_proto_rawDesc, + RawDescriptor: file_trpc_v2_trpc_proto_rawDesc, NumEnums: 10, NumMessages: 11, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_trpcv2_trpc_proto_goTypes, - DependencyIndexes: file_trpcv2_trpc_proto_depIdxs, - EnumInfos: file_trpcv2_trpc_proto_enumTypes, - MessageInfos: file_trpcv2_trpc_proto_msgTypes, + GoTypes: file_trpc_v2_trpc_proto_goTypes, + DependencyIndexes: file_trpc_v2_trpc_proto_depIdxs, + EnumInfos: file_trpc_v2_trpc_proto_enumTypes, + MessageInfos: file_trpc_v2_trpc_proto_msgTypes, }.Build() - File_trpcv2_trpc_proto = out.File - file_trpcv2_trpc_proto_rawDesc = nil - file_trpcv2_trpc_proto_goTypes = nil - file_trpcv2_trpc_proto_depIdxs = nil + File_trpc_v2_trpc_proto = out.File + file_trpc_v2_trpc_proto_rawDesc = nil + file_trpc_v2_trpc_proto_goTypes = nil + file_trpc_v2_trpc_proto_depIdxs = nil } diff --git a/pb/go/trpcv2/validate/validate.pb.go b/pb/go/trpc/v2/validate/validate.pb.go similarity index 67% rename from pb/go/trpcv2/validate/validate.pb.go rename to pb/go/trpc/v2/validate/validate.pb.go index 053d523..e4f6e2c 100644 --- a/pb/go/trpcv2/validate/validate.pb.go +++ b/pb/go/trpc/v2/validate/validate.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.19.4 -// source: trpcv2/validate/validate.proto +// protoc v3.6.1 +// source: trpc/v2/validate/validate.proto package validate @@ -59,11 +59,11 @@ func (x KnownRegex) String() string { } func (KnownRegex) Descriptor() protoreflect.EnumDescriptor { - return file_trpcv2_validate_validate_proto_enumTypes[0].Descriptor() + return file_trpc_v2_validate_validate_proto_enumTypes[0].Descriptor() } func (KnownRegex) Type() protoreflect.EnumType { - return &file_trpcv2_validate_validate_proto_enumTypes[0] + return &file_trpc_v2_validate_validate_proto_enumTypes[0] } func (x KnownRegex) Number() protoreflect.EnumNumber { @@ -82,7 +82,7 @@ func (x *KnownRegex) UnmarshalJSON(b []byte) error { // Deprecated: Use KnownRegex.Descriptor instead. func (KnownRegex) EnumDescriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{0} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{0} } // FieldRules encapsulates the rules for each type of field. Depending on the @@ -121,7 +121,7 @@ type FieldRules struct { func (x *FieldRules) Reset() { *x = FieldRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[0] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -134,7 +134,7 @@ func (x *FieldRules) String() string { func (*FieldRules) ProtoMessage() {} func (x *FieldRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[0] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -147,7 +147,7 @@ func (x *FieldRules) ProtoReflect() protoreflect.Message { // Deprecated: Use FieldRules.ProtoReflect.Descriptor instead. func (*FieldRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{0} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{0} } func (x *FieldRules) GetMessage() *MessageRules { @@ -480,7 +480,7 @@ type FloatRules struct { func (x *FloatRules) Reset() { *x = FloatRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[1] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -493,7 +493,7 @@ func (x *FloatRules) String() string { func (*FloatRules) ProtoMessage() {} func (x *FloatRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[1] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -506,7 +506,7 @@ func (x *FloatRules) ProtoReflect() protoreflect.Message { // Deprecated: Use FloatRules.ProtoReflect.Descriptor instead. func (*FloatRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{1} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{1} } func (x *FloatRules) GetConst() float32 { @@ -601,7 +601,7 @@ type DoubleRules struct { func (x *DoubleRules) Reset() { *x = DoubleRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[2] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -614,7 +614,7 @@ func (x *DoubleRules) String() string { func (*DoubleRules) ProtoMessage() {} func (x *DoubleRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[2] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -627,7 +627,7 @@ func (x *DoubleRules) ProtoReflect() protoreflect.Message { // Deprecated: Use DoubleRules.ProtoReflect.Descriptor instead. func (*DoubleRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{2} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{2} } func (x *DoubleRules) GetConst() float64 { @@ -722,7 +722,7 @@ type Int32Rules struct { func (x *Int32Rules) Reset() { *x = Int32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[3] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -735,7 +735,7 @@ func (x *Int32Rules) String() string { func (*Int32Rules) ProtoMessage() {} func (x *Int32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[3] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -748,7 +748,7 @@ func (x *Int32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use Int32Rules.ProtoReflect.Descriptor instead. func (*Int32Rules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{3} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{3} } func (x *Int32Rules) GetConst() int32 { @@ -843,7 +843,7 @@ type Int64Rules struct { func (x *Int64Rules) Reset() { *x = Int64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[4] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -856,7 +856,7 @@ func (x *Int64Rules) String() string { func (*Int64Rules) ProtoMessage() {} func (x *Int64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[4] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -869,7 +869,7 @@ func (x *Int64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use Int64Rules.ProtoReflect.Descriptor instead. func (*Int64Rules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{4} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{4} } func (x *Int64Rules) GetConst() int64 { @@ -964,7 +964,7 @@ type UInt32Rules struct { func (x *UInt32Rules) Reset() { *x = UInt32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[5] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -977,7 +977,7 @@ func (x *UInt32Rules) String() string { func (*UInt32Rules) ProtoMessage() {} func (x *UInt32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[5] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -990,7 +990,7 @@ func (x *UInt32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use UInt32Rules.ProtoReflect.Descriptor instead. func (*UInt32Rules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{5} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{5} } func (x *UInt32Rules) GetConst() uint32 { @@ -1085,7 +1085,7 @@ type UInt64Rules struct { func (x *UInt64Rules) Reset() { *x = UInt64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[6] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1098,7 +1098,7 @@ func (x *UInt64Rules) String() string { func (*UInt64Rules) ProtoMessage() {} func (x *UInt64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[6] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1111,7 +1111,7 @@ func (x *UInt64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use UInt64Rules.ProtoReflect.Descriptor instead. func (*UInt64Rules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{6} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{6} } func (x *UInt64Rules) GetConst() uint64 { @@ -1206,7 +1206,7 @@ type SInt32Rules struct { func (x *SInt32Rules) Reset() { *x = SInt32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[7] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1219,7 +1219,7 @@ func (x *SInt32Rules) String() string { func (*SInt32Rules) ProtoMessage() {} func (x *SInt32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[7] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1232,7 +1232,7 @@ func (x *SInt32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use SInt32Rules.ProtoReflect.Descriptor instead. func (*SInt32Rules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{7} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{7} } func (x *SInt32Rules) GetConst() int32 { @@ -1327,7 +1327,7 @@ type SInt64Rules struct { func (x *SInt64Rules) Reset() { *x = SInt64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[8] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1340,7 +1340,7 @@ func (x *SInt64Rules) String() string { func (*SInt64Rules) ProtoMessage() {} func (x *SInt64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[8] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1353,7 +1353,7 @@ func (x *SInt64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use SInt64Rules.ProtoReflect.Descriptor instead. func (*SInt64Rules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{8} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{8} } func (x *SInt64Rules) GetConst() int64 { @@ -1448,7 +1448,7 @@ type Fixed32Rules struct { func (x *Fixed32Rules) Reset() { *x = Fixed32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[9] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1461,7 +1461,7 @@ func (x *Fixed32Rules) String() string { func (*Fixed32Rules) ProtoMessage() {} func (x *Fixed32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[9] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1474,7 +1474,7 @@ func (x *Fixed32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use Fixed32Rules.ProtoReflect.Descriptor instead. func (*Fixed32Rules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{9} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{9} } func (x *Fixed32Rules) GetConst() uint32 { @@ -1569,7 +1569,7 @@ type Fixed64Rules struct { func (x *Fixed64Rules) Reset() { *x = Fixed64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[10] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1582,7 +1582,7 @@ func (x *Fixed64Rules) String() string { func (*Fixed64Rules) ProtoMessage() {} func (x *Fixed64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[10] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1595,7 +1595,7 @@ func (x *Fixed64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use Fixed64Rules.ProtoReflect.Descriptor instead. func (*Fixed64Rules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{10} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{10} } func (x *Fixed64Rules) GetConst() uint64 { @@ -1690,7 +1690,7 @@ type SFixed32Rules struct { func (x *SFixed32Rules) Reset() { *x = SFixed32Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[11] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1703,7 +1703,7 @@ func (x *SFixed32Rules) String() string { func (*SFixed32Rules) ProtoMessage() {} func (x *SFixed32Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[11] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1716,7 +1716,7 @@ func (x *SFixed32Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use SFixed32Rules.ProtoReflect.Descriptor instead. func (*SFixed32Rules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{11} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{11} } func (x *SFixed32Rules) GetConst() int32 { @@ -1811,7 +1811,7 @@ type SFixed64Rules struct { func (x *SFixed64Rules) Reset() { *x = SFixed64Rules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[12] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1824,7 +1824,7 @@ func (x *SFixed64Rules) String() string { func (*SFixed64Rules) ProtoMessage() {} func (x *SFixed64Rules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[12] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1837,7 +1837,7 @@ func (x *SFixed64Rules) ProtoReflect() protoreflect.Message { // Deprecated: Use SFixed64Rules.ProtoReflect.Descriptor instead. func (*SFixed64Rules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{12} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{12} } func (x *SFixed64Rules) GetConst() int64 { @@ -1909,7 +1909,7 @@ type BoolRules struct { func (x *BoolRules) Reset() { *x = BoolRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[13] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1922,7 +1922,7 @@ func (x *BoolRules) String() string { func (*BoolRules) ProtoMessage() {} func (x *BoolRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[13] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1935,7 +1935,7 @@ func (x *BoolRules) ProtoReflect() protoreflect.Message { // Deprecated: Use BoolRules.ProtoReflect.Descriptor instead. func (*BoolRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{13} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{13} } func (x *BoolRules) GetConst() bool { @@ -2034,7 +2034,7 @@ const ( func (x *StringRules) Reset() { *x = StringRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[14] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2047,7 +2047,7 @@ func (x *StringRules) String() string { func (*StringRules) ProtoMessage() {} func (x *StringRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[14] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2060,7 +2060,7 @@ func (x *StringRules) ProtoReflect() protoreflect.Message { // Deprecated: Use StringRules.ProtoReflect.Descriptor instead. func (*StringRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{14} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{14} } func (x *StringRules) GetConst() string { @@ -2341,7 +2341,7 @@ type StringRules_Uuid struct { type StringRules_WellKnownRegex struct { // WellKnownRegex specifies a common well known pattern defined as a regex. - WellKnownRegex KnownRegex `protobuf:"varint,24,opt,name=well_known_regex,json=wellKnownRegex,enum=trpcv2.validate.KnownRegex,oneof"` + WellKnownRegex KnownRegex `protobuf:"varint,24,opt,name=well_known_regex,json=wellKnownRegex,enum=trpc.v2.validate.KnownRegex,oneof"` } type StringRules_Alphabets struct { @@ -2443,7 +2443,7 @@ type BytesRules struct { func (x *BytesRules) Reset() { *x = BytesRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[15] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2456,7 +2456,7 @@ func (x *BytesRules) String() string { func (*BytesRules) ProtoMessage() {} func (x *BytesRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[15] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2469,7 +2469,7 @@ func (x *BytesRules) ProtoReflect() protoreflect.Message { // Deprecated: Use BytesRules.ProtoReflect.Descriptor instead. func (*BytesRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{15} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{15} } func (x *BytesRules) GetConst() []byte { @@ -2627,7 +2627,7 @@ type EnumRules struct { func (x *EnumRules) Reset() { *x = EnumRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[16] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2640,7 +2640,7 @@ func (x *EnumRules) String() string { func (*EnumRules) ProtoMessage() {} func (x *EnumRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[16] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2653,7 +2653,7 @@ func (x *EnumRules) ProtoReflect() protoreflect.Message { // Deprecated: Use EnumRules.ProtoReflect.Descriptor instead. func (*EnumRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{16} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{16} } func (x *EnumRules) GetConst() int32 { @@ -2701,7 +2701,7 @@ type MessageRules struct { func (x *MessageRules) Reset() { *x = MessageRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[17] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2714,7 +2714,7 @@ func (x *MessageRules) String() string { func (*MessageRules) ProtoMessage() {} func (x *MessageRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[17] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2727,7 +2727,7 @@ func (x *MessageRules) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageRules.ProtoReflect.Descriptor instead. func (*MessageRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{17} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{17} } func (x *MessageRules) GetSkip() bool { @@ -2772,7 +2772,7 @@ type RepeatedRules struct { func (x *RepeatedRules) Reset() { *x = RepeatedRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[18] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2785,7 +2785,7 @@ func (x *RepeatedRules) String() string { func (*RepeatedRules) ProtoMessage() {} func (x *RepeatedRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[18] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2798,7 +2798,7 @@ func (x *RepeatedRules) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedRules.ProtoReflect.Descriptor instead. func (*RepeatedRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{18} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{18} } func (x *RepeatedRules) GetMinItems() uint64 { @@ -2865,7 +2865,7 @@ type MapRules struct { func (x *MapRules) Reset() { *x = MapRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[19] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2878,7 +2878,7 @@ func (x *MapRules) String() string { func (*MapRules) ProtoMessage() {} func (x *MapRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[19] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2891,7 +2891,7 @@ func (x *MapRules) ProtoReflect() protoreflect.Message { // Deprecated: Use MapRules.ProtoReflect.Descriptor instead. func (*MapRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{19} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{19} } func (x *MapRules) GetMinPairs() uint64 { @@ -2956,7 +2956,7 @@ type AnyRules struct { func (x *AnyRules) Reset() { *x = AnyRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[20] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2969,7 +2969,7 @@ func (x *AnyRules) String() string { func (*AnyRules) ProtoMessage() {} func (x *AnyRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[20] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2982,7 +2982,7 @@ func (x *AnyRules) ProtoReflect() protoreflect.Message { // Deprecated: Use AnyRules.ProtoReflect.Descriptor instead. func (*AnyRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{20} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{20} } func (x *AnyRules) GetRequired() bool { @@ -3040,7 +3040,7 @@ type DurationRules struct { func (x *DurationRules) Reset() { *x = DurationRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[21] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3053,7 +3053,7 @@ func (x *DurationRules) String() string { func (*DurationRules) ProtoMessage() {} func (x *DurationRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[21] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3066,7 +3066,7 @@ func (x *DurationRules) ProtoReflect() protoreflect.Message { // Deprecated: Use DurationRules.ProtoReflect.Descriptor instead. func (*DurationRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{21} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{21} } func (x *DurationRules) GetRequired() bool { @@ -3163,7 +3163,7 @@ type TimestampRules struct { func (x *TimestampRules) Reset() { *x = TimestampRules{} if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_validate_validate_proto_msgTypes[22] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3176,7 +3176,7 @@ func (x *TimestampRules) String() string { func (*TimestampRules) ProtoMessage() {} func (x *TimestampRules) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_validate_validate_proto_msgTypes[22] + mi := &file_trpc_v2_validate_validate_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3189,7 +3189,7 @@ func (x *TimestampRules) ProtoReflect() protoreflect.Message { // Deprecated: Use TimestampRules.ProtoReflect.Descriptor instead. func (*TimestampRules) Descriptor() ([]byte, []int) { - return file_trpcv2_validate_validate_proto_rawDescGZIP(), []int{22} + return file_trpc_v2_validate_validate_proto_rawDescGZIP(), []int{22} } func (x *TimestampRules) GetRequired() bool { @@ -3255,38 +3255,38 @@ func (x *TimestampRules) GetWithin() *duration.Duration { return nil } -var file_trpcv2_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ +var file_trpc_v2_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*descriptor.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 1155, - Name: "trpcv2.validate.disabled", + Name: "trpc.v2.validate.disabled", Tag: "varint,1155,opt,name=disabled", - Filename: "trpcv2/validate/validate.proto", + Filename: "trpc/v2/validate/validate.proto", }, { ExtendedType: (*descriptor.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 1156, - Name: "trpcv2.validate.ignored", + Name: "trpc.v2.validate.ignored", Tag: "varint,1156,opt,name=ignored", - Filename: "trpcv2/validate/validate.proto", + Filename: "trpc/v2/validate/validate.proto", }, { ExtendedType: (*descriptor.OneofOptions)(nil), ExtensionType: (*bool)(nil), Field: 1155, - Name: "trpcv2.validate.required", + Name: "trpc.v2.validate.required", Tag: "varint,1155,opt,name=required", - Filename: "trpcv2/validate/validate.proto", + Filename: "trpc/v2/validate/validate.proto", }, { ExtendedType: (*descriptor.FieldOptions)(nil), ExtensionType: (*FieldRules)(nil), Field: 1155, - Name: "trpcv2.validate.rules", + Name: "trpc.v2.validate.rules", Tag: "bytes,1155,opt,name=rules", - Filename: "trpcv2/validate/validate.proto", + Filename: "trpc/v2/validate/validate.proto", }, } @@ -3296,11 +3296,11 @@ var ( // message fields associated with it that do support validation. // // optional bool disabled = 1155; - E_Disabled = &file_trpcv2_validate_validate_proto_extTypes[0] + E_Disabled = &file_trpc_v2_validate_validate_proto_extTypes[0] // Ignore skips generation of validation methods for this message. // // optional bool ignored = 1156; - E_Ignored = &file_trpcv2_validate_validate_proto_extTypes[1] + E_Ignored = &file_trpc_v2_validate_validate_proto_extTypes[1] ) // Extension fields to descriptor.OneofOptions. @@ -3309,7 +3309,7 @@ var ( // validation fails if no fields in the oneof are set. // // optional bool required = 1155; - E_Required = &file_trpcv2_validate_validate_proto_extTypes[2] + E_Required = &file_trpc_v2_validate_validate_proto_extTypes[2] ) // Extension fields to descriptor.FieldOptions. @@ -3317,521 +3317,523 @@ var ( // Rules specify the validations to be performed on this field. By default, // no validation is performed against a field. // - // optional trpcv2.validate.FieldRules rules = 1155; - E_Rules = &file_trpcv2_validate_validate_proto_extTypes[3] + // optional trpc.v2.validate.FieldRules rules = 1155; + E_Rules = &file_trpc_v2_validate_validate_proto_extTypes[3] ) -var File_trpcv2_validate_validate_proto protoreflect.FileDescriptor - -var file_trpcv2_validate_validate_proto_rawDesc = []byte{ - 0x0a, 0x1e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x0f, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe2, 0x09, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, - 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x6c, - 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x12, 0x36, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, - 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x69, 0x6e, 0x74, - 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, - 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x33, - 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, - 0x74, 0x36, 0x34, 0x12, 0x36, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x36, 0x0a, 0x06, 0x75, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, - 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, - 0x74, 0x36, 0x34, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x36, 0x0a, 0x06, 0x73, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, - 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, - 0x74, 0x36, 0x34, 0x12, 0x39, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x39, - 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, - 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x3c, 0x0a, 0x08, 0x73, 0x66, 0x69, - 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x72, - 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x46, - 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, - 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x3c, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, - 0x64, 0x36, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x72, 0x70, 0x63, +var File_trpc_v2_validate_validate_proto protoreflect.FileDescriptor + +var file_trpc_v2_validate_validate_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x10, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf8, 0x09, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, + 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x34, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x37, 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x34, + 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x12, 0x34, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x37, 0x0a, 0x06, 0x75, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x12, 0x37, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x37, 0x0a, 0x06, + 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x3a, + 0x0a, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x3a, 0x0a, 0x07, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, + 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x3d, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x46, 0x69, 0x78, - 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x66, 0x69, - 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, + 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x3d, 0x0a, 0x08, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, + 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x46, 0x69, 0x78, 0x65, + 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x36, 0x34, 0x12, 0x31, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, - 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, - 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, - 0x33, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, - 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, - 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, - 0x6d, 0x61, 0x70, 0x12, 0x2d, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, 0x61, - 0x6e, 0x79, 0x12, 0x3c, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x3f, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x46, 0x6c, - 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, 0x74, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x67, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x67, - 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x02, - 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x02, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, - 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6e, - 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, - 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x01, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x01, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, - 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, - 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, - 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, - 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x6e, 0x6f, - 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, - 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x33, - 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x74, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x6e, - 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, - 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, - 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, + 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x12, 0x34, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x3d, 0x0a, 0x08, 0x72, 0x65, 0x70, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x52, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x2e, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x3d, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x02, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, + 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x01, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, + 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x01, 0x52, 0x05, + 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x67, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x67, 0x74, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, + 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x6c, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, - 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, + 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, - 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x63, - 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, + 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x11, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, - 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x11, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, + 0x0d, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, + 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x12, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, - 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x12, 0x52, 0x05, 0x6e, 0x6f, - 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, - 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, - 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x67, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x67, 0x74, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x07, 0x52, 0x02, 0x69, - 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x07, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, - 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x05, 0x63, 0x6f, 0x6e, - 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, - 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, - 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, - 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x06, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x06, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x06, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, - 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, + 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0f, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, - 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x05, 0x6e, 0x6f, + 0x04, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, + 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, - 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, - 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x6c, 0x74, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x67, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x67, - 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x10, 0x52, 0x02, - 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x10, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x0a, 0x09, - 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x22, - 0xd7, 0x06, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, - 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x6e, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x65, - 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, - 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, - 0x5f, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, - 0x12, 0x16, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, - 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, - 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, - 0x69, 0x70, 0x76, 0x36, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x19, 0x0a, 0x07, 0x75, 0x72, 0x69, 0x5f, - 0x72, 0x65, 0x66, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x72, 0x69, - 0x52, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x14, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x10, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x48, 0x00, 0x52, 0x0e, - 0x77, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1e, - 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x73, 0x12, 0x1e, - 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x1e, - 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1a, - 0x0a, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x06, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, - 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, - 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xe2, 0x02, 0x0a, 0x0a, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, - 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, - 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, - 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, - 0x69, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, - 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, - 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x21, 0x0a, - 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0x6b, - 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, - 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0x3e, 0x0a, 0x0c, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, - 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0xb7, 0x01, 0x0a, 0x0d, - 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, - 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, - 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, - 0x31, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xea, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, - 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, - 0x6e, 0x6f, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x6e, 0x6f, 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x6b, 0x65, 0x79, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, - 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, - 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x4d, 0x0a, 0x08, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, - 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, - 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, - 0x6e, 0x22, 0xe9, 0x02, 0x0a, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, - 0x2f, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x12, 0x29, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x6c, - 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x67, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x11, 0x52, 0x02, 0x69, 0x6e, + 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x11, + 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x53, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x03, 0x6c, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, + 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x12, + 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x12, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb2, + 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x07, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x07, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x07, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x07, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, + 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x07, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, + 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x06, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x06, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x06, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, + 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x06, 0x52, 0x05, + 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, + 0x78, 0x65, 0x64, 0x33, 0x32, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, 0x6c, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6c, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x02, + 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0f, 0x52, + 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0f, + 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0f, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb3, + 0x01, 0x0a, 0x0d, 0x53, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, + 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x10, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x10, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x10, 0x52, 0x02, 0x67, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x10, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x10, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, + 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x22, 0xd8, 0x06, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, + 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, + 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, + 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, + 0x66, 0x66, 0x69, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, + 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x12, 0x1c, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, + 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x12, 0x0a, 0x03, + 0x75, 0x72, 0x69, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, + 0x12, 0x19, 0x0a, 0x07, 0x75, 0x72, 0x69, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x72, 0x69, 0x52, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x48, 0x0a, + 0x10, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, + 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, + 0x52, 0x65, 0x67, 0x65, 0x78, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, + 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x62, 0x65, 0x74, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, + 0x63, 0x61, 0x73, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, + 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x74, 0x73, 0x65, 0x63, 0x73, + 0x74, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x74, 0x73, 0x65, 0x63, + 0x73, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x22, 0xe2, 0x02, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, + 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4c, + 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, + 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x02, 0x69, + 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, + 0x76, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, + 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x65, 0x6c, + 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0x6b, 0x0a, 0x09, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, + 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x6e, + 0x6f, 0x74, 0x49, 0x6e, 0x22, 0x3e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x22, 0xb8, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, + 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0xec, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, + 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, + 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x73, 0x70, 0x61, + 0x72, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x53, 0x70, 0x61, + 0x72, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, + 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x34, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, + 0x0a, 0x08, 0x41, 0x6e, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0xe9, 0x02, + 0x0a, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x02, + 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, + 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x02, 0x67, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x03, 0x6c, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x67, 0x74, 0x65, - 0x12, 0x29, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x67, 0x74, 0x12, + 0x2b, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x06, 0x6e, - 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0xf3, 0x02, - 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x05, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x2a, - 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x6c, 0x74, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, + 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f, 0x69, + 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x22, 0xf3, 0x02, 0x0a, 0x0e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x02, 0x67, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x67, - 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x05, 0x6c, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x74, 0x5f, - 0x6e, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x74, 0x4e, 0x6f, 0x77, - 0x12, 0x31, 0x0a, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x77, 0x69, 0x74, - 0x68, 0x69, 0x6e, 0x2a, 0x46, 0x0a, 0x0a, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, - 0x78, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, - 0x0a, 0x10, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x4e, 0x41, - 0x4d, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, - 0x44, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x02, 0x3a, 0x3c, 0x0a, 0x08, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x07, 0x69, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x84, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x67, - 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x3a, 0x51, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x42, 0x55, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, - 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, - 0x76, 0x32, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x61, 0x6d, 0x70, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x02, 0x6c, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x02, 0x6c, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x03, 0x6c, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x67, 0x74, + 0x12, 0x2c, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x67, 0x74, 0x65, 0x12, 0x15, + 0x0a, 0x06, 0x6c, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x6c, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x74, 0x5f, 0x6e, 0x6f, 0x77, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x74, 0x4e, 0x6f, 0x77, 0x12, 0x31, 0x0a, 0x06, + 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x2a, + 0x46, 0x0a, 0x0a, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x0b, 0x0a, + 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x54, + 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, + 0x12, 0x15, 0x0a, 0x11, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, + 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x02, 0x3a, 0x3c, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x3a, 0x0a, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, + 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x84, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x64, 0x3a, 0x3a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x52, 0x0a, + 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x42, 0x56, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, + 0x78, 0x74, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, + 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, } var ( - file_trpcv2_validate_validate_proto_rawDescOnce sync.Once - file_trpcv2_validate_validate_proto_rawDescData = file_trpcv2_validate_validate_proto_rawDesc + file_trpc_v2_validate_validate_proto_rawDescOnce sync.Once + file_trpc_v2_validate_validate_proto_rawDescData = file_trpc_v2_validate_validate_proto_rawDesc ) -func file_trpcv2_validate_validate_proto_rawDescGZIP() []byte { - file_trpcv2_validate_validate_proto_rawDescOnce.Do(func() { - file_trpcv2_validate_validate_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpcv2_validate_validate_proto_rawDescData) +func file_trpc_v2_validate_validate_proto_rawDescGZIP() []byte { + file_trpc_v2_validate_validate_proto_rawDescOnce.Do(func() { + file_trpc_v2_validate_validate_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_v2_validate_validate_proto_rawDescData) }) - return file_trpcv2_validate_validate_proto_rawDescData -} - -var file_trpcv2_validate_validate_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_trpcv2_validate_validate_proto_msgTypes = make([]protoimpl.MessageInfo, 23) -var file_trpcv2_validate_validate_proto_goTypes = []interface{}{ - (KnownRegex)(0), // 0: trpcv2.validate.KnownRegex - (*FieldRules)(nil), // 1: trpcv2.validate.FieldRules - (*FloatRules)(nil), // 2: trpcv2.validate.FloatRules - (*DoubleRules)(nil), // 3: trpcv2.validate.DoubleRules - (*Int32Rules)(nil), // 4: trpcv2.validate.Int32Rules - (*Int64Rules)(nil), // 5: trpcv2.validate.Int64Rules - (*UInt32Rules)(nil), // 6: trpcv2.validate.UInt32Rules - (*UInt64Rules)(nil), // 7: trpcv2.validate.UInt64Rules - (*SInt32Rules)(nil), // 8: trpcv2.validate.SInt32Rules - (*SInt64Rules)(nil), // 9: trpcv2.validate.SInt64Rules - (*Fixed32Rules)(nil), // 10: trpcv2.validate.Fixed32Rules - (*Fixed64Rules)(nil), // 11: trpcv2.validate.Fixed64Rules - (*SFixed32Rules)(nil), // 12: trpcv2.validate.SFixed32Rules - (*SFixed64Rules)(nil), // 13: trpcv2.validate.SFixed64Rules - (*BoolRules)(nil), // 14: trpcv2.validate.BoolRules - (*StringRules)(nil), // 15: trpcv2.validate.StringRules - (*BytesRules)(nil), // 16: trpcv2.validate.BytesRules - (*EnumRules)(nil), // 17: trpcv2.validate.EnumRules - (*MessageRules)(nil), // 18: trpcv2.validate.MessageRules - (*RepeatedRules)(nil), // 19: trpcv2.validate.RepeatedRules - (*MapRules)(nil), // 20: trpcv2.validate.MapRules - (*AnyRules)(nil), // 21: trpcv2.validate.AnyRules - (*DurationRules)(nil), // 22: trpcv2.validate.DurationRules - (*TimestampRules)(nil), // 23: trpcv2.validate.TimestampRules + return file_trpc_v2_validate_validate_proto_rawDescData +} + +var file_trpc_v2_validate_validate_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_trpc_v2_validate_validate_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_trpc_v2_validate_validate_proto_goTypes = []interface{}{ + (KnownRegex)(0), // 0: trpc.v2.validate.KnownRegex + (*FieldRules)(nil), // 1: trpc.v2.validate.FieldRules + (*FloatRules)(nil), // 2: trpc.v2.validate.FloatRules + (*DoubleRules)(nil), // 3: trpc.v2.validate.DoubleRules + (*Int32Rules)(nil), // 4: trpc.v2.validate.Int32Rules + (*Int64Rules)(nil), // 5: trpc.v2.validate.Int64Rules + (*UInt32Rules)(nil), // 6: trpc.v2.validate.UInt32Rules + (*UInt64Rules)(nil), // 7: trpc.v2.validate.UInt64Rules + (*SInt32Rules)(nil), // 8: trpc.v2.validate.SInt32Rules + (*SInt64Rules)(nil), // 9: trpc.v2.validate.SInt64Rules + (*Fixed32Rules)(nil), // 10: trpc.v2.validate.Fixed32Rules + (*Fixed64Rules)(nil), // 11: trpc.v2.validate.Fixed64Rules + (*SFixed32Rules)(nil), // 12: trpc.v2.validate.SFixed32Rules + (*SFixed64Rules)(nil), // 13: trpc.v2.validate.SFixed64Rules + (*BoolRules)(nil), // 14: trpc.v2.validate.BoolRules + (*StringRules)(nil), // 15: trpc.v2.validate.StringRules + (*BytesRules)(nil), // 16: trpc.v2.validate.BytesRules + (*EnumRules)(nil), // 17: trpc.v2.validate.EnumRules + (*MessageRules)(nil), // 18: trpc.v2.validate.MessageRules + (*RepeatedRules)(nil), // 19: trpc.v2.validate.RepeatedRules + (*MapRules)(nil), // 20: trpc.v2.validate.MapRules + (*AnyRules)(nil), // 21: trpc.v2.validate.AnyRules + (*DurationRules)(nil), // 22: trpc.v2.validate.DurationRules + (*TimestampRules)(nil), // 23: trpc.v2.validate.TimestampRules (*duration.Duration)(nil), // 24: google.protobuf.Duration (*timestamp.Timestamp)(nil), // 25: google.protobuf.Timestamp (*descriptor.MessageOptions)(nil), // 26: google.protobuf.MessageOptions (*descriptor.OneofOptions)(nil), // 27: google.protobuf.OneofOptions (*descriptor.FieldOptions)(nil), // 28: google.protobuf.FieldOptions } -var file_trpcv2_validate_validate_proto_depIdxs = []int32{ - 18, // 0: trpcv2.validate.FieldRules.message:type_name -> trpcv2.validate.MessageRules - 2, // 1: trpcv2.validate.FieldRules.float:type_name -> trpcv2.validate.FloatRules - 3, // 2: trpcv2.validate.FieldRules.double:type_name -> trpcv2.validate.DoubleRules - 4, // 3: trpcv2.validate.FieldRules.int32:type_name -> trpcv2.validate.Int32Rules - 5, // 4: trpcv2.validate.FieldRules.int64:type_name -> trpcv2.validate.Int64Rules - 6, // 5: trpcv2.validate.FieldRules.uint32:type_name -> trpcv2.validate.UInt32Rules - 7, // 6: trpcv2.validate.FieldRules.uint64:type_name -> trpcv2.validate.UInt64Rules - 8, // 7: trpcv2.validate.FieldRules.sint32:type_name -> trpcv2.validate.SInt32Rules - 9, // 8: trpcv2.validate.FieldRules.sint64:type_name -> trpcv2.validate.SInt64Rules - 10, // 9: trpcv2.validate.FieldRules.fixed32:type_name -> trpcv2.validate.Fixed32Rules - 11, // 10: trpcv2.validate.FieldRules.fixed64:type_name -> trpcv2.validate.Fixed64Rules - 12, // 11: trpcv2.validate.FieldRules.sfixed32:type_name -> trpcv2.validate.SFixed32Rules - 13, // 12: trpcv2.validate.FieldRules.sfixed64:type_name -> trpcv2.validate.SFixed64Rules - 14, // 13: trpcv2.validate.FieldRules.bool:type_name -> trpcv2.validate.BoolRules - 15, // 14: trpcv2.validate.FieldRules.string:type_name -> trpcv2.validate.StringRules - 16, // 15: trpcv2.validate.FieldRules.bytes:type_name -> trpcv2.validate.BytesRules - 17, // 16: trpcv2.validate.FieldRules.enum:type_name -> trpcv2.validate.EnumRules - 19, // 17: trpcv2.validate.FieldRules.repeated:type_name -> trpcv2.validate.RepeatedRules - 20, // 18: trpcv2.validate.FieldRules.map:type_name -> trpcv2.validate.MapRules - 21, // 19: trpcv2.validate.FieldRules.any:type_name -> trpcv2.validate.AnyRules - 22, // 20: trpcv2.validate.FieldRules.duration:type_name -> trpcv2.validate.DurationRules - 23, // 21: trpcv2.validate.FieldRules.timestamp:type_name -> trpcv2.validate.TimestampRules - 0, // 22: trpcv2.validate.StringRules.well_known_regex:type_name -> trpcv2.validate.KnownRegex - 1, // 23: trpcv2.validate.RepeatedRules.items:type_name -> trpcv2.validate.FieldRules - 1, // 24: trpcv2.validate.MapRules.keys:type_name -> trpcv2.validate.FieldRules - 1, // 25: trpcv2.validate.MapRules.values:type_name -> trpcv2.validate.FieldRules - 24, // 26: trpcv2.validate.DurationRules.const:type_name -> google.protobuf.Duration - 24, // 27: trpcv2.validate.DurationRules.lt:type_name -> google.protobuf.Duration - 24, // 28: trpcv2.validate.DurationRules.lte:type_name -> google.protobuf.Duration - 24, // 29: trpcv2.validate.DurationRules.gt:type_name -> google.protobuf.Duration - 24, // 30: trpcv2.validate.DurationRules.gte:type_name -> google.protobuf.Duration - 24, // 31: trpcv2.validate.DurationRules.in:type_name -> google.protobuf.Duration - 24, // 32: trpcv2.validate.DurationRules.not_in:type_name -> google.protobuf.Duration - 25, // 33: trpcv2.validate.TimestampRules.const:type_name -> google.protobuf.Timestamp - 25, // 34: trpcv2.validate.TimestampRules.lt:type_name -> google.protobuf.Timestamp - 25, // 35: trpcv2.validate.TimestampRules.lte:type_name -> google.protobuf.Timestamp - 25, // 36: trpcv2.validate.TimestampRules.gt:type_name -> google.protobuf.Timestamp - 25, // 37: trpcv2.validate.TimestampRules.gte:type_name -> google.protobuf.Timestamp - 24, // 38: trpcv2.validate.TimestampRules.within:type_name -> google.protobuf.Duration - 26, // 39: trpcv2.validate.disabled:extendee -> google.protobuf.MessageOptions - 26, // 40: trpcv2.validate.ignored:extendee -> google.protobuf.MessageOptions - 27, // 41: trpcv2.validate.required:extendee -> google.protobuf.OneofOptions - 28, // 42: trpcv2.validate.rules:extendee -> google.protobuf.FieldOptions - 1, // 43: trpcv2.validate.rules:type_name -> trpcv2.validate.FieldRules +var file_trpc_v2_validate_validate_proto_depIdxs = []int32{ + 18, // 0: trpc.v2.validate.FieldRules.message:type_name -> trpc.v2.validate.MessageRules + 2, // 1: trpc.v2.validate.FieldRules.float:type_name -> trpc.v2.validate.FloatRules + 3, // 2: trpc.v2.validate.FieldRules.double:type_name -> trpc.v2.validate.DoubleRules + 4, // 3: trpc.v2.validate.FieldRules.int32:type_name -> trpc.v2.validate.Int32Rules + 5, // 4: trpc.v2.validate.FieldRules.int64:type_name -> trpc.v2.validate.Int64Rules + 6, // 5: trpc.v2.validate.FieldRules.uint32:type_name -> trpc.v2.validate.UInt32Rules + 7, // 6: trpc.v2.validate.FieldRules.uint64:type_name -> trpc.v2.validate.UInt64Rules + 8, // 7: trpc.v2.validate.FieldRules.sint32:type_name -> trpc.v2.validate.SInt32Rules + 9, // 8: trpc.v2.validate.FieldRules.sint64:type_name -> trpc.v2.validate.SInt64Rules + 10, // 9: trpc.v2.validate.FieldRules.fixed32:type_name -> trpc.v2.validate.Fixed32Rules + 11, // 10: trpc.v2.validate.FieldRules.fixed64:type_name -> trpc.v2.validate.Fixed64Rules + 12, // 11: trpc.v2.validate.FieldRules.sfixed32:type_name -> trpc.v2.validate.SFixed32Rules + 13, // 12: trpc.v2.validate.FieldRules.sfixed64:type_name -> trpc.v2.validate.SFixed64Rules + 14, // 13: trpc.v2.validate.FieldRules.bool:type_name -> trpc.v2.validate.BoolRules + 15, // 14: trpc.v2.validate.FieldRules.string:type_name -> trpc.v2.validate.StringRules + 16, // 15: trpc.v2.validate.FieldRules.bytes:type_name -> trpc.v2.validate.BytesRules + 17, // 16: trpc.v2.validate.FieldRules.enum:type_name -> trpc.v2.validate.EnumRules + 19, // 17: trpc.v2.validate.FieldRules.repeated:type_name -> trpc.v2.validate.RepeatedRules + 20, // 18: trpc.v2.validate.FieldRules.map:type_name -> trpc.v2.validate.MapRules + 21, // 19: trpc.v2.validate.FieldRules.any:type_name -> trpc.v2.validate.AnyRules + 22, // 20: trpc.v2.validate.FieldRules.duration:type_name -> trpc.v2.validate.DurationRules + 23, // 21: trpc.v2.validate.FieldRules.timestamp:type_name -> trpc.v2.validate.TimestampRules + 0, // 22: trpc.v2.validate.StringRules.well_known_regex:type_name -> trpc.v2.validate.KnownRegex + 1, // 23: trpc.v2.validate.RepeatedRules.items:type_name -> trpc.v2.validate.FieldRules + 1, // 24: trpc.v2.validate.MapRules.keys:type_name -> trpc.v2.validate.FieldRules + 1, // 25: trpc.v2.validate.MapRules.values:type_name -> trpc.v2.validate.FieldRules + 24, // 26: trpc.v2.validate.DurationRules.const:type_name -> google.protobuf.Duration + 24, // 27: trpc.v2.validate.DurationRules.lt:type_name -> google.protobuf.Duration + 24, // 28: trpc.v2.validate.DurationRules.lte:type_name -> google.protobuf.Duration + 24, // 29: trpc.v2.validate.DurationRules.gt:type_name -> google.protobuf.Duration + 24, // 30: trpc.v2.validate.DurationRules.gte:type_name -> google.protobuf.Duration + 24, // 31: trpc.v2.validate.DurationRules.in:type_name -> google.protobuf.Duration + 24, // 32: trpc.v2.validate.DurationRules.not_in:type_name -> google.protobuf.Duration + 25, // 33: trpc.v2.validate.TimestampRules.const:type_name -> google.protobuf.Timestamp + 25, // 34: trpc.v2.validate.TimestampRules.lt:type_name -> google.protobuf.Timestamp + 25, // 35: trpc.v2.validate.TimestampRules.lte:type_name -> google.protobuf.Timestamp + 25, // 36: trpc.v2.validate.TimestampRules.gt:type_name -> google.protobuf.Timestamp + 25, // 37: trpc.v2.validate.TimestampRules.gte:type_name -> google.protobuf.Timestamp + 24, // 38: trpc.v2.validate.TimestampRules.within:type_name -> google.protobuf.Duration + 26, // 39: trpc.v2.validate.disabled:extendee -> google.protobuf.MessageOptions + 26, // 40: trpc.v2.validate.ignored:extendee -> google.protobuf.MessageOptions + 27, // 41: trpc.v2.validate.required:extendee -> google.protobuf.OneofOptions + 28, // 42: trpc.v2.validate.rules:extendee -> google.protobuf.FieldOptions + 1, // 43: trpc.v2.validate.rules:type_name -> trpc.v2.validate.FieldRules 44, // [44:44] is the sub-list for method output_type 44, // [44:44] is the sub-list for method input_type 43, // [43:44] is the sub-list for extension type_name @@ -3839,13 +3841,13 @@ var file_trpcv2_validate_validate_proto_depIdxs = []int32{ 0, // [0:39] is the sub-list for field type_name } -func init() { file_trpcv2_validate_validate_proto_init() } -func file_trpcv2_validate_validate_proto_init() { - if File_trpcv2_validate_validate_proto != nil { +func init() { file_trpc_v2_validate_validate_proto_init() } +func file_trpc_v2_validate_validate_proto_init() { + if File_trpc_v2_validate_validate_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_trpcv2_validate_validate_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FieldRules); i { case 0: return &v.state @@ -3857,7 +3859,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FloatRules); i { case 0: return &v.state @@ -3869,7 +3871,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DoubleRules); i { case 0: return &v.state @@ -3881,7 +3883,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Int32Rules); i { case 0: return &v.state @@ -3893,7 +3895,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Int64Rules); i { case 0: return &v.state @@ -3905,7 +3907,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UInt32Rules); i { case 0: return &v.state @@ -3917,7 +3919,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UInt64Rules); i { case 0: return &v.state @@ -3929,7 +3931,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SInt32Rules); i { case 0: return &v.state @@ -3941,7 +3943,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SInt64Rules); i { case 0: return &v.state @@ -3953,7 +3955,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Fixed32Rules); i { case 0: return &v.state @@ -3965,7 +3967,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Fixed64Rules); i { case 0: return &v.state @@ -3977,7 +3979,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SFixed32Rules); i { case 0: return &v.state @@ -3989,7 +3991,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SFixed64Rules); i { case 0: return &v.state @@ -4001,7 +4003,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BoolRules); i { case 0: return &v.state @@ -4013,7 +4015,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StringRules); i { case 0: return &v.state @@ -4025,7 +4027,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BytesRules); i { case 0: return &v.state @@ -4037,7 +4039,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnumRules); i { case 0: return &v.state @@ -4049,7 +4051,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageRules); i { case 0: return &v.state @@ -4061,7 +4063,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepeatedRules); i { case 0: return &v.state @@ -4073,7 +4075,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MapRules); i { case 0: return &v.state @@ -4085,7 +4087,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnyRules); i { case 0: return &v.state @@ -4097,7 +4099,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DurationRules); i { case 0: return &v.state @@ -4109,7 +4111,7 @@ func file_trpcv2_validate_validate_proto_init() { return nil } } - file_trpcv2_validate_validate_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_trpc_v2_validate_validate_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TimestampRules); i { case 0: return &v.state @@ -4122,7 +4124,7 @@ func file_trpcv2_validate_validate_proto_init() { } } } - file_trpcv2_validate_validate_proto_msgTypes[0].OneofWrappers = []interface{}{ + file_trpc_v2_validate_validate_proto_msgTypes[0].OneofWrappers = []interface{}{ (*FieldRules_Float)(nil), (*FieldRules_Double)(nil), (*FieldRules_Int32)(nil), @@ -4145,7 +4147,7 @@ func file_trpcv2_validate_validate_proto_init() { (*FieldRules_Duration)(nil), (*FieldRules_Timestamp)(nil), } - file_trpcv2_validate_validate_proto_msgTypes[14].OneofWrappers = []interface{}{ + file_trpc_v2_validate_validate_proto_msgTypes[14].OneofWrappers = []interface{}{ (*StringRules_Email)(nil), (*StringRules_Hostname)(nil), (*StringRules_Ip)(nil), @@ -4161,7 +4163,7 @@ func file_trpcv2_validate_validate_proto_init() { (*StringRules_Lowercase)(nil), (*StringRules_Tsecstr)(nil), } - file_trpcv2_validate_validate_proto_msgTypes[15].OneofWrappers = []interface{}{ + file_trpc_v2_validate_validate_proto_msgTypes[15].OneofWrappers = []interface{}{ (*BytesRules_Ip)(nil), (*BytesRules_Ipv4)(nil), (*BytesRules_Ipv6)(nil), @@ -4170,20 +4172,20 @@ func file_trpcv2_validate_validate_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_trpcv2_validate_validate_proto_rawDesc, + RawDescriptor: file_trpc_v2_validate_validate_proto_rawDesc, NumEnums: 1, NumMessages: 23, NumExtensions: 4, NumServices: 0, }, - GoTypes: file_trpcv2_validate_validate_proto_goTypes, - DependencyIndexes: file_trpcv2_validate_validate_proto_depIdxs, - EnumInfos: file_trpcv2_validate_validate_proto_enumTypes, - MessageInfos: file_trpcv2_validate_validate_proto_msgTypes, - ExtensionInfos: file_trpcv2_validate_validate_proto_extTypes, + GoTypes: file_trpc_v2_validate_validate_proto_goTypes, + DependencyIndexes: file_trpc_v2_validate_validate_proto_depIdxs, + EnumInfos: file_trpc_v2_validate_validate_proto_enumTypes, + MessageInfos: file_trpc_v2_validate_validate_proto_msgTypes, + ExtensionInfos: file_trpc_v2_validate_validate_proto_extTypes, }.Build() - File_trpcv2_validate_validate_proto = out.File - file_trpcv2_validate_validate_proto_rawDesc = nil - file_trpcv2_validate_validate_proto_goTypes = nil - file_trpcv2_validate_validate_proto_depIdxs = nil + File_trpc_v2_validate_validate_proto = out.File + file_trpc_v2_validate_validate_proto_rawDesc = nil + file_trpc_v2_validate_validate_proto_goTypes = nil + file_trpc_v2_validate_validate_proto_depIdxs = nil } diff --git a/pb/go/trpc/validate/validate.pb.go b/pb/go/trpc/validate/validate.pb.go index f5a48b2..3d54db9 100644 --- a/pb/go/trpc/validate/validate.pb.go +++ b/pb/go/trpc/validate/validate.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.19.4 +// protoc v3.6.1 // source: trpc/validate/validate.proto package validate diff --git a/pb/go/trpcv2/api/annotations.pb.go b/pb/go/trpcv2/api/annotations.pb.go deleted file mode 100644 index 686124b..0000000 --- a/pb/go/trpcv2/api/annotations.pb.go +++ /dev/null @@ -1,100 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.4 -// source: trpcv2/api/annotations.proto - -package api - -import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -var file_trpcv2_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ - { - ExtendedType: (*descriptor.MethodOptions)(nil), - ExtensionType: (*HttpRule)(nil), - Field: 1157, - Name: "trpcv2.api.http", - Tag: "bytes,1157,opt,name=http", - Filename: "trpcv2/api/annotations.proto", - }, -} - -// Extension fields to descriptor.MethodOptions. -var ( - // optional trpcv2.api.HttpRule http = 1157; - E_Http = &file_trpcv2_api_annotations_proto_extTypes[0] -) - -var File_trpcv2_api_annotations_proto protoreflect.FileDescriptor - -var file_trpcv2_api_annotations_proto_rawDesc = []byte{ - 0x0a, 0x1c, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, - 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x1a, 0x15, 0x74, 0x72, 0x70, 0x63, - 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x3a, 0x49, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x1e, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x85, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x42, 0x50, - 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, - 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, - 0x2f, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, - 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, - 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var file_trpcv2_api_annotations_proto_goTypes = []interface{}{ - (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions - (*HttpRule)(nil), // 1: trpcv2.api.HttpRule -} -var file_trpcv2_api_annotations_proto_depIdxs = []int32{ - 0, // 0: trpcv2.api.http:extendee -> google.protobuf.MethodOptions - 1, // 1: trpcv2.api.http:type_name -> trpcv2.api.HttpRule - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 1, // [1:2] is the sub-list for extension type_name - 0, // [0:1] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_trpcv2_api_annotations_proto_init() } -func file_trpcv2_api_annotations_proto_init() { - if File_trpcv2_api_annotations_proto != nil { - return - } - file_trpcv2_api_http_proto_init() - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_trpcv2_api_annotations_proto_rawDesc, - NumEnums: 0, - NumMessages: 0, - NumExtensions: 1, - NumServices: 0, - }, - GoTypes: file_trpcv2_api_annotations_proto_goTypes, - DependencyIndexes: file_trpcv2_api_annotations_proto_depIdxs, - ExtensionInfos: file_trpcv2_api_annotations_proto_extTypes, - }.Build() - File_trpcv2_api_annotations_proto = out.File - file_trpcv2_api_annotations_proto_rawDesc = nil - file_trpcv2_api_annotations_proto_goTypes = nil - file_trpcv2_api_annotations_proto_depIdxs = nil -} diff --git a/pb/go/trpcv2/proto/trpc_options.pb.go b/pb/go/trpcv2/proto/trpc_options.pb.go deleted file mode 100644 index 4bebb66..0000000 --- a/pb/go/trpcv2/proto/trpc_options.pb.go +++ /dev/null @@ -1,114 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.4 -// source: trpcv2/proto/trpc_options.proto - -package proto - -import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -var file_trpcv2_proto_trpc_options_proto_extTypes = []protoimpl.ExtensionInfo{ - { - ExtendedType: (*descriptor.MethodOptions)(nil), - ExtensionType: (*string)(nil), - Field: 1155, - Name: "trpcv2.alias", - Tag: "bytes,1155,opt,name=alias", - Filename: "trpcv2/proto/trpc_options.proto", - }, - { - ExtendedType: (*descriptor.FieldOptions)(nil), - ExtensionType: (*string)(nil), - Field: 1156, - Name: "trpcv2.go_tag", - Tag: "bytes,1156,opt,name=go_tag", - Filename: "trpcv2/proto/trpc_options.proto", - }, -} - -// Extension fields to descriptor.MethodOptions. -var ( - // optional string alias = 1155; - E_Alias = &file_trpcv2_proto_trpc_options_proto_extTypes[0] -) - -// Extension fields to descriptor.FieldOptions. -var ( - // optional string go_tag = 1156; - E_GoTag = &file_trpcv2_proto_trpc_options_proto_extTypes[1] -) - -var File_trpcv2_proto_trpc_options_proto protoreflect.FileDescriptor - -var file_trpcv2_proto_trpc_options_proto_rawDesc = []byte{ - 0x0a, 0x1f, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, - 0x72, 0x70, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x06, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x35, 0x0a, 0x05, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x3a, 0x35, 0x0a, 0x06, 0x67, 0x6f, 0x5f, 0x74, 0x61, 0x67, 0x12, 0x1d, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x84, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x52, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, - 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x2e, - 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, - 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, - 0x2f, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var file_trpcv2_proto_trpc_options_proto_goTypes = []interface{}{ - (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions - (*descriptor.FieldOptions)(nil), // 1: google.protobuf.FieldOptions -} -var file_trpcv2_proto_trpc_options_proto_depIdxs = []int32{ - 0, // 0: trpcv2.alias:extendee -> google.protobuf.MethodOptions - 1, // 1: trpcv2.go_tag:extendee -> google.protobuf.FieldOptions - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 0, // [0:2] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_trpcv2_proto_trpc_options_proto_init() } -func file_trpcv2_proto_trpc_options_proto_init() { - if File_trpcv2_proto_trpc_options_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_trpcv2_proto_trpc_options_proto_rawDesc, - NumEnums: 0, - NumMessages: 0, - NumExtensions: 2, - NumServices: 0, - }, - GoTypes: file_trpcv2_proto_trpc_options_proto_goTypes, - DependencyIndexes: file_trpcv2_proto_trpc_options_proto_depIdxs, - ExtensionInfos: file_trpcv2_proto_trpc_options_proto_extTypes, - }.Build() - File_trpcv2_proto_trpc_options_proto = out.File - file_trpcv2_proto_trpc_options_proto_rawDesc = nil - file_trpcv2_proto_trpc_options_proto_goTypes = nil - file_trpcv2_proto_trpc_options_proto_depIdxs = nil -} diff --git a/pb/go/trpcv2/swagger/swagger.pb.go b/pb/go/trpcv2/swagger/swagger.pb.go deleted file mode 100644 index a79e8e5..0000000 --- a/pb/go/trpcv2/swagger/swagger.pb.go +++ /dev/null @@ -1,291 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.4 -// source: trpcv2/swagger/swagger.proto - -package swagger - -import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// to gen swagger json -type SwaggerRule struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Title string `protobuf:"bytes,50103,opt,name=title,proto3" json:"title,omitempty"` - Method string `protobuf:"bytes,50104,opt,name=method,proto3" json:"method,omitempty"` - Description string `protobuf:"bytes,50105,opt,name=description,proto3" json:"description,omitempty"` - Params []*SwaggerParam `protobuf:"bytes,50106,rep,name=params,proto3" json:"params,omitempty"` -} - -func (x *SwaggerRule) Reset() { - *x = SwaggerRule{} - if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_swagger_swagger_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwaggerRule) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwaggerRule) ProtoMessage() {} - -func (x *SwaggerRule) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_swagger_swagger_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SwaggerRule.ProtoReflect.Descriptor instead. -func (*SwaggerRule) Descriptor() ([]byte, []int) { - return file_trpcv2_swagger_swagger_proto_rawDescGZIP(), []int{0} -} - -func (x *SwaggerRule) GetTitle() string { - if x != nil { - return x.Title - } - return "" -} - -func (x *SwaggerRule) GetMethod() string { - if x != nil { - return x.Method - } - return "" -} - -func (x *SwaggerRule) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - -func (x *SwaggerRule) GetParams() []*SwaggerParam { - if x != nil { - return x.Params - } - return nil -} - -type SwaggerParam struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Required bool `protobuf:"varint,2,opt,name=required,proto3" json:"required,omitempty"` - Default string `protobuf:"bytes,3,opt,name=default,proto3" json:"default,omitempty"` -} - -func (x *SwaggerParam) Reset() { - *x = SwaggerParam{} - if protoimpl.UnsafeEnabled { - mi := &file_trpcv2_swagger_swagger_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwaggerParam) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwaggerParam) ProtoMessage() {} - -func (x *SwaggerParam) ProtoReflect() protoreflect.Message { - mi := &file_trpcv2_swagger_swagger_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SwaggerParam.ProtoReflect.Descriptor instead. -func (*SwaggerParam) Descriptor() ([]byte, []int) { - return file_trpcv2_swagger_swagger_proto_rawDescGZIP(), []int{1} -} - -func (x *SwaggerParam) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *SwaggerParam) GetRequired() bool { - if x != nil { - return x.Required - } - return false -} - -func (x *SwaggerParam) GetDefault() string { - if x != nil { - return x.Default - } - return "" -} - -var file_trpcv2_swagger_swagger_proto_extTypes = []protoimpl.ExtensionInfo{ - { - ExtendedType: (*descriptor.MethodOptions)(nil), - ExtensionType: (*SwaggerRule)(nil), - Field: 1156, - Name: "trpcv2.swagger", - Tag: "bytes,1156,opt,name=swagger", - Filename: "trpcv2/swagger/swagger.proto", - }, -} - -// Extension fields to descriptor.MethodOptions. -var ( - // optional trpcv2.SwaggerRule swagger = 1156; - E_Swagger = &file_trpcv2_swagger_swagger_proto_extTypes[0] -) - -var File_trpcv2_swagger_swagger_proto protoreflect.FileDescriptor - -var file_trpcv2_swagger_swagger_proto_rawDesc = []byte{ - 0x0a, 0x1c, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, - 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, - 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x01, 0x0a, 0x0b, 0x53, 0x77, 0x61, - 0x67, 0x67, 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x18, 0xb7, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x12, 0x18, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0xb8, 0x87, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x22, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xb9, 0x87, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, - 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0xba, 0x87, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x58, - 0x0a, 0x0c, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x4e, 0x0a, 0x07, 0x73, 0x77, 0x61, 0x67, - 0x67, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x84, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x70, - 0x63, 0x76, 0x32, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x52, - 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x42, 0x54, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, - 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x2e, 0x77, - 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, - 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, - 0x74, 0x72, 0x70, 0x63, 0x76, 0x32, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_trpcv2_swagger_swagger_proto_rawDescOnce sync.Once - file_trpcv2_swagger_swagger_proto_rawDescData = file_trpcv2_swagger_swagger_proto_rawDesc -) - -func file_trpcv2_swagger_swagger_proto_rawDescGZIP() []byte { - file_trpcv2_swagger_swagger_proto_rawDescOnce.Do(func() { - file_trpcv2_swagger_swagger_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpcv2_swagger_swagger_proto_rawDescData) - }) - return file_trpcv2_swagger_swagger_proto_rawDescData -} - -var file_trpcv2_swagger_swagger_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_trpcv2_swagger_swagger_proto_goTypes = []interface{}{ - (*SwaggerRule)(nil), // 0: trpcv2.SwaggerRule - (*SwaggerParam)(nil), // 1: trpcv2.SwaggerParam - (*descriptor.MethodOptions)(nil), // 2: google.protobuf.MethodOptions -} -var file_trpcv2_swagger_swagger_proto_depIdxs = []int32{ - 1, // 0: trpcv2.SwaggerRule.params:type_name -> trpcv2.SwaggerParam - 2, // 1: trpcv2.swagger:extendee -> google.protobuf.MethodOptions - 0, // 2: trpcv2.swagger:type_name -> trpcv2.SwaggerRule - 3, // [3:3] is the sub-list for method output_type - 3, // [3:3] is the sub-list for method input_type - 2, // [2:3] is the sub-list for extension type_name - 1, // [1:2] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name -} - -func init() { file_trpcv2_swagger_swagger_proto_init() } -func file_trpcv2_swagger_swagger_proto_init() { - if File_trpcv2_swagger_swagger_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_trpcv2_swagger_swagger_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwaggerRule); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_trpcv2_swagger_swagger_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwaggerParam); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_trpcv2_swagger_swagger_proto_rawDesc, - NumEnums: 0, - NumMessages: 2, - NumExtensions: 1, - NumServices: 0, - }, - GoTypes: file_trpcv2_swagger_swagger_proto_goTypes, - DependencyIndexes: file_trpcv2_swagger_swagger_proto_depIdxs, - MessageInfos: file_trpcv2_swagger_swagger_proto_msgTypes, - ExtensionInfos: file_trpcv2_swagger_swagger_proto_extTypes, - }.Build() - File_trpcv2_swagger_swagger_proto = out.File - file_trpcv2_swagger_swagger_proto_rawDesc = nil - file_trpcv2_swagger_swagger_proto_goTypes = nil - file_trpcv2_swagger_swagger_proto_depIdxs = nil -} diff --git a/trpcv2/BUILD b/trpc/v2/BUILD similarity index 100% rename from trpcv2/BUILD rename to trpc/v2/BUILD diff --git a/trpcv2/api/BUILD b/trpc/v2/api/BUILD similarity index 89% rename from trpcv2/api/BUILD rename to trpc/v2/api/BUILD index cb57431..59f848f 100644 --- a/trpcv2/api/BUILD +++ b/trpc/v2/api/BUILD @@ -6,7 +6,7 @@ proto_library( "annotations.proto", ], deps = [ - "//trpcv2/api:http_proto", + "//trpc/v2/api:http_proto", "@com_google_protobuf//:descriptor_proto", ], ) diff --git a/trpcv2/api/annotations.proto b/trpc/v2/api/annotations.proto similarity index 59% rename from trpcv2/api/annotations.proto rename to trpc/v2/api/annotations.proto index 294606f..9ce2e26 100644 --- a/trpcv2/api/annotations.proto +++ b/trpc/v2/api/annotations.proto @@ -1,11 +1,11 @@ syntax = "proto3"; -package trpcv2.api; +package trpc.v2.api; -import "trpcv2/api/http.proto"; +import "trpc/v2/api/http.proto"; import "google/protobuf/descriptor.proto"; -option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpcv2/api"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/v2/api"; option java_package = "com.tencent.trpc.protobuf.ext"; extend google.protobuf.MethodOptions { diff --git a/trpcv2/api/http.proto b/trpc/v2/api/http.proto similarity index 96% rename from trpcv2/api/http.proto rename to trpc/v2/api/http.proto index a954fc6..296dfc4 100644 --- a/trpcv2/api/http.proto +++ b/trpc/v2/api/http.proto @@ -1,8 +1,8 @@ syntax = "proto3"; -package trpcv2.api; +package trpc.v2.api; -option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpcv2/api"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/v2/api"; option java_package = "com.tencent.trpc.protobuf.ext"; message HttpRule { diff --git a/trpcv2/proto/BUILD b/trpc/v2/proto/BUILD similarity index 100% rename from trpcv2/proto/BUILD rename to trpc/v2/proto/BUILD diff --git a/trpcv2/proto/trpc_options.proto b/trpc/v2/proto/trpc_options.proto similarity index 73% rename from trpcv2/proto/trpc_options.proto rename to trpc/v2/proto/trpc_options.proto index 97e1a6a..e41ef01 100644 --- a/trpcv2/proto/trpc_options.proto +++ b/trpc/v2/proto/trpc_options.proto @@ -2,9 +2,9 @@ syntax = "proto3"; import "google/protobuf/descriptor.proto"; -package trpcv2; +package trpc.v2; -option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpcv2/proto"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/v2/proto"; option java_package = "com.tencent.trpc.protobuf.ext"; extend google.protobuf.MethodOptions { diff --git a/trpcv2/swagger/BUILD b/trpc/v2/swagger/BUILD similarity index 100% rename from trpcv2/swagger/BUILD rename to trpc/v2/swagger/BUILD diff --git a/trpcv2/swagger/swagger.proto b/trpc/v2/swagger/swagger.proto similarity index 83% rename from trpcv2/swagger/swagger.proto rename to trpc/v2/swagger/swagger.proto index 5af1665..501f9df 100644 --- a/trpcv2/swagger/swagger.proto +++ b/trpc/v2/swagger/swagger.proto @@ -1,8 +1,8 @@ syntax = "proto3"; import "google/protobuf/descriptor.proto"; -package trpcv2; +package trpc.v2; -option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpcv2/swagger"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/v2/swagger"; option java_package = "com.tencent.trpc.protobuf.ext"; extend google.protobuf.MethodOptions { diff --git a/trpcv2/trpc.proto b/trpc/v2/trpc.proto similarity index 99% rename from trpcv2/trpc.proto rename to trpc/v2/trpc.proto index 596b9e7..b8079a6 100644 --- a/trpcv2/trpc.proto +++ b/trpc/v2/trpc.proto @@ -1,8 +1,8 @@ syntax = "proto3"; -package trpcv2; +package trpc.v2; -option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpcv2;trpc"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/v2;trpc"; option java_package = "com.tencent.trpc.proto.standard.common"; option java_outer_classname = "TRPCProtocol"; diff --git a/trpcv2/validate/BUILD b/trpc/v2/validate/BUILD similarity index 100% rename from trpcv2/validate/BUILD rename to trpc/v2/validate/BUILD diff --git a/trpcv2/validate/validate.proto b/trpc/v2/validate/validate.proto similarity index 99% rename from trpcv2/validate/validate.proto rename to trpc/v2/validate/validate.proto index f00ee15..12ae227 100644 --- a/trpcv2/validate/validate.proto +++ b/trpc/v2/validate/validate.proto @@ -1,7 +1,7 @@ syntax = "proto2"; -package trpcv2.validate; +package trpc.v2.validate; -option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpcv2/validate"; +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/v2/validate"; option java_package = "com.tencent.trpc.protobuf.ext"; import "google/protobuf/descriptor.proto"; From e0528882a9ee23a4bcc8c1797444786823424565 Mon Sep 17 00:00:00 2001 From: bochenchen Date: Wed, 18 Jan 2023 16:12:26 +0800 Subject: [PATCH 67/85] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81attachment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TAPD: --story=882249145 --- trpc/trpc.proto | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/trpc/trpc.proto b/trpc/trpc.proto index 0d35069..52723cb 100644 --- a/trpc/trpc.proto +++ b/trpc/trpc.proto @@ -463,6 +463,9 @@ message RequestProtocol { // 比如: gzip/snappy/..., 默认不使用 // 具体值与TrpcCompressType对应 uint32 content_encoding = 11; + + // attachment大小 + uint32 attachment_size = 12; } // 响应协议头 @@ -511,4 +514,7 @@ message ResponseProtocol { // 比如: gzip/snappy/..., 默认不使用 // 具体值与TrpcCompressType对应 uint32 content_encoding = 10; + + // attachment大小 + uint32 attachment_size = 12; } From d08fc5871a5df7089511c3d59787e3fe4b6b61b5 Mon Sep 17 00:00:00 2001 From: bochenchen Date: Thu, 23 Feb 2023 17:52:39 +0800 Subject: [PATCH 68/85] =?UTF-8?q?feat:=20=E5=8F=91=E5=B8=83v0.3.0=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TAPD: --story=882465989 --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc9956a..9265029 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Change Log +## [0.3.0](https://git.woa.com/trpc/trpc-protocol/tree/v0.3.0)(2023-02-23) +### Features And Improvements +- 修整trpc目录下各个proto文件的路径名以规范化 +- 提供trpc/v2子目录以供 trpc-go trpc.tech v2 使用 +- 增加java package选项 +- 拓展trpc协议支持attachment + +### Thanks to our Contributors +bochenchen(陈维翔);wineguo(郭琪周) + ## [pb/go/trpc/v2.0.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v2.0.0)(2022-11-30) - 修整 trpc 目录下各个 proto 文件的路径名以规范化 From 9e2cb52dc854bf5cdcd02e64eae766b482076090 Mon Sep 17 00:00:00 2001 From: amdahliu Date: Wed, 19 Apr 2023 14:38:03 +0800 Subject: [PATCH 69/85] release pb/go/trpc/v0.1.0 image.png - and fix url of pb/go/trpc/v2.0.0-alpha --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9265029..04d7a26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## [pb/go/trpc/v0.1.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v0.1.0)(2023-04-19) +### Features +- 新增 trpc 协议 + ## [0.3.0](https://git.woa.com/trpc/trpc-protocol/tree/v0.3.0)(2023-02-23) ### Features And Improvements - 修整trpc目录下各个proto文件的路径名以规范化 @@ -10,7 +14,7 @@ ### Thanks to our Contributors bochenchen(陈维翔);wineguo(郭琪周) -## [pb/go/trpc/v2.0.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v2.0.0)(2022-11-30) +## [pb/go/trpc/v2.0.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v2.0.0-alpha)(2022-11-30) - 修整 trpc 目录下各个 proto 文件的路径名以规范化 - 提供 trpc/v2 子目录以供 trpc-go trpc.tech v2 使用 From 1538da91a5822d4064e49f02a06a7ef33a621269 Mon Sep 17 00:00:00 2001 From: amdahliu Date: Tue, 9 May 2023 10:49:26 +0800 Subject: [PATCH 70/85] {trpc.proto, trpc.pb.go}: Add TRPC_CLIENT_READ_FRAME_ERR(171) Error Code to Align with tRPC-Go related mr: lsc: import trpcpb file from common trpc-protocol repository https://git.woa.com/trpc-go/trpc-go/merge_requests/1769 TAPD: --story=883647209 --- CHANGELOG.md | 4 + Makefile | 9 +- pb/go/trpc/api/annotations.pb.go | 14 +- pb/go/trpc/api/http.pb.go | 5 +- pb/go/trpc/go.mod | 5 +- pb/go/trpc/go.sum | 7 +- pb/go/trpc/proto/trpc_options.pb.go | 18 +- pb/go/trpc/swagger/swagger.pb.go | 16 +- pb/go/trpc/trpc.pb.go | 445 +++++++++++++------------ pb/go/trpc/v2/api/annotations.pb.go | 14 +- pb/go/trpc/v2/api/http.pb.go | 5 +- pb/go/trpc/v2/go.mod | 5 +- pb/go/trpc/v2/go.sum | 7 +- pb/go/trpc/v2/proto/trpc_options.pb.go | 18 +- pb/go/trpc/v2/swagger/swagger.pb.go | 16 +- pb/go/trpc/v2/trpc.pb.go | 4 +- pb/go/trpc/v2/validate/validate.pb.go | 137 ++++---- pb/go/trpc/validate/validate.pb.go | 137 ++++---- trpc/trpc.proto | 3 + 19 files changed, 451 insertions(+), 418 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 04d7a26..933a625 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## [pb/go/trpc/v0.1.1](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v0.1.1)(2023-05-09) +### Features +- 新增客户端读取 Frame 错误码 TRPC_CLIENT_READ_FRAME_ERR(171) + ## [pb/go/trpc/v0.1.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v0.1.0)(2023-04-19) ### Features - 新增 trpc 协议 diff --git a/Makefile b/Makefile index 47af0d9..8ae5d7f 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,13 @@ DIR=pb/go +INCLUDE_GOOGLE_PB_PATH=/usr/local/include all: rm -rf $(DIR) mkdir -p $(DIR) - protoc -I/usr/local/include -I.\ + protoc -I$(INCLUDE_GOOGLE_PB_PATH) -I.\ --go_out=paths=source_relative:./$(DIR) \ ./trpc/api/annotations.proto \ ./trpc/api/http.proto - protoc -I/usr/local/include -I.\ + protoc -I$(INCLUDE_GOOGLE_PB_PATH) -I.\ --go_out=./$(DIR) \ ./trpc/trpc.proto \ ./trpc/proto/trpc_options.proto \ @@ -17,11 +18,11 @@ all: cd ./$(DIR)/trpc && go mod init git.woa.com/trpc/trpc-protocol/$(DIR)/trpc && go mod tidy && cd - # trpc v2 - protoc -I/usr/local/include -I.\ + protoc -I$(INCLUDE_GOOGLE_PB_PATH) -I.\ --go_out=paths=source_relative:./$(DIR) \ ./trpc/v2/api/annotations.proto \ ./trpc/v2/api/http.proto - protoc -I/usr/local/include -I.\ + protoc -I$(INCLUDE_GOOGLE_PB_PATH) -I.\ --go_out=./$(DIR) \ ./trpc/v2/trpc.proto \ ./trpc/v2/proto/trpc_options.proto \ diff --git a/pb/go/trpc/api/annotations.pb.go b/pb/go/trpc/api/annotations.pb.go index e8eaa27..057e756 100644 --- a/pb/go/trpc/api/annotations.pb.go +++ b/pb/go/trpc/api/annotations.pb.go @@ -1,15 +1,15 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc-gen-go v1.28.1 +// protoc v3.19.1 // source: trpc/api/annotations.proto package api import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" ) @@ -22,7 +22,7 @@ const ( var file_trpc_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ { - ExtendedType: (*descriptor.MethodOptions)(nil), + ExtendedType: (*descriptorpb.MethodOptions)(nil), ExtensionType: (*HttpRule)(nil), Field: 50201, Name: "trpc.api.http", @@ -31,7 +31,7 @@ var file_trpc_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ }, } -// Extension fields to descriptor.MethodOptions. +// Extension fields to descriptorpb.MethodOptions. var ( // optional trpc.api.HttpRule http = 50201; E_Http = &file_trpc_api_annotations_proto_extTypes[0] @@ -59,8 +59,8 @@ var file_trpc_api_annotations_proto_rawDesc = []byte{ } var file_trpc_api_annotations_proto_goTypes = []interface{}{ - (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions - (*HttpRule)(nil), // 1: trpc.api.HttpRule + (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*HttpRule)(nil), // 1: trpc.api.HttpRule } var file_trpc_api_annotations_proto_depIdxs = []int32{ 0, // 0: trpc.api.http:extendee -> google.protobuf.MethodOptions diff --git a/pb/go/trpc/api/http.pb.go b/pb/go/trpc/api/http.pb.go index 3698ad3..84f2211 100644 --- a/pb/go/trpc/api/http.pb.go +++ b/pb/go/trpc/api/http.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc-gen-go v1.28.1 +// protoc v3.19.1 // source: trpc/api/http.proto package api @@ -34,6 +34,7 @@ type HttpRule struct { // can be defined using the 'custom' field. // // Types that are assignable to Pattern: + // // *HttpRule_Get // *HttpRule_Put // *HttpRule_Post diff --git a/pb/go/trpc/go.mod b/pb/go/trpc/go.mod index 97edffb..e39f073 100644 --- a/pb/go/trpc/go.mod +++ b/pb/go/trpc/go.mod @@ -2,7 +2,4 @@ module git.woa.com/trpc/trpc-protocol/pb/go/trpc go 1.16 -require ( - github.com/golang/protobuf v1.5.2 - google.golang.org/protobuf v1.28.1 -) +require google.golang.org/protobuf v1.30.0 diff --git a/pb/go/trpc/go.sum b/pb/go/trpc/go.sum index f415d59..1838366 100644 --- a/pb/go/trpc/go.sum +++ b/pb/go/trpc/go.sum @@ -1,11 +1,8 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= diff --git a/pb/go/trpc/proto/trpc_options.pb.go b/pb/go/trpc/proto/trpc_options.pb.go index 0163aa1..bec4306 100644 --- a/pb/go/trpc/proto/trpc_options.pb.go +++ b/pb/go/trpc/proto/trpc_options.pb.go @@ -1,15 +1,15 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc-gen-go v1.28.1 +// protoc v3.19.1 // source: trpc/proto/trpc_options.proto package proto import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" ) @@ -22,7 +22,7 @@ const ( var file_trpc_proto_trpc_options_proto_extTypes = []protoimpl.ExtensionInfo{ { - ExtendedType: (*descriptor.MethodOptions)(nil), + ExtendedType: (*descriptorpb.MethodOptions)(nil), ExtensionType: (*string)(nil), Field: 50001, Name: "trpc.alias", @@ -30,7 +30,7 @@ var file_trpc_proto_trpc_options_proto_extTypes = []protoimpl.ExtensionInfo{ Filename: "trpc/proto/trpc_options.proto", }, { - ExtendedType: (*descriptor.FieldOptions)(nil), + ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*string)(nil), Field: 50050, Name: "trpc.go_tag", @@ -39,13 +39,13 @@ var file_trpc_proto_trpc_options_proto_extTypes = []protoimpl.ExtensionInfo{ }, } -// Extension fields to descriptor.MethodOptions. +// Extension fields to descriptorpb.MethodOptions. var ( // optional string alias = 50001; E_Alias = &file_trpc_proto_trpc_options_proto_extTypes[0] ) -// Extension fields to descriptor.FieldOptions. +// Extension fields to descriptorpb.FieldOptions. var ( // optional string go_tag = 50050; E_GoTag = &file_trpc_proto_trpc_options_proto_extTypes[1] @@ -75,8 +75,8 @@ var file_trpc_proto_trpc_options_proto_rawDesc = []byte{ } var file_trpc_proto_trpc_options_proto_goTypes = []interface{}{ - (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions - (*descriptor.FieldOptions)(nil), // 1: google.protobuf.FieldOptions + (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*descriptorpb.FieldOptions)(nil), // 1: google.protobuf.FieldOptions } var file_trpc_proto_trpc_options_proto_depIdxs = []int32{ 0, // 0: trpc.alias:extendee -> google.protobuf.MethodOptions diff --git a/pb/go/trpc/swagger/swagger.pb.go b/pb/go/trpc/swagger/swagger.pb.go index 95e0783..1eb8660 100644 --- a/pb/go/trpc/swagger/swagger.pb.go +++ b/pb/go/trpc/swagger/swagger.pb.go @@ -1,15 +1,15 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc-gen-go v1.28.1 +// protoc v3.19.1 // source: trpc/swagger/swagger.proto package swagger import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" sync "sync" ) @@ -158,7 +158,7 @@ func (x *SwaggerParam) GetDefault() string { var file_trpc_swagger_swagger_proto_extTypes = []protoimpl.ExtensionInfo{ { - ExtendedType: (*descriptor.MethodOptions)(nil), + ExtendedType: (*descriptorpb.MethodOptions)(nil), ExtensionType: (*SwaggerRule)(nil), Field: 50101, Name: "trpc.swagger", @@ -167,7 +167,7 @@ var file_trpc_swagger_swagger_proto_extTypes = []protoimpl.ExtensionInfo{ }, } -// Extension fields to descriptor.MethodOptions. +// Extension fields to descriptorpb.MethodOptions. var ( // optional trpc.SwaggerRule swagger = 50101; E_Swagger = &file_trpc_swagger_swagger_proto_extTypes[0] @@ -222,9 +222,9 @@ func file_trpc_swagger_swagger_proto_rawDescGZIP() []byte { var file_trpc_swagger_swagger_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_trpc_swagger_swagger_proto_goTypes = []interface{}{ - (*SwaggerRule)(nil), // 0: trpc.SwaggerRule - (*SwaggerParam)(nil), // 1: trpc.SwaggerParam - (*descriptor.MethodOptions)(nil), // 2: google.protobuf.MethodOptions + (*SwaggerRule)(nil), // 0: trpc.SwaggerRule + (*SwaggerParam)(nil), // 1: trpc.SwaggerParam + (*descriptorpb.MethodOptions)(nil), // 2: google.protobuf.MethodOptions } var file_trpc_swagger_swagger_proto_depIdxs = []int32{ 1, // 0: trpc.SwaggerRule.params:type_name -> trpc.SwaggerParam diff --git a/pb/go/trpc/trpc.pb.go b/pb/go/trpc/trpc.pb.go index 0c8216c..c19e1cc 100644 --- a/pb/go/trpc/trpc.pb.go +++ b/pb/go/trpc/trpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc-gen-go v1.28.1 +// protoc v3.19.1 // source: trpc/trpc.proto package trpc @@ -598,6 +598,8 @@ const ( TrpcRetCode_TRPC_CLIENT_VALIDATE_ERR TrpcRetCode = 151 // 上游主动断开连接,提前取消请求错误 TrpcRetCode_TRPC_CLIENT_CANCELED_ERR TrpcRetCode = 161 + // 客户端读取 Frame 错误 + TrpcRetCode_TRPC_CLIENT_READ_FRAME_ERR TrpcRetCode = 171 // 服务端流式网络错误, 详细错误码需要在实现过程中再梳理 TrpcRetCode_TRPC_STREAM_SERVER_NETWORK_ERR TrpcRetCode = 201 // 服务端流式传输错误, 详细错误码需要在实现过程中再梳理 @@ -668,6 +670,7 @@ var ( 141: "TRPC_CLIENT_NETWORK_ERR", 151: "TRPC_CLIENT_VALIDATE_ERR", 161: "TRPC_CLIENT_CANCELED_ERR", + 171: "TRPC_CLIENT_READ_FRAME_ERR", 201: "TRPC_STREAM_SERVER_NETWORK_ERR", 211: "TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR", 221: "TRPC_STREAM_SERVER_ENCODE_ERR", @@ -719,6 +722,7 @@ var ( "TRPC_CLIENT_NETWORK_ERR": 141, "TRPC_CLIENT_VALIDATE_ERR": 151, "TRPC_CLIENT_CANCELED_ERR": 161, + "TRPC_CLIENT_READ_FRAME_ERR": 171, "TRPC_STREAM_SERVER_NETWORK_ERR": 201, "TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR": 211, "TRPC_STREAM_SERVER_ENCODE_ERR": 221, @@ -1210,6 +1214,8 @@ type RequestProtocol struct { // 比如: gzip/snappy/..., 默认不使用 // 具体值与TrpcCompressType对应 ContentEncoding uint32 `protobuf:"varint,11,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` + // attachment大小 + AttachmentSize uint32 `protobuf:"varint,12,opt,name=attachment_size,json=attachmentSize,proto3" json:"attachment_size,omitempty"` } func (x *RequestProtocol) Reset() { @@ -1321,6 +1327,13 @@ func (x *RequestProtocol) GetContentEncoding() uint32 { return 0 } +func (x *RequestProtocol) GetAttachmentSize() uint32 { + if x != nil { + return x.AttachmentSize + } + return 0 +} + // 响应协议头 type ResponseProtocol struct { state protoimpl.MessageState @@ -1362,6 +1375,8 @@ type ResponseProtocol struct { // 比如: gzip/snappy/..., 默认不使用 // 具体值与TrpcCompressType对应 ContentEncoding uint32 `protobuf:"varint,10,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` + // attachment大小 + AttachmentSize uint32 `protobuf:"varint,12,opt,name=attachment_size,json=attachmentSize,proto3" json:"attachment_size,omitempty"` } func (x *ResponseProtocol) Reset() { @@ -1466,6 +1481,13 @@ func (x *ResponseProtocol) GetContentEncoding() uint32 { return 0 } +func (x *ResponseProtocol) GetAttachmentSize() uint32 { + if x != nil { + return x.AttachmentSize + } + return 0 +} + var File_trpc_trpc_proto protoreflect.FileDescriptor var file_trpc_trpc_proto_rawDesc = []byte{ @@ -1532,7 +1554,7 @@ var file_trpc_trpc_proto_rawDesc = []byte{ 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb9, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe2, 0x03, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, @@ -1556,213 +1578,220 @@ var file_trpc_trpc_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa7, 0x03, 0x0a, 0x10, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, - 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, - 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, - 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x5f, - 0x72, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x75, 0x6e, 0x63, 0x52, - 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, - 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, - 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x39, 0x0a, 0x09, 0x54, 0x72, 0x70, 0x63, 0x4d, 0x61, 0x67, 0x69, - 0x63, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, - 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0xb0, 0x12, 0x2a, - 0x40, 0x0a, 0x11, 0x54, 0x72, 0x70, 0x63, 0x44, 0x61, 0x74, 0x61, 0x46, 0x72, 0x61, 0x6d, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, - 0x52, 0x59, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, - 0x01, 0x2a, 0x9a, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x49, - 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, - 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, - 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x46, 0x45, 0x45, 0x44, 0x42, 0x41, 0x43, 0x4b, 0x10, - 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, - 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x04, 0x2a, 0x43, - 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, 0x6f, 0x73, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x52, 0x45, 0x53, 0x45, - 0x54, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x56, 0x31, 0x10, 0x00, 0x2a, 0x39, 0x0a, 0x0c, 0x54, 0x72, - 0x70, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, - 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4f, 0x4e, 0x45, 0x57, 0x41, 0x59, 0x5f, 0x43, - 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x2a, 0xa1, 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x70, 0x63, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x44, 0x59, 0x45, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, - 0x47, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x45, 0x4e, 0x56, 0x5f, 0x4d, - 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x47, 0x52, 0x49, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x08, 0x12, - 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x54, 0x4e, 0x41, 0x4d, 0x45, 0x5f, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x2a, 0xb8, 0x01, 0x0a, 0x15, 0x54, 0x72, - 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, - 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x4a, 0x43, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, - 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x43, - 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x46, 0x4c, - 0x41, 0x54, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, - 0x03, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4e, 0x4f, 0x4f, 0x50, 0x5f, 0x45, - 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, - 0x44, 0x45, 0x10, 0x06, 0x2a, 0xb8, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, - 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x5a, 0x49, - 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, - 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x5a, - 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x1f, - 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, - 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x2a, - 0xb0, 0x0d, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, - 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, - 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, - 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, - 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, - 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, - 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, - 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, - 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, - 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, - 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, - 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, - 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, - 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, - 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, - 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xa1, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, - 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, - 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, - 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, - 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, - 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, - 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, - 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, - 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, - 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, - 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, + 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, + 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0xd0, 0x03, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x65, 0x74, + 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x66, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, + 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, + 0x27, 0x0a, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x39, 0x0a, 0x09, 0x54, 0x72, 0x70, 0x63, 0x4d, 0x61, + 0x67, 0x69, 0x63, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, + 0x55, 0x4c, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0xb0, + 0x12, 0x2a, 0x40, 0x0a, 0x11, 0x54, 0x72, 0x70, 0x63, 0x44, 0x61, 0x74, 0x61, 0x46, 0x72, 0x61, + 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, + 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, + 0x45, 0x10, 0x01, 0x2a, 0x9a, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, + 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x46, 0x45, 0x45, 0x44, 0x42, 0x41, 0x43, + 0x4b, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x04, + 0x2a, 0x43, 0x0a, 0x13, 0x54, 0x72, 0x70, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6c, + 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x00, 0x12, 0x15, + 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x52, 0x45, + 0x53, 0x45, 0x54, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x56, 0x31, 0x10, 0x00, 0x2a, 0x39, 0x0a, 0x0c, + 0x54, 0x72, 0x70, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x55, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, + 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4f, 0x4e, 0x45, 0x57, 0x41, 0x59, + 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x2a, 0xa1, 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x70, 0x63, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x17, 0x0a, + 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x59, 0x45, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x45, 0x53, + 0x53, 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x1a, + 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x45, 0x4e, 0x56, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x47, 0x52, 0x49, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, + 0x08, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x54, 0x4e, 0x41, 0x4d, + 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x2a, 0xb8, 0x01, 0x0a, 0x15, + 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, + 0x4f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4a, 0x43, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, + 0x01, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x45, + 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x46, 0x4c, 0x41, 0x54, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, + 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4e, 0x4f, 0x4f, 0x50, + 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x16, + 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, 0x54, 0x5f, 0x45, 0x4e, + 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x2a, 0xb8, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, + 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, + 0x5a, 0x49, 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, + 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x43, 0x4f, + 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x5a, 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, + 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, + 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, + 0x05, 0x2a, 0xd1, 0x0d, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, + 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, + 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, + 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, + 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, + 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, + 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, + 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, + 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, + 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x33, + 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, + 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, + 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7a, + 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, + 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7b, 0x12, 0x1c, 0x0a, + 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x56, 0x45, + 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, 0x1b, 0x0a, 0x16, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, + 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, + 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xa1, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xab, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, - 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, - 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfe, 0x01, 0x12, 0x23, 0x0a, 0x1e, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xad, - 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, - 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, - 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xb7, 0x02, 0x12, - 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, - 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, - 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, - 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcd, 0x02, 0x12, - 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, - 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, + 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, + 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, + 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, 0x22, 0x0a, 0x1d, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xde, 0x01, + 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, + 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, + 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x01, 0x12, + 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, + 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, + 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, + 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, + 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, 0x12, 0x26, 0x0a, + 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, + 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfe, 0x01, 0x12, + 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xad, 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, + 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xb7, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, + 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, - 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xdf, 0x02, 0x12, 0x26, 0x0a, 0x21, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, - 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, - 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe1, 0x02, 0x12, 0x28, 0x0a, 0x23, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, - 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, - 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xe8, 0x07, 0x42, 0x61, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, - 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0c, 0x54, 0x52, - 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x2e, - 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, - 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, - 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, 0x12, 0x2a, 0x0a, + 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, + 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, + 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xcd, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, + 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, 0x12, 0x20, 0x0a, + 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xdf, 0x02, 0x12, + 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, + 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe1, 0x02, 0x12, + 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, + 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, + 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x61, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, + 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, + 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x29, 0x67, + 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, + 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/go/trpc/v2/api/annotations.pb.go b/pb/go/trpc/v2/api/annotations.pb.go index d01a505..9f597f2 100644 --- a/pb/go/trpc/v2/api/annotations.pb.go +++ b/pb/go/trpc/v2/api/annotations.pb.go @@ -1,15 +1,15 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc-gen-go v1.28.1 +// protoc v3.19.1 // source: trpc/v2/api/annotations.proto package api import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" ) @@ -22,7 +22,7 @@ const ( var file_trpc_v2_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ { - ExtendedType: (*descriptor.MethodOptions)(nil), + ExtendedType: (*descriptorpb.MethodOptions)(nil), ExtensionType: (*HttpRule)(nil), Field: 1157, Name: "trpc.v2.api.http", @@ -31,7 +31,7 @@ var file_trpc_v2_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ }, } -// Extension fields to descriptor.MethodOptions. +// Extension fields to descriptorpb.MethodOptions. var ( // optional trpc.v2.api.HttpRule http = 1157; E_Http = &file_trpc_v2_api_annotations_proto_extTypes[0] @@ -60,8 +60,8 @@ var file_trpc_v2_api_annotations_proto_rawDesc = []byte{ } var file_trpc_v2_api_annotations_proto_goTypes = []interface{}{ - (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions - (*HttpRule)(nil), // 1: trpc.v2.api.HttpRule + (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*HttpRule)(nil), // 1: trpc.v2.api.HttpRule } var file_trpc_v2_api_annotations_proto_depIdxs = []int32{ 0, // 0: trpc.v2.api.http:extendee -> google.protobuf.MethodOptions diff --git a/pb/go/trpc/v2/api/http.pb.go b/pb/go/trpc/v2/api/http.pb.go index 2b74c82..a011656 100644 --- a/pb/go/trpc/v2/api/http.pb.go +++ b/pb/go/trpc/v2/api/http.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc-gen-go v1.28.1 +// protoc v3.19.1 // source: trpc/v2/api/http.proto package api @@ -34,6 +34,7 @@ type HttpRule struct { // can be defined using the 'custom' field. // // Types that are assignable to Pattern: + // // *HttpRule_Get // *HttpRule_Put // *HttpRule_Post diff --git a/pb/go/trpc/v2/go.mod b/pb/go/trpc/v2/go.mod index b532695..23ce2c2 100644 --- a/pb/go/trpc/v2/go.mod +++ b/pb/go/trpc/v2/go.mod @@ -2,7 +2,4 @@ module git.woa.com/trpc/trpc-protocol/pb/go/trpc/v2 go 1.16 -require ( - github.com/golang/protobuf v1.5.2 - google.golang.org/protobuf v1.28.1 -) +require google.golang.org/protobuf v1.30.0 diff --git a/pb/go/trpc/v2/go.sum b/pb/go/trpc/v2/go.sum index f415d59..1838366 100644 --- a/pb/go/trpc/v2/go.sum +++ b/pb/go/trpc/v2/go.sum @@ -1,11 +1,8 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= diff --git a/pb/go/trpc/v2/proto/trpc_options.pb.go b/pb/go/trpc/v2/proto/trpc_options.pb.go index 1956f0a..68cf391 100644 --- a/pb/go/trpc/v2/proto/trpc_options.pb.go +++ b/pb/go/trpc/v2/proto/trpc_options.pb.go @@ -1,15 +1,15 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc-gen-go v1.28.1 +// protoc v3.19.1 // source: trpc/v2/proto/trpc_options.proto package proto import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" ) @@ -22,7 +22,7 @@ const ( var file_trpc_v2_proto_trpc_options_proto_extTypes = []protoimpl.ExtensionInfo{ { - ExtendedType: (*descriptor.MethodOptions)(nil), + ExtendedType: (*descriptorpb.MethodOptions)(nil), ExtensionType: (*string)(nil), Field: 1155, Name: "trpc.v2.alias", @@ -30,7 +30,7 @@ var file_trpc_v2_proto_trpc_options_proto_extTypes = []protoimpl.ExtensionInfo{ Filename: "trpc/v2/proto/trpc_options.proto", }, { - ExtendedType: (*descriptor.FieldOptions)(nil), + ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*string)(nil), Field: 1156, Name: "trpc.v2.go_tag", @@ -39,13 +39,13 @@ var file_trpc_v2_proto_trpc_options_proto_extTypes = []protoimpl.ExtensionInfo{ }, } -// Extension fields to descriptor.MethodOptions. +// Extension fields to descriptorpb.MethodOptions. var ( // optional string alias = 1155; E_Alias = &file_trpc_v2_proto_trpc_options_proto_extTypes[0] ) -// Extension fields to descriptor.FieldOptions. +// Extension fields to descriptorpb.FieldOptions. var ( // optional string go_tag = 1156; E_GoTag = &file_trpc_v2_proto_trpc_options_proto_extTypes[1] @@ -75,8 +75,8 @@ var file_trpc_v2_proto_trpc_options_proto_rawDesc = []byte{ } var file_trpc_v2_proto_trpc_options_proto_goTypes = []interface{}{ - (*descriptor.MethodOptions)(nil), // 0: google.protobuf.MethodOptions - (*descriptor.FieldOptions)(nil), // 1: google.protobuf.FieldOptions + (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*descriptorpb.FieldOptions)(nil), // 1: google.protobuf.FieldOptions } var file_trpc_v2_proto_trpc_options_proto_depIdxs = []int32{ 0, // 0: trpc.v2.alias:extendee -> google.protobuf.MethodOptions diff --git a/pb/go/trpc/v2/swagger/swagger.pb.go b/pb/go/trpc/v2/swagger/swagger.pb.go index 5de99a6..5f632bc 100644 --- a/pb/go/trpc/v2/swagger/swagger.pb.go +++ b/pb/go/trpc/v2/swagger/swagger.pb.go @@ -1,15 +1,15 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc-gen-go v1.28.1 +// protoc v3.19.1 // source: trpc/v2/swagger/swagger.proto package swagger import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" sync "sync" ) @@ -158,7 +158,7 @@ func (x *SwaggerParam) GetDefault() string { var file_trpc_v2_swagger_swagger_proto_extTypes = []protoimpl.ExtensionInfo{ { - ExtendedType: (*descriptor.MethodOptions)(nil), + ExtendedType: (*descriptorpb.MethodOptions)(nil), ExtensionType: (*SwaggerRule)(nil), Field: 1156, Name: "trpc.v2.swagger", @@ -167,7 +167,7 @@ var file_trpc_v2_swagger_swagger_proto_extTypes = []protoimpl.ExtensionInfo{ }, } -// Extension fields to descriptor.MethodOptions. +// Extension fields to descriptorpb.MethodOptions. var ( // optional trpc.v2.SwaggerRule swagger = 1156; E_Swagger = &file_trpc_v2_swagger_swagger_proto_extTypes[0] @@ -223,9 +223,9 @@ func file_trpc_v2_swagger_swagger_proto_rawDescGZIP() []byte { var file_trpc_v2_swagger_swagger_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_trpc_v2_swagger_swagger_proto_goTypes = []interface{}{ - (*SwaggerRule)(nil), // 0: trpc.v2.SwaggerRule - (*SwaggerParam)(nil), // 1: trpc.v2.SwaggerParam - (*descriptor.MethodOptions)(nil), // 2: google.protobuf.MethodOptions + (*SwaggerRule)(nil), // 0: trpc.v2.SwaggerRule + (*SwaggerParam)(nil), // 1: trpc.v2.SwaggerParam + (*descriptorpb.MethodOptions)(nil), // 2: google.protobuf.MethodOptions } var file_trpc_v2_swagger_swagger_proto_depIdxs = []int32{ 1, // 0: trpc.v2.SwaggerRule.params:type_name -> trpc.v2.SwaggerParam diff --git a/pb/go/trpc/v2/trpc.pb.go b/pb/go/trpc/v2/trpc.pb.go index ae30bed..a30ff10 100644 --- a/pb/go/trpc/v2/trpc.pb.go +++ b/pb/go/trpc/v2/trpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc-gen-go v1.28.1 +// protoc v3.19.1 // source: trpc/v2/trpc.proto package trpc diff --git a/pb/go/trpc/v2/validate/validate.pb.go b/pb/go/trpc/v2/validate/validate.pb.go index e4f6e2c..048e8d6 100644 --- a/pb/go/trpc/v2/validate/validate.pb.go +++ b/pb/go/trpc/v2/validate/validate.pb.go @@ -1,17 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc-gen-go v1.28.1 +// protoc v3.19.1 // source: trpc/v2/validate/validate.proto package validate import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" - duration "github.com/golang/protobuf/ptypes/duration" - timestamp "github.com/golang/protobuf/ptypes/timestamp" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + durationpb "google.golang.org/protobuf/types/known/durationpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) @@ -94,6 +94,7 @@ type FieldRules struct { Message *MessageRules `protobuf:"bytes,17,opt,name=message" json:"message,omitempty"` // Types that are assignable to Type: + // // *FieldRules_Float // *FieldRules_Double // *FieldRules_Int32 @@ -2000,6 +2001,7 @@ type StringRules struct { // patterns // // Types that are assignable to WellKnown: + // // *StringRules_Email // *StringRules_Hostname // *StringRules_Ip @@ -2431,6 +2433,7 @@ type BytesRules struct { // patterns // // Types that are assignable to WellKnown: + // // *BytesRules_Ip // *BytesRules_Ipv4 // *BytesRules_Ipv6 @@ -3016,25 +3019,25 @@ type DurationRules struct { // Required specifies that this field must be set Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` // Const specifies that this field must be exactly the specified value - Const *duration.Duration `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + Const *durationpb.Duration `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` // Lt specifies that this field must be less than the specified value, // exclusive - Lt *duration.Duration `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` + Lt *durationpb.Duration `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` // Lt specifies that this field must be less than the specified value, // inclusive - Lte *duration.Duration `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` + Lte *durationpb.Duration `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` // Gt specifies that this field must be greater than the specified value, // exclusive - Gt *duration.Duration `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` + Gt *durationpb.Duration `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` // Gte specifies that this field must be greater than the specified value, // inclusive - Gte *duration.Duration `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` + Gte *durationpb.Duration `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` // In specifies that this field must be equal to one of the specified // values - In []*duration.Duration `protobuf:"bytes,7,rep,name=in" json:"in,omitempty"` + In []*durationpb.Duration `protobuf:"bytes,7,rep,name=in" json:"in,omitempty"` // NotIn specifies that this field cannot be equal to one of the specified // values - NotIn []*duration.Duration `protobuf:"bytes,8,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + NotIn []*durationpb.Duration `protobuf:"bytes,8,rep,name=not_in,json=notIn" json:"not_in,omitempty"` } func (x *DurationRules) Reset() { @@ -3076,49 +3079,49 @@ func (x *DurationRules) GetRequired() bool { return false } -func (x *DurationRules) GetConst() *duration.Duration { +func (x *DurationRules) GetConst() *durationpb.Duration { if x != nil { return x.Const } return nil } -func (x *DurationRules) GetLt() *duration.Duration { +func (x *DurationRules) GetLt() *durationpb.Duration { if x != nil { return x.Lt } return nil } -func (x *DurationRules) GetLte() *duration.Duration { +func (x *DurationRules) GetLte() *durationpb.Duration { if x != nil { return x.Lte } return nil } -func (x *DurationRules) GetGt() *duration.Duration { +func (x *DurationRules) GetGt() *durationpb.Duration { if x != nil { return x.Gt } return nil } -func (x *DurationRules) GetGte() *duration.Duration { +func (x *DurationRules) GetGte() *durationpb.Duration { if x != nil { return x.Gte } return nil } -func (x *DurationRules) GetIn() []*duration.Duration { +func (x *DurationRules) GetIn() []*durationpb.Duration { if x != nil { return x.In } return nil } -func (x *DurationRules) GetNotIn() []*duration.Duration { +func (x *DurationRules) GetNotIn() []*durationpb.Duration { if x != nil { return x.NotIn } @@ -3135,19 +3138,19 @@ type TimestampRules struct { // Required specifies that this field must be set Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` // Const specifies that this field must be exactly the specified value - Const *timestamp.Timestamp `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + Const *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` // Lt specifies that this field must be less than the specified value, // exclusive - Lt *timestamp.Timestamp `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` + Lt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` // Lte specifies that this field must be less than the specified value, // inclusive - Lte *timestamp.Timestamp `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` + Lte *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` // Gt specifies that this field must be greater than the specified value, // exclusive - Gt *timestamp.Timestamp `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` + Gt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` // Gte specifies that this field must be greater than the specified value, // inclusive - Gte *timestamp.Timestamp `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` + Gte *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` // LtNow specifies that this must be less than the current time. LtNow // can only be used with the Within rule. LtNow *bool `protobuf:"varint,7,opt,name=lt_now,json=ltNow" json:"lt_now,omitempty"` @@ -3157,7 +3160,7 @@ type TimestampRules struct { // Within specifies that this field must be within this duration of the // current time. This constraint can be used alone or with the LtNow and // GtNow rules. - Within *duration.Duration `protobuf:"bytes,9,opt,name=within" json:"within,omitempty"` + Within *durationpb.Duration `protobuf:"bytes,9,opt,name=within" json:"within,omitempty"` } func (x *TimestampRules) Reset() { @@ -3199,35 +3202,35 @@ func (x *TimestampRules) GetRequired() bool { return false } -func (x *TimestampRules) GetConst() *timestamp.Timestamp { +func (x *TimestampRules) GetConst() *timestamppb.Timestamp { if x != nil { return x.Const } return nil } -func (x *TimestampRules) GetLt() *timestamp.Timestamp { +func (x *TimestampRules) GetLt() *timestamppb.Timestamp { if x != nil { return x.Lt } return nil } -func (x *TimestampRules) GetLte() *timestamp.Timestamp { +func (x *TimestampRules) GetLte() *timestamppb.Timestamp { if x != nil { return x.Lte } return nil } -func (x *TimestampRules) GetGt() *timestamp.Timestamp { +func (x *TimestampRules) GetGt() *timestamppb.Timestamp { if x != nil { return x.Gt } return nil } -func (x *TimestampRules) GetGte() *timestamp.Timestamp { +func (x *TimestampRules) GetGte() *timestamppb.Timestamp { if x != nil { return x.Gte } @@ -3248,7 +3251,7 @@ func (x *TimestampRules) GetGtNow() bool { return false } -func (x *TimestampRules) GetWithin() *duration.Duration { +func (x *TimestampRules) GetWithin() *durationpb.Duration { if x != nil { return x.Within } @@ -3257,7 +3260,7 @@ func (x *TimestampRules) GetWithin() *duration.Duration { var file_trpc_v2_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ { - ExtendedType: (*descriptor.MessageOptions)(nil), + ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 1155, Name: "trpc.v2.validate.disabled", @@ -3265,7 +3268,7 @@ var file_trpc_v2_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ Filename: "trpc/v2/validate/validate.proto", }, { - ExtendedType: (*descriptor.MessageOptions)(nil), + ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 1156, Name: "trpc.v2.validate.ignored", @@ -3273,7 +3276,7 @@ var file_trpc_v2_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ Filename: "trpc/v2/validate/validate.proto", }, { - ExtendedType: (*descriptor.OneofOptions)(nil), + ExtendedType: (*descriptorpb.OneofOptions)(nil), ExtensionType: (*bool)(nil), Field: 1155, Name: "trpc.v2.validate.required", @@ -3281,7 +3284,7 @@ var file_trpc_v2_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ Filename: "trpc/v2/validate/validate.proto", }, { - ExtendedType: (*descriptor.FieldOptions)(nil), + ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*FieldRules)(nil), Field: 1155, Name: "trpc.v2.validate.rules", @@ -3290,7 +3293,7 @@ var file_trpc_v2_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ }, } -// Extension fields to descriptor.MessageOptions. +// Extension fields to descriptorpb.MessageOptions. var ( // Disabled nullifies any validation rules for this message, including any // message fields associated with it that do support validation. @@ -3303,7 +3306,7 @@ var ( E_Ignored = &file_trpc_v2_validate_validate_proto_extTypes[1] ) -// Extension fields to descriptor.OneofOptions. +// Extension fields to descriptorpb.OneofOptions. var ( // Required ensures that exactly one the field options in a oneof is set; // validation fails if no fields in the oneof are set. @@ -3312,7 +3315,7 @@ var ( E_Required = &file_trpc_v2_validate_validate_proto_extTypes[2] ) -// Extension fields to descriptor.FieldOptions. +// Extension fields to descriptorpb.FieldOptions. var ( // Rules specify the validations to be performed on this field. By default, // no validation is performed against a field. @@ -3759,35 +3762,35 @@ func file_trpc_v2_validate_validate_proto_rawDescGZIP() []byte { var file_trpc_v2_validate_validate_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_trpc_v2_validate_validate_proto_msgTypes = make([]protoimpl.MessageInfo, 23) var file_trpc_v2_validate_validate_proto_goTypes = []interface{}{ - (KnownRegex)(0), // 0: trpc.v2.validate.KnownRegex - (*FieldRules)(nil), // 1: trpc.v2.validate.FieldRules - (*FloatRules)(nil), // 2: trpc.v2.validate.FloatRules - (*DoubleRules)(nil), // 3: trpc.v2.validate.DoubleRules - (*Int32Rules)(nil), // 4: trpc.v2.validate.Int32Rules - (*Int64Rules)(nil), // 5: trpc.v2.validate.Int64Rules - (*UInt32Rules)(nil), // 6: trpc.v2.validate.UInt32Rules - (*UInt64Rules)(nil), // 7: trpc.v2.validate.UInt64Rules - (*SInt32Rules)(nil), // 8: trpc.v2.validate.SInt32Rules - (*SInt64Rules)(nil), // 9: trpc.v2.validate.SInt64Rules - (*Fixed32Rules)(nil), // 10: trpc.v2.validate.Fixed32Rules - (*Fixed64Rules)(nil), // 11: trpc.v2.validate.Fixed64Rules - (*SFixed32Rules)(nil), // 12: trpc.v2.validate.SFixed32Rules - (*SFixed64Rules)(nil), // 13: trpc.v2.validate.SFixed64Rules - (*BoolRules)(nil), // 14: trpc.v2.validate.BoolRules - (*StringRules)(nil), // 15: trpc.v2.validate.StringRules - (*BytesRules)(nil), // 16: trpc.v2.validate.BytesRules - (*EnumRules)(nil), // 17: trpc.v2.validate.EnumRules - (*MessageRules)(nil), // 18: trpc.v2.validate.MessageRules - (*RepeatedRules)(nil), // 19: trpc.v2.validate.RepeatedRules - (*MapRules)(nil), // 20: trpc.v2.validate.MapRules - (*AnyRules)(nil), // 21: trpc.v2.validate.AnyRules - (*DurationRules)(nil), // 22: trpc.v2.validate.DurationRules - (*TimestampRules)(nil), // 23: trpc.v2.validate.TimestampRules - (*duration.Duration)(nil), // 24: google.protobuf.Duration - (*timestamp.Timestamp)(nil), // 25: google.protobuf.Timestamp - (*descriptor.MessageOptions)(nil), // 26: google.protobuf.MessageOptions - (*descriptor.OneofOptions)(nil), // 27: google.protobuf.OneofOptions - (*descriptor.FieldOptions)(nil), // 28: google.protobuf.FieldOptions + (KnownRegex)(0), // 0: trpc.v2.validate.KnownRegex + (*FieldRules)(nil), // 1: trpc.v2.validate.FieldRules + (*FloatRules)(nil), // 2: trpc.v2.validate.FloatRules + (*DoubleRules)(nil), // 3: trpc.v2.validate.DoubleRules + (*Int32Rules)(nil), // 4: trpc.v2.validate.Int32Rules + (*Int64Rules)(nil), // 5: trpc.v2.validate.Int64Rules + (*UInt32Rules)(nil), // 6: trpc.v2.validate.UInt32Rules + (*UInt64Rules)(nil), // 7: trpc.v2.validate.UInt64Rules + (*SInt32Rules)(nil), // 8: trpc.v2.validate.SInt32Rules + (*SInt64Rules)(nil), // 9: trpc.v2.validate.SInt64Rules + (*Fixed32Rules)(nil), // 10: trpc.v2.validate.Fixed32Rules + (*Fixed64Rules)(nil), // 11: trpc.v2.validate.Fixed64Rules + (*SFixed32Rules)(nil), // 12: trpc.v2.validate.SFixed32Rules + (*SFixed64Rules)(nil), // 13: trpc.v2.validate.SFixed64Rules + (*BoolRules)(nil), // 14: trpc.v2.validate.BoolRules + (*StringRules)(nil), // 15: trpc.v2.validate.StringRules + (*BytesRules)(nil), // 16: trpc.v2.validate.BytesRules + (*EnumRules)(nil), // 17: trpc.v2.validate.EnumRules + (*MessageRules)(nil), // 18: trpc.v2.validate.MessageRules + (*RepeatedRules)(nil), // 19: trpc.v2.validate.RepeatedRules + (*MapRules)(nil), // 20: trpc.v2.validate.MapRules + (*AnyRules)(nil), // 21: trpc.v2.validate.AnyRules + (*DurationRules)(nil), // 22: trpc.v2.validate.DurationRules + (*TimestampRules)(nil), // 23: trpc.v2.validate.TimestampRules + (*durationpb.Duration)(nil), // 24: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp + (*descriptorpb.MessageOptions)(nil), // 26: google.protobuf.MessageOptions + (*descriptorpb.OneofOptions)(nil), // 27: google.protobuf.OneofOptions + (*descriptorpb.FieldOptions)(nil), // 28: google.protobuf.FieldOptions } var file_trpc_v2_validate_validate_proto_depIdxs = []int32{ 18, // 0: trpc.v2.validate.FieldRules.message:type_name -> trpc.v2.validate.MessageRules diff --git a/pb/go/trpc/validate/validate.pb.go b/pb/go/trpc/validate/validate.pb.go index 3d54db9..2accfa9 100644 --- a/pb/go/trpc/validate/validate.pb.go +++ b/pb/go/trpc/validate/validate.pb.go @@ -1,17 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.6.1 +// protoc-gen-go v1.28.1 +// protoc v3.19.1 // source: trpc/validate/validate.proto package validate import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" - duration "github.com/golang/protobuf/ptypes/duration" - timestamp "github.com/golang/protobuf/ptypes/timestamp" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + durationpb "google.golang.org/protobuf/types/known/durationpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) @@ -94,6 +94,7 @@ type FieldRules struct { Message *MessageRules `protobuf:"bytes,17,opt,name=message" json:"message,omitempty"` // Types that are assignable to Type: + // // *FieldRules_Float // *FieldRules_Double // *FieldRules_Int32 @@ -2000,6 +2001,7 @@ type StringRules struct { // patterns // // Types that are assignable to WellKnown: + // // *StringRules_Email // *StringRules_Hostname // *StringRules_Ip @@ -2431,6 +2433,7 @@ type BytesRules struct { // patterns // // Types that are assignable to WellKnown: + // // *BytesRules_Ip // *BytesRules_Ipv4 // *BytesRules_Ipv6 @@ -3016,25 +3019,25 @@ type DurationRules struct { // Required specifies that this field must be set Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` // Const specifies that this field must be exactly the specified value - Const *duration.Duration `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + Const *durationpb.Duration `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` // Lt specifies that this field must be less than the specified value, // exclusive - Lt *duration.Duration `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` + Lt *durationpb.Duration `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` // Lt specifies that this field must be less than the specified value, // inclusive - Lte *duration.Duration `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` + Lte *durationpb.Duration `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` // Gt specifies that this field must be greater than the specified value, // exclusive - Gt *duration.Duration `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` + Gt *durationpb.Duration `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` // Gte specifies that this field must be greater than the specified value, // inclusive - Gte *duration.Duration `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` + Gte *durationpb.Duration `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` // In specifies that this field must be equal to one of the specified // values - In []*duration.Duration `protobuf:"bytes,7,rep,name=in" json:"in,omitempty"` + In []*durationpb.Duration `protobuf:"bytes,7,rep,name=in" json:"in,omitempty"` // NotIn specifies that this field cannot be equal to one of the specified // values - NotIn []*duration.Duration `protobuf:"bytes,8,rep,name=not_in,json=notIn" json:"not_in,omitempty"` + NotIn []*durationpb.Duration `protobuf:"bytes,8,rep,name=not_in,json=notIn" json:"not_in,omitempty"` } func (x *DurationRules) Reset() { @@ -3076,49 +3079,49 @@ func (x *DurationRules) GetRequired() bool { return false } -func (x *DurationRules) GetConst() *duration.Duration { +func (x *DurationRules) GetConst() *durationpb.Duration { if x != nil { return x.Const } return nil } -func (x *DurationRules) GetLt() *duration.Duration { +func (x *DurationRules) GetLt() *durationpb.Duration { if x != nil { return x.Lt } return nil } -func (x *DurationRules) GetLte() *duration.Duration { +func (x *DurationRules) GetLte() *durationpb.Duration { if x != nil { return x.Lte } return nil } -func (x *DurationRules) GetGt() *duration.Duration { +func (x *DurationRules) GetGt() *durationpb.Duration { if x != nil { return x.Gt } return nil } -func (x *DurationRules) GetGte() *duration.Duration { +func (x *DurationRules) GetGte() *durationpb.Duration { if x != nil { return x.Gte } return nil } -func (x *DurationRules) GetIn() []*duration.Duration { +func (x *DurationRules) GetIn() []*durationpb.Duration { if x != nil { return x.In } return nil } -func (x *DurationRules) GetNotIn() []*duration.Duration { +func (x *DurationRules) GetNotIn() []*durationpb.Duration { if x != nil { return x.NotIn } @@ -3135,19 +3138,19 @@ type TimestampRules struct { // Required specifies that this field must be set Required *bool `protobuf:"varint,1,opt,name=required" json:"required,omitempty"` // Const specifies that this field must be exactly the specified value - Const *timestamp.Timestamp `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` + Const *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=const" json:"const,omitempty"` // Lt specifies that this field must be less than the specified value, // exclusive - Lt *timestamp.Timestamp `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` + Lt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=lt" json:"lt,omitempty"` // Lte specifies that this field must be less than the specified value, // inclusive - Lte *timestamp.Timestamp `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` + Lte *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=lte" json:"lte,omitempty"` // Gt specifies that this field must be greater than the specified value, // exclusive - Gt *timestamp.Timestamp `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` + Gt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=gt" json:"gt,omitempty"` // Gte specifies that this field must be greater than the specified value, // inclusive - Gte *timestamp.Timestamp `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` + Gte *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=gte" json:"gte,omitempty"` // LtNow specifies that this must be less than the current time. LtNow // can only be used with the Within rule. LtNow *bool `protobuf:"varint,7,opt,name=lt_now,json=ltNow" json:"lt_now,omitempty"` @@ -3157,7 +3160,7 @@ type TimestampRules struct { // Within specifies that this field must be within this duration of the // current time. This constraint can be used alone or with the LtNow and // GtNow rules. - Within *duration.Duration `protobuf:"bytes,9,opt,name=within" json:"within,omitempty"` + Within *durationpb.Duration `protobuf:"bytes,9,opt,name=within" json:"within,omitempty"` } func (x *TimestampRules) Reset() { @@ -3199,35 +3202,35 @@ func (x *TimestampRules) GetRequired() bool { return false } -func (x *TimestampRules) GetConst() *timestamp.Timestamp { +func (x *TimestampRules) GetConst() *timestamppb.Timestamp { if x != nil { return x.Const } return nil } -func (x *TimestampRules) GetLt() *timestamp.Timestamp { +func (x *TimestampRules) GetLt() *timestamppb.Timestamp { if x != nil { return x.Lt } return nil } -func (x *TimestampRules) GetLte() *timestamp.Timestamp { +func (x *TimestampRules) GetLte() *timestamppb.Timestamp { if x != nil { return x.Lte } return nil } -func (x *TimestampRules) GetGt() *timestamp.Timestamp { +func (x *TimestampRules) GetGt() *timestamppb.Timestamp { if x != nil { return x.Gt } return nil } -func (x *TimestampRules) GetGte() *timestamp.Timestamp { +func (x *TimestampRules) GetGte() *timestamppb.Timestamp { if x != nil { return x.Gte } @@ -3248,7 +3251,7 @@ func (x *TimestampRules) GetGtNow() bool { return false } -func (x *TimestampRules) GetWithin() *duration.Duration { +func (x *TimestampRules) GetWithin() *durationpb.Duration { if x != nil { return x.Within } @@ -3257,7 +3260,7 @@ func (x *TimestampRules) GetWithin() *duration.Duration { var file_trpc_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ { - ExtendedType: (*descriptor.MessageOptions)(nil), + ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 1071, Name: "trpc.validate.disabled", @@ -3265,7 +3268,7 @@ var file_trpc_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ Filename: "trpc/validate/validate.proto", }, { - ExtendedType: (*descriptor.MessageOptions)(nil), + ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*bool)(nil), Field: 1072, Name: "trpc.validate.ignored", @@ -3273,7 +3276,7 @@ var file_trpc_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ Filename: "trpc/validate/validate.proto", }, { - ExtendedType: (*descriptor.OneofOptions)(nil), + ExtendedType: (*descriptorpb.OneofOptions)(nil), ExtensionType: (*bool)(nil), Field: 1071, Name: "trpc.validate.required", @@ -3281,7 +3284,7 @@ var file_trpc_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ Filename: "trpc/validate/validate.proto", }, { - ExtendedType: (*descriptor.FieldOptions)(nil), + ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*FieldRules)(nil), Field: 1071, Name: "trpc.validate.rules", @@ -3290,7 +3293,7 @@ var file_trpc_validate_validate_proto_extTypes = []protoimpl.ExtensionInfo{ }, } -// Extension fields to descriptor.MessageOptions. +// Extension fields to descriptorpb.MessageOptions. var ( // Disabled nullifies any validation rules for this message, including any // message fields associated with it that do support validation. @@ -3303,7 +3306,7 @@ var ( E_Ignored = &file_trpc_validate_validate_proto_extTypes[1] ) -// Extension fields to descriptor.OneofOptions. +// Extension fields to descriptorpb.OneofOptions. var ( // Required ensures that exactly one the field options in a oneof is set; // validation fails if no fields in the oneof are set. @@ -3312,7 +3315,7 @@ var ( E_Required = &file_trpc_validate_validate_proto_extTypes[2] ) -// Extension fields to descriptor.FieldOptions. +// Extension fields to descriptorpb.FieldOptions. var ( // Rules specify the validations to be performed on this field. By default, // no validation is performed against a field. @@ -3753,35 +3756,35 @@ func file_trpc_validate_validate_proto_rawDescGZIP() []byte { var file_trpc_validate_validate_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_trpc_validate_validate_proto_msgTypes = make([]protoimpl.MessageInfo, 23) var file_trpc_validate_validate_proto_goTypes = []interface{}{ - (KnownRegex)(0), // 0: trpc.validate.KnownRegex - (*FieldRules)(nil), // 1: trpc.validate.FieldRules - (*FloatRules)(nil), // 2: trpc.validate.FloatRules - (*DoubleRules)(nil), // 3: trpc.validate.DoubleRules - (*Int32Rules)(nil), // 4: trpc.validate.Int32Rules - (*Int64Rules)(nil), // 5: trpc.validate.Int64Rules - (*UInt32Rules)(nil), // 6: trpc.validate.UInt32Rules - (*UInt64Rules)(nil), // 7: trpc.validate.UInt64Rules - (*SInt32Rules)(nil), // 8: trpc.validate.SInt32Rules - (*SInt64Rules)(nil), // 9: trpc.validate.SInt64Rules - (*Fixed32Rules)(nil), // 10: trpc.validate.Fixed32Rules - (*Fixed64Rules)(nil), // 11: trpc.validate.Fixed64Rules - (*SFixed32Rules)(nil), // 12: trpc.validate.SFixed32Rules - (*SFixed64Rules)(nil), // 13: trpc.validate.SFixed64Rules - (*BoolRules)(nil), // 14: trpc.validate.BoolRules - (*StringRules)(nil), // 15: trpc.validate.StringRules - (*BytesRules)(nil), // 16: trpc.validate.BytesRules - (*EnumRules)(nil), // 17: trpc.validate.EnumRules - (*MessageRules)(nil), // 18: trpc.validate.MessageRules - (*RepeatedRules)(nil), // 19: trpc.validate.RepeatedRules - (*MapRules)(nil), // 20: trpc.validate.MapRules - (*AnyRules)(nil), // 21: trpc.validate.AnyRules - (*DurationRules)(nil), // 22: trpc.validate.DurationRules - (*TimestampRules)(nil), // 23: trpc.validate.TimestampRules - (*duration.Duration)(nil), // 24: google.protobuf.Duration - (*timestamp.Timestamp)(nil), // 25: google.protobuf.Timestamp - (*descriptor.MessageOptions)(nil), // 26: google.protobuf.MessageOptions - (*descriptor.OneofOptions)(nil), // 27: google.protobuf.OneofOptions - (*descriptor.FieldOptions)(nil), // 28: google.protobuf.FieldOptions + (KnownRegex)(0), // 0: trpc.validate.KnownRegex + (*FieldRules)(nil), // 1: trpc.validate.FieldRules + (*FloatRules)(nil), // 2: trpc.validate.FloatRules + (*DoubleRules)(nil), // 3: trpc.validate.DoubleRules + (*Int32Rules)(nil), // 4: trpc.validate.Int32Rules + (*Int64Rules)(nil), // 5: trpc.validate.Int64Rules + (*UInt32Rules)(nil), // 6: trpc.validate.UInt32Rules + (*UInt64Rules)(nil), // 7: trpc.validate.UInt64Rules + (*SInt32Rules)(nil), // 8: trpc.validate.SInt32Rules + (*SInt64Rules)(nil), // 9: trpc.validate.SInt64Rules + (*Fixed32Rules)(nil), // 10: trpc.validate.Fixed32Rules + (*Fixed64Rules)(nil), // 11: trpc.validate.Fixed64Rules + (*SFixed32Rules)(nil), // 12: trpc.validate.SFixed32Rules + (*SFixed64Rules)(nil), // 13: trpc.validate.SFixed64Rules + (*BoolRules)(nil), // 14: trpc.validate.BoolRules + (*StringRules)(nil), // 15: trpc.validate.StringRules + (*BytesRules)(nil), // 16: trpc.validate.BytesRules + (*EnumRules)(nil), // 17: trpc.validate.EnumRules + (*MessageRules)(nil), // 18: trpc.validate.MessageRules + (*RepeatedRules)(nil), // 19: trpc.validate.RepeatedRules + (*MapRules)(nil), // 20: trpc.validate.MapRules + (*AnyRules)(nil), // 21: trpc.validate.AnyRules + (*DurationRules)(nil), // 22: trpc.validate.DurationRules + (*TimestampRules)(nil), // 23: trpc.validate.TimestampRules + (*durationpb.Duration)(nil), // 24: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp + (*descriptorpb.MessageOptions)(nil), // 26: google.protobuf.MessageOptions + (*descriptorpb.OneofOptions)(nil), // 27: google.protobuf.OneofOptions + (*descriptorpb.FieldOptions)(nil), // 28: google.protobuf.FieldOptions } var file_trpc_validate_validate_proto_depIdxs = []int32{ 18, // 0: trpc.validate.FieldRules.message:type_name -> trpc.validate.MessageRules diff --git a/trpc/trpc.proto b/trpc/trpc.proto index 52723cb..ec4df73 100644 --- a/trpc/trpc.proto +++ b/trpc/trpc.proto @@ -347,6 +347,9 @@ enum TrpcRetCode { // 上游主动断开连接,提前取消请求错误 TRPC_CLIENT_CANCELED_ERR = 161; + // 客户端读取 Frame 错误 + TRPC_CLIENT_READ_FRAME_ERR = 171; + // 服务端流式的错误码 // 主要分几类: // 1.网络,2.编解码,3.写,4.读 From 0c7712a32aeddee2b8037515455777a80f2914c5 Mon Sep 17 00:00:00 2001 From: seadonli Date: Wed, 17 May 2023 14:46:38 +0800 Subject: [PATCH 71/85] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81lz4=20compresso?= =?UTF-8?q?r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TAPD: --story=884117223 --- trpc/trpc.proto | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/trpc/trpc.proto b/trpc/trpc.proto index ec4df73..aa5423b 100644 --- a/trpc/trpc.proto +++ b/trpc/trpc.proto @@ -260,6 +260,12 @@ enum TrpcCompressType { // 使用 block 模式的 snappy TRPC_SNAPPY_BLOCK_COMPRESS = 5; + + // 使用 frame 模式的 lz4 + TRPC_LZ4_FRAME_COMPRESS = 6; + + // 使用 block 模式的 lz4 + TRPC_LZ4_BLOCK_COMPRESS = 7; } // 框架层接口调用的返回码定义 From 1b773db682bc08946182135c468922d5f6e38c5c Mon Sep 17 00:00:00 2001 From: suziliu Date: Wed, 17 May 2023 17:39:44 +0800 Subject: [PATCH 72/85] =?UTF-8?q?feat:=20trpc=20protocol=E5=8F=91=E5=B8=83?= =?UTF-8?q?v0.4.0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 933a625..e7bb958 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## [0.4.0](https://git.woa.com/trpc/trpc-protocol/tree/v0.4.0)(2023-05-17) +### Features And Improvements +- 拓展trpc协议支持lz4解压缩类型 + +### Thanks to our Contributors +seadonli(李晓东) + ## [pb/go/trpc/v0.1.1](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v0.1.1)(2023-05-09) ### Features - 新增客户端读取 Frame 错误码 TRPC_CLIENT_READ_FRAME_ERR(171) From c745f4bd75f94514a6cae140216ae11eba3d05f0 Mon Sep 17 00:00:00 2001 From: karlyzhang Date: Thu, 29 Feb 2024 11:05:54 +0800 Subject: [PATCH 73/85] feat(trpc.api): add openapiv2.proto support json_schema - swagger-json-param support `required` TAPD: --story=116340105 --- Makefile | 3 +- pb/go/trpc/api/annotations.pb.go | 73 +++++++---- pb/go/trpc/api/http.pb.go | 5 +- pb/go/trpc/api/openapiv2.pb.go | 215 +++++++++++++++++++++++++++++++ trpc/api/BUILD | 1 + trpc/api/annotations.proto | 5 + trpc/api/openapiv2.proto | 17 +++ 7 files changed, 292 insertions(+), 27 deletions(-) create mode 100644 pb/go/trpc/api/openapiv2.pb.go create mode 100644 trpc/api/openapiv2.proto diff --git a/Makefile b/Makefile index 8ae5d7f..c05b2cd 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,8 @@ all: protoc -I$(INCLUDE_GOOGLE_PB_PATH) -I.\ --go_out=paths=source_relative:./$(DIR) \ ./trpc/api/annotations.proto \ - ./trpc/api/http.proto + ./trpc/api/http.proto \ + ./trpc/api/openapiv2.proto protoc -I$(INCLUDE_GOOGLE_PB_PATH) -I.\ --go_out=./$(DIR) \ ./trpc/trpc.proto \ diff --git a/pb/go/trpc/api/annotations.pb.go b/pb/go/trpc/api/annotations.pb.go index 057e756..a5188e6 100644 --- a/pb/go/trpc/api/annotations.pb.go +++ b/pb/go/trpc/api/annotations.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc-gen-go v1.26.0 +// protoc v4.24.4 // source: trpc/api/annotations.proto package api @@ -29,6 +29,14 @@ var file_trpc_api_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ Tag: "bytes,50201,opt,name=http", Filename: "trpc/api/annotations.proto", }, + { + ExtendedType: (*descriptorpb.MessageOptions)(nil), + ExtensionType: (*Schema)(nil), + Field: 50201, + Name: "trpc.api.openapiv2_schema", + Tag: "bytes,50201,opt,name=openapiv2_schema", + Filename: "trpc/api/annotations.proto", + }, } // Extension fields to descriptorpb.MethodOptions. @@ -37,38 +45,56 @@ var ( E_Http = &file_trpc_api_annotations_proto_extTypes[0] ) +// Extension fields to descriptorpb.MessageOptions. +var ( + // optional trpc.api.Schema openapiv2_schema = 50201; + E_Openapiv2Schema = &file_trpc_api_annotations_proto_extTypes[1] +) + var File_trpc_api_annotations_proto protoreflect.FileDescriptor var file_trpc_api_annotations_proto_rawDesc = []byte{ 0x0a, 0x1a, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x1a, 0x13, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x48, 0x0a, - 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x88, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, - 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x42, 0x4e, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, - 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, - 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, - 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x74, 0x72, 0x70, + 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x48, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, + 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x99, 0x88, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x5e, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x88, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x42, 0x4e, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, + 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, + 0x78, 0x74, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, + 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_trpc_api_annotations_proto_goTypes = []interface{}{ - (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions - (*HttpRule)(nil), // 1: trpc.api.HttpRule + (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions + (*descriptorpb.MessageOptions)(nil), // 1: google.protobuf.MessageOptions + (*HttpRule)(nil), // 2: trpc.api.HttpRule + (*Schema)(nil), // 3: trpc.api.Schema } var file_trpc_api_annotations_proto_depIdxs = []int32{ 0, // 0: trpc.api.http:extendee -> google.protobuf.MethodOptions - 1, // 1: trpc.api.http:type_name -> trpc.api.HttpRule - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 1, // [1:2] is the sub-list for extension type_name - 0, // [0:1] is the sub-list for extension extendee + 1, // 1: trpc.api.openapiv2_schema:extendee -> google.protobuf.MessageOptions + 2, // 2: trpc.api.http:type_name -> trpc.api.HttpRule + 3, // 3: trpc.api.openapiv2_schema:type_name -> trpc.api.Schema + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 2, // [2:4] is the sub-list for extension type_name + 0, // [0:2] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } @@ -78,6 +104,7 @@ func file_trpc_api_annotations_proto_init() { return } file_trpc_api_http_proto_init() + file_trpc_api_openapiv2_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ @@ -85,7 +112,7 @@ func file_trpc_api_annotations_proto_init() { RawDescriptor: file_trpc_api_annotations_proto_rawDesc, NumEnums: 0, NumMessages: 0, - NumExtensions: 1, + NumExtensions: 2, NumServices: 0, }, GoTypes: file_trpc_api_annotations_proto_goTypes, diff --git a/pb/go/trpc/api/http.pb.go b/pb/go/trpc/api/http.pb.go index 84f2211..c0df853 100644 --- a/pb/go/trpc/api/http.pb.go +++ b/pb/go/trpc/api/http.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc-gen-go v1.26.0 +// protoc v4.24.4 // source: trpc/api/http.proto package api @@ -34,7 +34,6 @@ type HttpRule struct { // can be defined using the 'custom' field. // // Types that are assignable to Pattern: - // // *HttpRule_Get // *HttpRule_Put // *HttpRule_Post diff --git a/pb/go/trpc/api/openapiv2.pb.go b/pb/go/trpc/api/openapiv2.pb.go new file mode 100644 index 0000000..b18d220 --- /dev/null +++ b/pb/go/trpc/api/openapiv2.pb.go @@ -0,0 +1,215 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v4.24.4 +// source: trpc/api/openapiv2.proto + +package api + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// message option schema +type Schema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + JsonSchema *JSONSchema `protobuf:"bytes,1,opt,name=json_schema,json=jsonSchema,proto3" json:"json_schema,omitempty"` +} + +func (x *Schema) Reset() { + *x = Schema{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_api_openapiv2_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Schema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Schema) ProtoMessage() {} + +func (x *Schema) ProtoReflect() protoreflect.Message { + mi := &file_trpc_api_openapiv2_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Schema.ProtoReflect.Descriptor instead. +func (*Schema) Descriptor() ([]byte, []int) { + return file_trpc_api_openapiv2_proto_rawDescGZIP(), []int{0} +} + +func (x *Schema) GetJsonSchema() *JSONSchema { + if x != nil { + return x.JsonSchema + } + return nil +} + +// `JSONSchema` represents properties from JSON SCHEMA taken,and as used, in +// the OpenAPI v2 spec. +type JSONSchema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Required []string `protobuf:"bytes,1,rep,name=required,proto3" json:"required,omitempty"` +} + +func (x *JSONSchema) Reset() { + *x = JSONSchema{} + if protoimpl.UnsafeEnabled { + mi := &file_trpc_api_openapiv2_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JSONSchema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JSONSchema) ProtoMessage() {} + +func (x *JSONSchema) ProtoReflect() protoreflect.Message { + mi := &file_trpc_api_openapiv2_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JSONSchema.ProtoReflect.Descriptor instead. +func (*JSONSchema) Descriptor() ([]byte, []int) { + return file_trpc_api_openapiv2_proto_rawDescGZIP(), []int{1} +} + +func (x *JSONSchema) GetRequired() []string { + if x != nil { + return x.Required + } + return nil +} + +var File_trpc_api_openapiv2_proto protoreflect.FileDescriptor + +var file_trpc_api_openapiv2_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, + 0x70, 0x69, 0x76, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x61, 0x70, 0x69, 0x22, 0x3f, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x35, + 0x0a, 0x0b, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, + 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x28, 0x0a, 0x0a, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x42, + 0x4e, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, + 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, + 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_trpc_api_openapiv2_proto_rawDescOnce sync.Once + file_trpc_api_openapiv2_proto_rawDescData = file_trpc_api_openapiv2_proto_rawDesc +) + +func file_trpc_api_openapiv2_proto_rawDescGZIP() []byte { + file_trpc_api_openapiv2_proto_rawDescOnce.Do(func() { + file_trpc_api_openapiv2_proto_rawDescData = protoimpl.X.CompressGZIP(file_trpc_api_openapiv2_proto_rawDescData) + }) + return file_trpc_api_openapiv2_proto_rawDescData +} + +var file_trpc_api_openapiv2_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_trpc_api_openapiv2_proto_goTypes = []interface{}{ + (*Schema)(nil), // 0: trpc.api.Schema + (*JSONSchema)(nil), // 1: trpc.api.JSONSchema +} +var file_trpc_api_openapiv2_proto_depIdxs = []int32{ + 1, // 0: trpc.api.Schema.json_schema:type_name -> trpc.api.JSONSchema + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_trpc_api_openapiv2_proto_init() } +func file_trpc_api_openapiv2_proto_init() { + if File_trpc_api_openapiv2_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_trpc_api_openapiv2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Schema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_trpc_api_openapiv2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JSONSchema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_trpc_api_openapiv2_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_trpc_api_openapiv2_proto_goTypes, + DependencyIndexes: file_trpc_api_openapiv2_proto_depIdxs, + MessageInfos: file_trpc_api_openapiv2_proto_msgTypes, + }.Build() + File_trpc_api_openapiv2_proto = out.File + file_trpc_api_openapiv2_proto_rawDesc = nil + file_trpc_api_openapiv2_proto_goTypes = nil + file_trpc_api_openapiv2_proto_depIdxs = nil +} diff --git a/trpc/api/BUILD b/trpc/api/BUILD index 2909d2b..299589f 100644 --- a/trpc/api/BUILD +++ b/trpc/api/BUILD @@ -15,5 +15,6 @@ proto_library( name = "http_proto", srcs = [ "http.proto", + "openapiv2.proto", ], ) diff --git a/trpc/api/annotations.proto b/trpc/api/annotations.proto index a1fea9a..d8866bc 100644 --- a/trpc/api/annotations.proto +++ b/trpc/api/annotations.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package trpc.api; import "trpc/api/http.proto"; +import "trpc/api/openapiv2.proto"; import "google/protobuf/descriptor.proto"; option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/api"; @@ -11,3 +12,7 @@ option java_package = "com.tencent.trpc.protobuf.ext"; extend google.protobuf.MethodOptions { HttpRule http = 50201; } + +extend google.protobuf.MessageOptions { + Schema openapiv2_schema = 50201; +} diff --git a/trpc/api/openapiv2.proto b/trpc/api/openapiv2.proto new file mode 100644 index 0000000..3e709d7 --- /dev/null +++ b/trpc/api/openapiv2.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +package trpc.api; + +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/api"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +// message option schema +message Schema { + JSONSchema json_schema = 1; +} + +// `JSONSchema` represents properties from JSON SCHEMA taken,and as used, in +// the OpenAPI v2 spec. +message JSONSchema { + repeated string required = 1; +} From 18c6a2ecc81eb085a25893d1a33908036977c361 Mon Sep 17 00:00:00 2001 From: irislao Date: Thu, 28 Mar 2024 10:59:22 +0800 Subject: [PATCH 74/85] =?UTF-8?q?feat(stream/trpc):trpc=E6=B5=81=E5=BC=8F?= =?UTF-8?q?=E4=BC=A0=E8=BE=93=E5=8D=8F=E8=AE=AE=E6=96=B0=E5=A2=9E=E6=B5=81?= =?UTF-8?q?=E7=A9=BA=E9=97=B2=E5=85=B3=E9=97=AD=E7=9A=84=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --story=116818532 --- trpc/trpc.proto | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/trpc/trpc.proto b/trpc/trpc.proto index aa5423b..35f0d84 100644 --- a/trpc/trpc.proto +++ b/trpc/trpc.proto @@ -385,6 +385,9 @@ enum TrpcRetCode { TRPC_STREAM_SERVER_READ_EMPTY_ERR = 253; TRPC_STREAM_SERVER_READ_TIMEOUT_ERR = 254; + // 服务端流空闲超时错误 + TRPC_STREAM_SERVER_IDLE_TIMEOUT_ERR = 255; + // 客户端流式的错误码 // 主要分几类: // 1.网络,2.编解码,3.写,4.读 @@ -414,6 +417,9 @@ enum TrpcRetCode { TRPC_STREAM_CLIENT_READ_EMPTY_ERR = 353; TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR = 354; + // 客户端流空闲超时错误 + TRPC_STREAM_CLIENT_IDLE_TIMEOUT_ERR = 355; + // 未明确的错误 TRPC_INVOKE_UNKNOWN_ERR = 999; // 未明确的错误 From 4370f63399fa3817737bda30a59880d43c45f4a9 Mon Sep 17 00:00:00 2001 From: minchangwei Date: Tue, 2 Apr 2024 10:41:31 +0800 Subject: [PATCH 75/85] =?UTF-8?q?Version:=20trpc=20protocol=E5=8F=91?= =?UTF-8?q?=E5=B8=83v0.4.1=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TAPD: --story=116830764 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e7bb958..eee333d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## [0.4.1](https://git.woa.com/trpc/trpc-protocol/tree/v0.4.0)(2024-04-02) +### Features And Improvements +- trpc流式协议新增流空闲关闭的错误码 + +### Thanks to our Contributors +irislao(劳昭丹) + ## [0.4.0](https://git.woa.com/trpc/trpc-protocol/tree/v0.4.0)(2023-05-17) ### Features And Improvements - 拓展trpc协议支持lz4解压缩类型 From c4ca8fe75f46f5322a94616880246bc6a7298b86 Mon Sep 17 00:00:00 2001 From: amdahliu Date: Tue, 18 Jun 2024 14:58:52 +0800 Subject: [PATCH 76/85] pb/go/trpc: regenerate stub code to include LZ4_BLOCK_COMPRESS field TAPD: --story=118061389 --- pb/go/trpc/api/annotations.pb.go | 4 +- pb/go/trpc/api/http.pb.go | 5 +- pb/go/trpc/api/openapiv2.pb.go | 7 +- pb/go/trpc/go.mod | 2 +- pb/go/trpc/go.sum | 4 +- pb/go/trpc/proto/trpc_options.pb.go | 2 +- pb/go/trpc/swagger/swagger.pb.go | 2 +- pb/go/trpc/trpc.pb.go | 257 ++++++++++++++----------- pb/go/trpc/v2/api/annotations.pb.go | 2 +- pb/go/trpc/v2/api/http.pb.go | 2 +- pb/go/trpc/v2/go.mod | 2 +- pb/go/trpc/v2/go.sum | 4 +- pb/go/trpc/v2/proto/trpc_options.pb.go | 2 +- pb/go/trpc/v2/swagger/swagger.pb.go | 2 +- pb/go/trpc/v2/trpc.pb.go | 2 +- pb/go/trpc/v2/validate/validate.pb.go | 2 +- pb/go/trpc/validate/validate.pb.go | 2 +- 17 files changed, 165 insertions(+), 138 deletions(-) diff --git a/pb/go/trpc/api/annotations.pb.go b/pb/go/trpc/api/annotations.pb.go index a5188e6..1448e6c 100644 --- a/pb/go/trpc/api/annotations.pb.go +++ b/pb/go/trpc/api/annotations.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v4.24.4 +// protoc-gen-go v1.28.1 +// protoc v5.27.1 // source: trpc/api/annotations.proto package api diff --git a/pb/go/trpc/api/http.pb.go b/pb/go/trpc/api/http.pb.go index c0df853..f73030f 100644 --- a/pb/go/trpc/api/http.pb.go +++ b/pb/go/trpc/api/http.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v4.24.4 +// protoc-gen-go v1.28.1 +// protoc v5.27.1 // source: trpc/api/http.proto package api @@ -34,6 +34,7 @@ type HttpRule struct { // can be defined using the 'custom' field. // // Types that are assignable to Pattern: + // // *HttpRule_Get // *HttpRule_Put // *HttpRule_Post diff --git a/pb/go/trpc/api/openapiv2.pb.go b/pb/go/trpc/api/openapiv2.pb.go index b18d220..cda966f 100644 --- a/pb/go/trpc/api/openapiv2.pb.go +++ b/pb/go/trpc/api/openapiv2.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v4.24.4 +// protoc-gen-go v1.28.1 +// protoc v5.27.1 // source: trpc/api/openapiv2.proto package api @@ -69,7 +69,8 @@ func (x *Schema) GetJsonSchema() *JSONSchema { } // `JSONSchema` represents properties from JSON SCHEMA taken,and as used, in -// the OpenAPI v2 spec. +// +// the OpenAPI v2 spec. type JSONSchema struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/pb/go/trpc/go.mod b/pb/go/trpc/go.mod index e39f073..6815bbd 100644 --- a/pb/go/trpc/go.mod +++ b/pb/go/trpc/go.mod @@ -2,4 +2,4 @@ module git.woa.com/trpc/trpc-protocol/pb/go/trpc go 1.16 -require google.golang.org/protobuf v1.30.0 +require google.golang.org/protobuf v1.34.2 diff --git a/pb/go/trpc/go.sum b/pb/go/trpc/go.sum index 1838366..c9d7f0d 100644 --- a/pb/go/trpc/go.sum +++ b/pb/go/trpc/go.sum @@ -4,5 +4,5 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= diff --git a/pb/go/trpc/proto/trpc_options.pb.go b/pb/go/trpc/proto/trpc_options.pb.go index bec4306..42480ce 100644 --- a/pb/go/trpc/proto/trpc_options.pb.go +++ b/pb/go/trpc/proto/trpc_options.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/proto/trpc_options.proto package proto diff --git a/pb/go/trpc/swagger/swagger.pb.go b/pb/go/trpc/swagger/swagger.pb.go index 1eb8660..e12523d 100644 --- a/pb/go/trpc/swagger/swagger.pb.go +++ b/pb/go/trpc/swagger/swagger.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/swagger/swagger.proto package swagger diff --git a/pb/go/trpc/trpc.pb.go b/pb/go/trpc/trpc.pb.go index c19e1cc..a995102 100644 --- a/pb/go/trpc/trpc.pb.go +++ b/pb/go/trpc/trpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/trpc.proto package trpc @@ -487,6 +487,10 @@ const ( TrpcCompressType_TRPC_SNAPPY_STREAM_COMPRESS TrpcCompressType = 4 // 使用 block 模式的 snappy TrpcCompressType_TRPC_SNAPPY_BLOCK_COMPRESS TrpcCompressType = 5 + // 使用 frame 模式的 lz4 + TrpcCompressType_TRPC_LZ4_FRAME_COMPRESS TrpcCompressType = 6 + // 使用 block 模式的 lz4 + TrpcCompressType_TRPC_LZ4_BLOCK_COMPRESS TrpcCompressType = 7 ) // Enum value maps for TrpcCompressType. @@ -498,6 +502,8 @@ var ( 3: "TRPC_ZLIB_COMPRESS", 4: "TRPC_SNAPPY_STREAM_COMPRESS", 5: "TRPC_SNAPPY_BLOCK_COMPRESS", + 6: "TRPC_LZ4_FRAME_COMPRESS", + 7: "TRPC_LZ4_BLOCK_COMPRESS", } TrpcCompressType_value = map[string]int32{ "TRPC_DEFAULT_COMPRESS": 0, @@ -506,6 +512,8 @@ var ( "TRPC_ZLIB_COMPRESS": 3, "TRPC_SNAPPY_STREAM_COMPRESS": 4, "TRPC_SNAPPY_BLOCK_COMPRESS": 5, + "TRPC_LZ4_FRAME_COMPRESS": 6, + "TRPC_LZ4_BLOCK_COMPRESS": 7, } ) @@ -619,6 +627,8 @@ const ( TrpcRetCode_TRPC_STREAM_SERVER_READ_CLOSE_ERR TrpcRetCode = 252 TrpcRetCode_TRPC_STREAM_SERVER_READ_EMPTY_ERR TrpcRetCode = 253 TrpcRetCode_TRPC_STREAM_SERVER_READ_TIMEOUT_ERR TrpcRetCode = 254 + // 服务端流空闲超时错误 + TrpcRetCode_TRPC_STREAM_SERVER_IDLE_TIMEOUT_ERR TrpcRetCode = 255 // 客户端流式网络错误, 详细错误码需要在实现过程中再梳理 TrpcRetCode_TRPC_STREAM_CLIENT_NETWORK_ERR TrpcRetCode = 301 // 客户端流式传输错误, 详细错误码需要在实现过程中再梳理 @@ -638,6 +648,8 @@ const ( TrpcRetCode_TRPC_STREAM_CLIENT_READ_CLOSE_ERR TrpcRetCode = 352 TrpcRetCode_TRPC_STREAM_CLIENT_READ_EMPTY_ERR TrpcRetCode = 353 TrpcRetCode_TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR TrpcRetCode = 354 + // 客户端流空闲超时错误 + TrpcRetCode_TRPC_STREAM_CLIENT_IDLE_TIMEOUT_ERR TrpcRetCode = 355 // 未明确的错误 TrpcRetCode_TRPC_INVOKE_UNKNOWN_ERR TrpcRetCode = 999 // 未明确的错误 @@ -683,6 +695,7 @@ var ( 252: "TRPC_STREAM_SERVER_READ_CLOSE_ERR", 253: "TRPC_STREAM_SERVER_READ_EMPTY_ERR", 254: "TRPC_STREAM_SERVER_READ_TIMEOUT_ERR", + 255: "TRPC_STREAM_SERVER_IDLE_TIMEOUT_ERR", 301: "TRPC_STREAM_CLIENT_NETWORK_ERR", 311: "TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR", 321: "TRPC_STREAM_CLIENT_ENCODE_ERR", @@ -695,6 +708,7 @@ var ( 352: "TRPC_STREAM_CLIENT_READ_CLOSE_ERR", 353: "TRPC_STREAM_CLIENT_READ_EMPTY_ERR", 354: "TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR", + 355: "TRPC_STREAM_CLIENT_IDLE_TIMEOUT_ERR", 999: "TRPC_INVOKE_UNKNOWN_ERR", 1000: "TRPC_STREAM_UNKNOWN_ERR", } @@ -735,6 +749,7 @@ var ( "TRPC_STREAM_SERVER_READ_CLOSE_ERR": 252, "TRPC_STREAM_SERVER_READ_EMPTY_ERR": 253, "TRPC_STREAM_SERVER_READ_TIMEOUT_ERR": 254, + "TRPC_STREAM_SERVER_IDLE_TIMEOUT_ERR": 255, "TRPC_STREAM_CLIENT_NETWORK_ERR": 301, "TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR": 311, "TRPC_STREAM_CLIENT_ENCODE_ERR": 321, @@ -747,6 +762,7 @@ var ( "TRPC_STREAM_CLIENT_READ_CLOSE_ERR": 352, "TRPC_STREAM_CLIENT_READ_EMPTY_ERR": 353, "TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR": 354, + "TRPC_STREAM_CLIENT_IDLE_TIMEOUT_ERR": 355, "TRPC_INVOKE_UNKNOWN_ERR": 999, "TRPC_STREAM_UNKNOWN_ERR": 1000, } @@ -1664,7 +1680,7 @@ var file_trpc_trpc_proto_rawDesc = []byte{ 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, 0x54, 0x5f, 0x45, 0x4e, - 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x2a, 0xb8, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, + 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x2a, 0xf2, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, @@ -1676,122 +1692,131 @@ var file_trpc_trpc_proto_rawDesc = []byte{ 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, - 0x05, 0x2a, 0xd1, 0x0d, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, - 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, - 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, - 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, - 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, - 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, - 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, - 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, - 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, - 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, - 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x33, - 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, - 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, - 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, - 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, - 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, - 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7a, - 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, - 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7b, 0x12, 0x1c, 0x0a, - 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x56, 0x45, - 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, 0x1b, 0x0a, 0x16, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, - 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, - 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0xa1, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, - 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0xab, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x54, 0x57, - 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, - 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, - 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, - 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, 0x22, 0x0a, 0x1d, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, - 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xde, 0x01, - 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, - 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, - 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x01, 0x12, - 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, - 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, - 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, - 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, - 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, 0x12, 0x26, 0x0a, - 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, - 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfe, 0x01, 0x12, - 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0xad, 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, - 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, + 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4c, 0x5a, 0x34, 0x5f, 0x46, 0x52, + 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x06, 0x12, 0x1b, + 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4c, 0x5a, 0x34, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x07, 0x2a, 0xa5, 0x0e, 0x0a, 0x0b, + 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, + 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, + 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, + 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, + 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, + 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, + 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, + 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, + 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, + 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, + 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, + 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, + 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, + 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, + 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, + 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, + 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, + 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, + 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xa1, 0x01, 0x12, 0x1f, + 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, + 0x41, 0x44, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xab, 0x01, 0x12, + 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xb7, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, - 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, - 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, 0x12, 0x2a, 0x0a, - 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, - 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, - 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, + 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, + 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, + 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, + 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xcd, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, - 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, 0x12, 0x20, 0x0a, - 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, - 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xdf, 0x02, 0x12, - 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, - 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe1, 0x02, 0x12, - 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, - 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, - 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x61, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, - 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, - 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x29, 0x67, - 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, - 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, - 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, + 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, + 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, + 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, + 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, + 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, + 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfe, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0xff, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xad, 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, + 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0xb7, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, + 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, + 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, + 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, + 0x02, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, + 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, + 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0xcd, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, + 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, + 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, + 0x10, 0xdf, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, + 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0xe1, 0x02, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, + 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x28, 0x0a, + 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe3, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0xe8, 0x07, 0x42, 0x61, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, + 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0c, 0x54, + 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x29, 0x67, 0x69, 0x74, + 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, + 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, + 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/go/trpc/v2/api/annotations.pb.go b/pb/go/trpc/v2/api/annotations.pb.go index 9f597f2..2e27b11 100644 --- a/pb/go/trpc/v2/api/annotations.pb.go +++ b/pb/go/trpc/v2/api/annotations.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/v2/api/annotations.proto package api diff --git a/pb/go/trpc/v2/api/http.pb.go b/pb/go/trpc/v2/api/http.pb.go index a011656..1c1dc4f 100644 --- a/pb/go/trpc/v2/api/http.pb.go +++ b/pb/go/trpc/v2/api/http.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/v2/api/http.proto package api diff --git a/pb/go/trpc/v2/go.mod b/pb/go/trpc/v2/go.mod index 23ce2c2..370e495 100644 --- a/pb/go/trpc/v2/go.mod +++ b/pb/go/trpc/v2/go.mod @@ -2,4 +2,4 @@ module git.woa.com/trpc/trpc-protocol/pb/go/trpc/v2 go 1.16 -require google.golang.org/protobuf v1.30.0 +require google.golang.org/protobuf v1.34.2 diff --git a/pb/go/trpc/v2/go.sum b/pb/go/trpc/v2/go.sum index 1838366..c9d7f0d 100644 --- a/pb/go/trpc/v2/go.sum +++ b/pb/go/trpc/v2/go.sum @@ -4,5 +4,5 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= diff --git a/pb/go/trpc/v2/proto/trpc_options.pb.go b/pb/go/trpc/v2/proto/trpc_options.pb.go index 68cf391..e77be78 100644 --- a/pb/go/trpc/v2/proto/trpc_options.pb.go +++ b/pb/go/trpc/v2/proto/trpc_options.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/v2/proto/trpc_options.proto package proto diff --git a/pb/go/trpc/v2/swagger/swagger.pb.go b/pb/go/trpc/v2/swagger/swagger.pb.go index 5f632bc..39060cd 100644 --- a/pb/go/trpc/v2/swagger/swagger.pb.go +++ b/pb/go/trpc/v2/swagger/swagger.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/v2/swagger/swagger.proto package swagger diff --git a/pb/go/trpc/v2/trpc.pb.go b/pb/go/trpc/v2/trpc.pb.go index a30ff10..a52d194 100644 --- a/pb/go/trpc/v2/trpc.pb.go +++ b/pb/go/trpc/v2/trpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/v2/trpc.proto package trpc diff --git a/pb/go/trpc/v2/validate/validate.pb.go b/pb/go/trpc/v2/validate/validate.pb.go index 048e8d6..a2d23a9 100644 --- a/pb/go/trpc/v2/validate/validate.pb.go +++ b/pb/go/trpc/v2/validate/validate.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/v2/validate/validate.proto package validate diff --git a/pb/go/trpc/validate/validate.pb.go b/pb/go/trpc/validate/validate.pb.go index 2accfa9..173d8d4 100644 --- a/pb/go/trpc/validate/validate.pb.go +++ b/pb/go/trpc/validate/validate.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v5.27.1 // source: trpc/validate/validate.proto package validate From aa5667ed9f5a7e981fec73d089854cd96f4edf8e Mon Sep 17 00:00:00 2001 From: amdahliu Date: Thu, 20 Jun 2024 19:07:24 +0800 Subject: [PATCH 77/85] add reflection.proto and corresponding go stub code to support server reflection (merge request !36) Squash merge branch 'server-reflection' into 'master' Background: [trpc-proposal: A13: support server reflection](https://git.woa.com/trpc/trpc-proposal/-/merge_requests/98) TAPD: --story=115513923 --- Makefile | 4 +- pb/go/trpc/go.mod | 5 +- pb/go/trpc/go.sum | 213 ++++++- pb/go/trpc/reflection/reflection.pb.go | 709 +++++++++++++++++++++++ pb/go/trpc/reflection/reflection.trpc.go | 110 ++++ trpc/reflection/BUILD | 8 + trpc/reflection/reflection.proto | 87 +++ 7 files changed, 1131 insertions(+), 5 deletions(-) create mode 100644 pb/go/trpc/reflection/reflection.pb.go create mode 100644 pb/go/trpc/reflection/reflection.trpc.go create mode 100644 trpc/reflection/BUILD create mode 100644 trpc/reflection/reflection.proto diff --git a/Makefile b/Makefile index c05b2cd..b20fe0e 100644 --- a/Makefile +++ b/Makefile @@ -13,10 +13,10 @@ all: ./trpc/trpc.proto \ ./trpc/proto/trpc_options.proto \ ./trpc/swagger/swagger.proto \ - ./trpc/validate/validate.proto + ./trpc/validate/validate.proto mv $(DIR)/git.woa.com/trpc/trpc-protocol/pb/go/trpc/* $(DIR)/trpc rm -rf $(DIR)/git.woa.com - cd ./$(DIR)/trpc && go mod init git.woa.com/trpc/trpc-protocol/$(DIR)/trpc && go mod tidy && cd - + cd ./$(DIR)/trpc && go mod init git.woa.com/trpc/trpc-protocol/$(DIR)/trpc && go mod tidy && cd - # trpc v2 protoc -I$(INCLUDE_GOOGLE_PB_PATH) -I.\ diff --git a/pb/go/trpc/go.mod b/pb/go/trpc/go.mod index 6815bbd..5606033 100644 --- a/pb/go/trpc/go.mod +++ b/pb/go/trpc/go.mod @@ -2,4 +2,7 @@ module git.woa.com/trpc/trpc-protocol/pb/go/trpc go 1.16 -require google.golang.org/protobuf v1.34.2 +require ( + git.code.oa.com/trpc-go/trpc-go v0.18.1 + google.golang.org/protobuf v1.34.2 +) diff --git a/pb/go/trpc/go.sum b/pb/go/trpc/go.sum index c9d7f0d..fdd7b7e 100644 --- a/pb/go/trpc/go.sum +++ b/pb/go/trpc/go.sum @@ -1,8 +1,217 @@ +git.code.oa.com/trpc-go/trpc-go v0.18.1 h1:eUind0UwI4gTpN+FN5APS53HtebMEEjXQxWlhzFf6ls= +git.code.oa.com/trpc-go/trpc-go v0.18.1/go.mod h1:Fp6wa5Sx01ftmTTQwTSvEFpZvhcWXYyyw/5Qe4d3g9k= +git.woa.com/jce/jce v1.2.0 h1:o75OgZYPg2+AWtF3m7YkC6lISOKtMmuj3H2UzD6e8Rg= +git.woa.com/jce/jce v1.2.0/go.mod h1:tDEP7kGD+54CmvikQ3n5CS3YYwzSkiqKgXdOhFKpvq0= +git.woa.com/trpc-go/go_reuseport v1.7.0 h1:h9Z8/fFvOSk+ezrLRyJ8Ck4tka74ZRCxgKI+4zYlT44= +git.woa.com/trpc-go/go_reuseport v1.7.0/go.mod h1:5mVq/Xi5sRvmB/Myvjp3dn6zN7F/bIJwPSGBffUdqTc= +git.woa.com/trpc-go/tnet v0.0.15 h1:CehU7U3T4qmKu/IwMcShsWMNnnykjNxgoLo0cLoNeJ8= +git.woa.com/trpc-go/tnet v0.0.15/go.mod h1:Ipq6vv0Nlbxdf3k4KYXJ5Gp1D0o29TN5PX5aFUH2RX0= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/agiledragon/gomonkey v2.0.2+incompatible h1:eXKi9/piiC3cjJD1658mEE2o3NjkJ5vDLgYjCQu0Xlw= +github.com/agiledragon/gomonkey v2.0.2+incompatible/go.mod h1:2NGfXu1a80LLr2cmWXGBDaHEjb1idR6+FVlX5T3D9hw= +github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= +github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fasthttp/router v1.4.22 h1:qwWcYBbndVDwts4dKaz+A2ehsnbKilmiP6pUhXBfYKo= +github.com/fasthttp/router v1.4.22/go.mod h1:KeMvHLqhlB9vyDWD5TSvTccl9qeWrjSSiTJrJALHKV0= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/form/v4 v4.2.0 h1:N1wh+Goz61e6w66vo8vJkQt+uwZSoLz50kZPJWR8eic= +github.com/go-playground/form/v4 v4.2.0/go.mod h1:q1a2BY+AQUUzhl6xA/6hBetay6dEIhMHjgvJiGo6K7U= +github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/flatbuffers v2.0.0+incompatible h1:dicJ2oXwypfwUGnB2/TYWYEKiuk9eYQlQO/AnOHl5mI= +github.com/google/flatbuffers v2.0.0+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= +github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= +github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2ttpEmkA4aQ3j4u9dStX2t4M8UM6qqNsG8= +github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is= +github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ= +github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/panjf2000/ants/v2 v2.4.6 h1:drmj9mcygn2gawZ155dRbo+NfXEfAssjZNU1qoIb4gQ= +github.com/panjf2000/ants/v2 v2.4.6/go.mod h1:f6F0NZVFsGCp5A7QW/Zj/m92atWwOkY0OIhFxRNFr4A= +github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= +github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/r3labs/sse/v2 v2.10.0 h1:hFEkLLFY4LDifoHdiCN/LlGBAdVJYsANaLqNYa1l/v0= +github.com/r3labs/sse/v2 v2.10.0/go.mod h1:Igau6Whc+F17QUgML1fYe1VPZzTV6EMCnYktEmkNJ7I= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee h1:8Iv5m6xEo1NR1AvpV+7XmhI4r39LGNzwUL4YpMuL5vk= +github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee/go.mod h1:qwtSXrKuJh/zsFQ12yEE89xfCrGKK63Rr7ctU/uCo4g= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= +github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g= +github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/automaxprocs v1.3.0 h1:II28aZoGdaglS5vVNnspf28lnZpXScxtIozx1lAjdb0= +go.uber.org/automaxprocs v1.3.0/go.mod h1:9CWT6lKIep8U41DDaPiH6eFscnTyjfTANNQNx6LrIcA= +go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191116160921-f9c825593386/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +gopkg.in/cenkalti/backoff.v1 v1.1.0 h1:Arh75ttbsvlpVA7WtVpH4u9h6Zl46xuptxqLxPiSo4Y= +gopkg.in/cenkalti/backoff.v1 v1.1.0/go.mod h1:J6Vskwqd+OMVJl8C33mmtxTBs2gyzfv7UDAkHu8BrjI= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= diff --git a/pb/go/trpc/reflection/reflection.pb.go b/pb/go/trpc/reflection/reflection.pb.go new file mode 100644 index 0000000..0c0322d --- /dev/null +++ b/pb/go/trpc/reflection/reflection.pb.go @@ -0,0 +1,709 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.19.1 +// source: reflection.proto + +package reflection + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The message sent by the client when calling ServerReflectionInfo method. +type ServerReflectionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` + // To use reflection service, the client should set one of the following + // fields in message_request. The server distinguishes requests by their + // defined field and then handles them using corresponding methods. + // + // Types that are assignable to MessageRequest: + // + // *ServerReflectionRequest_FileContainingSymbol + // *ServerReflectionRequest_ListServices + // *ServerReflectionRequest_FileByFilename + MessageRequest isServerReflectionRequest_MessageRequest `protobuf_oneof:"message_request"` +} + +func (x *ServerReflectionRequest) Reset() { + *x = ServerReflectionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_reflection_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerReflectionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerReflectionRequest) ProtoMessage() {} + +func (x *ServerReflectionRequest) ProtoReflect() protoreflect.Message { + mi := &file_reflection_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServerReflectionRequest.ProtoReflect.Descriptor instead. +func (*ServerReflectionRequest) Descriptor() ([]byte, []int) { + return file_reflection_proto_rawDescGZIP(), []int{0} +} + +func (x *ServerReflectionRequest) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (m *ServerReflectionRequest) GetMessageRequest() isServerReflectionRequest_MessageRequest { + if m != nil { + return m.MessageRequest + } + return nil +} + +func (x *ServerReflectionRequest) GetFileContainingSymbol() string { + if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_FileContainingSymbol); ok { + return x.FileContainingSymbol + } + return "" +} + +func (x *ServerReflectionRequest) GetListServices() string { + if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_ListServices); ok { + return x.ListServices + } + return "" +} + +func (x *ServerReflectionRequest) GetFileByFilename() string { + if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_FileByFilename); ok { + return x.FileByFilename + } + return "" +} + +type isServerReflectionRequest_MessageRequest interface { + isServerReflectionRequest_MessageRequest() +} + +type ServerReflectionRequest_FileContainingSymbol struct { + // Find the proto file that declares the given fully-qualified symbol name. + // This field should be a fully-qualified symbol name + // (e.g. .[.] or .). + FileContainingSymbol string `protobuf:"bytes,3,opt,name=file_containing_symbol,json=fileContainingSymbol,proto3,oneof"` +} + +type ServerReflectionRequest_ListServices struct { + // List the full names of registered services. The content will not be + // checked. + ListServices string `protobuf:"bytes,4,opt,name=list_services,json=listServices,proto3,oneof"` +} + +type ServerReflectionRequest_FileByFilename struct { + // Find a proto file by the file name. + FileByFilename string `protobuf:"bytes,5,opt,name=file_by_filename,json=fileByFilename,proto3,oneof"` +} + +func (*ServerReflectionRequest_FileContainingSymbol) isServerReflectionRequest_MessageRequest() {} + +func (*ServerReflectionRequest_ListServices) isServerReflectionRequest_MessageRequest() {} + +func (*ServerReflectionRequest_FileByFilename) isServerReflectionRequest_MessageRequest() {} + +// The message sent by the server to answer ServerReflectionInfo method. +type ServerReflectionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ValidHost string `protobuf:"bytes,1,opt,name=valid_host,json=validHost,proto3" json:"valid_host,omitempty"` + OriginalRequest *ServerReflectionRequest `protobuf:"bytes,2,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"` + // The server sets one of the following fields according to the message_request + // in the request. + // + // Types that are assignable to MessageResponse: + // + // *ServerReflectionResponse_FileDescriptorResponse + // *ServerReflectionResponse_ListServicesResponse + // *ServerReflectionResponse_ErrorResponse + MessageResponse isServerReflectionResponse_MessageResponse `protobuf_oneof:"message_response"` +} + +func (x *ServerReflectionResponse) Reset() { + *x = ServerReflectionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_reflection_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerReflectionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerReflectionResponse) ProtoMessage() {} + +func (x *ServerReflectionResponse) ProtoReflect() protoreflect.Message { + mi := &file_reflection_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServerReflectionResponse.ProtoReflect.Descriptor instead. +func (*ServerReflectionResponse) Descriptor() ([]byte, []int) { + return file_reflection_proto_rawDescGZIP(), []int{1} +} + +func (x *ServerReflectionResponse) GetValidHost() string { + if x != nil { + return x.ValidHost + } + return "" +} + +func (x *ServerReflectionResponse) GetOriginalRequest() *ServerReflectionRequest { + if x != nil { + return x.OriginalRequest + } + return nil +} + +func (m *ServerReflectionResponse) GetMessageResponse() isServerReflectionResponse_MessageResponse { + if m != nil { + return m.MessageResponse + } + return nil +} + +func (x *ServerReflectionResponse) GetFileDescriptorResponse() *FileDescriptorResponse { + if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_FileDescriptorResponse); ok { + return x.FileDescriptorResponse + } + return nil +} + +func (x *ServerReflectionResponse) GetListServicesResponse() *ListServiceResponse { + if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_ListServicesResponse); ok { + return x.ListServicesResponse + } + return nil +} + +func (x *ServerReflectionResponse) GetErrorResponse() *ErrorResponse { + if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_ErrorResponse); ok { + return x.ErrorResponse + } + return nil +} + +type isServerReflectionResponse_MessageResponse interface { + isServerReflectionResponse_MessageResponse() +} + +type ServerReflectionResponse_FileDescriptorResponse struct { + // This message is used to answer file_containing_symbol, + // As the repeated label is not allowed in oneof fields, we use a + // FileDescriptorResponse message to encapsulate the repeated fields. + FileDescriptorResponse *FileDescriptorResponse `protobuf:"bytes,4,opt,name=file_descriptor_response,json=fileDescriptorResponse,proto3,oneof"` +} + +type ServerReflectionResponse_ListServicesResponse struct { + // This message is used to answer list_services requests. + ListServicesResponse *ListServiceResponse `protobuf:"bytes,5,opt,name=list_services_response,json=listServicesResponse,proto3,oneof"` +} + +type ServerReflectionResponse_ErrorResponse struct { + // This message is used when an error occurs. + ErrorResponse *ErrorResponse `protobuf:"bytes,6,opt,name=error_response,json=errorResponse,proto3,oneof"` +} + +func (*ServerReflectionResponse_FileDescriptorResponse) isServerReflectionResponse_MessageResponse() { +} + +func (*ServerReflectionResponse_ListServicesResponse) isServerReflectionResponse_MessageResponse() {} + +func (*ServerReflectionResponse_ErrorResponse) isServerReflectionResponse_MessageResponse() {} + +// Serialized FileDescriptorProto messages sent by the server answering +// a file_by_filename, file_containing_symbol, or file_containing_extension +// request. +type FileDescriptorResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Serialized FileDescriptorProto messages. We avoid taking a dependency on + // descriptor.proto, which uses proto2 only features, by making them opaque + // bytes instead. + FileDescriptorProto [][]byte `protobuf:"bytes,1,rep,name=file_descriptor_proto,json=fileDescriptorProto,proto3" json:"file_descriptor_proto,omitempty"` +} + +func (x *FileDescriptorResponse) Reset() { + *x = FileDescriptorResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_reflection_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FileDescriptorResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FileDescriptorResponse) ProtoMessage() {} + +func (x *FileDescriptorResponse) ProtoReflect() protoreflect.Message { + mi := &file_reflection_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FileDescriptorResponse.ProtoReflect.Descriptor instead. +func (*FileDescriptorResponse) Descriptor() ([]byte, []int) { + return file_reflection_proto_rawDescGZIP(), []int{2} +} + +func (x *FileDescriptorResponse) GetFileDescriptorProto() [][]byte { + if x != nil { + return x.FileDescriptorProto + } + return nil +} + +// A list of ServiceResponse sent by the server answering list_services request. +type ListServiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The information of each service may be expanded in the future, so we use + // ServiceResponse message to encapsulate it. + Service []*ServiceResponse `protobuf:"bytes,1,rep,name=service,proto3" json:"service,omitempty"` +} + +func (x *ListServiceResponse) Reset() { + *x = ListServiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_reflection_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListServiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListServiceResponse) ProtoMessage() {} + +func (x *ListServiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_reflection_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListServiceResponse.ProtoReflect.Descriptor instead. +func (*ListServiceResponse) Descriptor() ([]byte, []int) { + return file_reflection_proto_rawDescGZIP(), []int{3} +} + +func (x *ListServiceResponse) GetService() []*ServiceResponse { + if x != nil { + return x.Service + } + return nil +} + +// The information of a single service used by ListServiceResponse to answer +// list_services request. +type ServiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Full name of a registered service, including its package name. + // The format is . + // https://git.woa.com/trpc/trpc-protocol/blob/master/trpc/trpc.proto#L460 package.Service + InterfaceServiceName string `protobuf:"bytes,1,opt,name=interface_service_name,json=interfaceServiceName,proto3" json:"interface_service_name,omitempty"` + // eg: polaris, 123 platform format: trpc.app.server.service. + RoutingServiceName string `protobuf:"bytes,2,opt,name=routing_service_name,json=routingServiceName,proto3" json:"routing_service_name,omitempty"` +} + +func (x *ServiceResponse) Reset() { + *x = ServiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_reflection_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServiceResponse) ProtoMessage() {} + +func (x *ServiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_reflection_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServiceResponse.ProtoReflect.Descriptor instead. +func (*ServiceResponse) Descriptor() ([]byte, []int) { + return file_reflection_proto_rawDescGZIP(), []int{4} +} + +func (x *ServiceResponse) GetInterfaceServiceName() string { + if x != nil { + return x.InterfaceServiceName + } + return "" +} + +func (x *ServiceResponse) GetRoutingServiceName() string { + if x != nil { + return x.RoutingServiceName + } + return "" +} + +// The error code and error message sent by the server when an error occurs. +type ErrorResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // This field uses the error codes defined in trpc.proto TrpcRetCode. + ErrorCode int32 `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` +} + +func (x *ErrorResponse) Reset() { + *x = ErrorResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_reflection_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ErrorResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ErrorResponse) ProtoMessage() {} + +func (x *ErrorResponse) ProtoReflect() protoreflect.Message { + mi := &file_reflection_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ErrorResponse.ProtoReflect.Descriptor instead. +func (*ErrorResponse) Descriptor() ([]byte, []int) { + return file_reflection_proto_rawDescGZIP(), []int{5} +} + +func (x *ErrorResponse) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode + } + return 0 +} + +func (x *ErrorResponse) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage + } + return "" +} + +var File_reflection_proto protoreflect.FileDescriptor + +var file_reflection_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x12, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x22, 0xcb, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x14, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x25, + 0x0a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x79, + 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0xba, 0x03, 0x0a, 0x18, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x48, 0x6f, 0x73, 0x74, + 0x12, 0x56, 0x0a, 0x10, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x66, 0x0a, 0x18, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x16, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5f, 0x0a, 0x16, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x69, 0x73, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x72, 0x70, 0x63, + 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x12, 0x0a, + 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x4c, 0x0a, 0x16, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x65, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x54, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, + 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x79, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, + 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x53, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x86, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x72, 0x0a, 0x15, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x55, + 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, + 0x34, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, + 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_reflection_proto_rawDescOnce sync.Once + file_reflection_proto_rawDescData = file_reflection_proto_rawDesc +) + +func file_reflection_proto_rawDescGZIP() []byte { + file_reflection_proto_rawDescOnce.Do(func() { + file_reflection_proto_rawDescData = protoimpl.X.CompressGZIP(file_reflection_proto_rawDescData) + }) + return file_reflection_proto_rawDescData +} + +var file_reflection_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_reflection_proto_goTypes = []interface{}{ + (*ServerReflectionRequest)(nil), // 0: trpc.reflection.v1.ServerReflectionRequest + (*ServerReflectionResponse)(nil), // 1: trpc.reflection.v1.ServerReflectionResponse + (*FileDescriptorResponse)(nil), // 2: trpc.reflection.v1.FileDescriptorResponse + (*ListServiceResponse)(nil), // 3: trpc.reflection.v1.ListServiceResponse + (*ServiceResponse)(nil), // 4: trpc.reflection.v1.ServiceResponse + (*ErrorResponse)(nil), // 5: trpc.reflection.v1.ErrorResponse +} +var file_reflection_proto_depIdxs = []int32{ + 0, // 0: trpc.reflection.v1.ServerReflectionResponse.original_request:type_name -> trpc.reflection.v1.ServerReflectionRequest + 2, // 1: trpc.reflection.v1.ServerReflectionResponse.file_descriptor_response:type_name -> trpc.reflection.v1.FileDescriptorResponse + 3, // 2: trpc.reflection.v1.ServerReflectionResponse.list_services_response:type_name -> trpc.reflection.v1.ListServiceResponse + 5, // 3: trpc.reflection.v1.ServerReflectionResponse.error_response:type_name -> trpc.reflection.v1.ErrorResponse + 4, // 4: trpc.reflection.v1.ListServiceResponse.service:type_name -> trpc.reflection.v1.ServiceResponse + 0, // 5: trpc.reflection.v1.ServerReflection.ServiceReflectionInfo:input_type -> trpc.reflection.v1.ServerReflectionRequest + 1, // 6: trpc.reflection.v1.ServerReflection.ServiceReflectionInfo:output_type -> trpc.reflection.v1.ServerReflectionResponse + 6, // [6:7] is the sub-list for method output_type + 5, // [5:6] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_reflection_proto_init() } +func file_reflection_proto_init() { + if File_reflection_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_reflection_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerReflectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reflection_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerReflectionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reflection_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FileDescriptorResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reflection_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListServiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reflection_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_reflection_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ErrorResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_reflection_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*ServerReflectionRequest_FileContainingSymbol)(nil), + (*ServerReflectionRequest_ListServices)(nil), + (*ServerReflectionRequest_FileByFilename)(nil), + } + file_reflection_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*ServerReflectionResponse_FileDescriptorResponse)(nil), + (*ServerReflectionResponse_ListServicesResponse)(nil), + (*ServerReflectionResponse_ErrorResponse)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_reflection_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_reflection_proto_goTypes, + DependencyIndexes: file_reflection_proto_depIdxs, + MessageInfos: file_reflection_proto_msgTypes, + }.Build() + File_reflection_proto = out.File + file_reflection_proto_rawDesc = nil + file_reflection_proto_goTypes = nil + file_reflection_proto_depIdxs = nil +} diff --git a/pb/go/trpc/reflection/reflection.trpc.go b/pb/go/trpc/reflection/reflection.trpc.go new file mode 100644 index 0000000..3eb78be --- /dev/null +++ b/pb/go/trpc/reflection/reflection.trpc.go @@ -0,0 +1,110 @@ +// Code generated by trpc-go/trpc-go-cmdline v2.4.0. DO NOT EDIT. +// source: reflection.proto + +package reflection + +import ( + "context" + "errors" + "fmt" + + _ "git.code.oa.com/trpc-go/trpc-go" + "git.code.oa.com/trpc-go/trpc-go/client" + "git.code.oa.com/trpc-go/trpc-go/codec" + _ "git.code.oa.com/trpc-go/trpc-go/http" + "git.code.oa.com/trpc-go/trpc-go/server" +) + +// START ======================================= Server Service Definition ======================================= START + +// ServerReflectionService defines service. +type ServerReflectionService interface { + ServiceReflectionInfo(ctx context.Context, req *ServerReflectionRequest) (*ServerReflectionResponse, error) +} + +func ServerReflectionService_ServiceReflectionInfo_Handler(svr interface{}, ctx context.Context, f server.FilterFunc) (interface{}, error) { + req := &ServerReflectionRequest{} + filters, err := f(req) + if err != nil { + return nil, err + } + handleFunc := func(ctx context.Context, reqbody interface{}) (interface{}, error) { + return svr.(ServerReflectionService).ServiceReflectionInfo(ctx, reqbody.(*ServerReflectionRequest)) + } + + var rsp interface{} + rsp, err = filters.Filter(ctx, req, handleFunc) + if err != nil { + return nil, err + } + return rsp, nil +} + +// ServerReflectionServer_ServiceDesc descriptor for server.RegisterService. +var ServerReflectionServer_ServiceDesc = server.ServiceDesc{ + ServiceName: "trpc.reflection.v1.ServerReflection", + HandlerType: ((*ServerReflectionService)(nil)), + Methods: []server.Method{ + { + Name: "/trpc.reflection.v1.ServerReflection/ServiceReflectionInfo", + Func: ServerReflectionService_ServiceReflectionInfo_Handler, + }, + }, +} + +// RegisterServerReflectionService registers service. +func RegisterServerReflectionService(s server.Service, svr ServerReflectionService) { + if err := s.Register(&ServerReflectionServer_ServiceDesc, svr); err != nil { + panic(fmt.Sprintf("ServerReflection register error:%v", err)) + } +} + +// START --------------------------------- Default Unimplemented Server Service --------------------------------- START + +type UnimplementedServerReflection struct{} + +func (s *UnimplementedServerReflection) ServiceReflectionInfo(ctx context.Context, req *ServerReflectionRequest) (*ServerReflectionResponse, error) { + return nil, errors.New("rpc ServiceReflectionInfo of service ServerReflection is not implemented") +} + +// END --------------------------------- Default Unimplemented Server Service --------------------------------- END + +// END ======================================= Server Service Definition ======================================= END + +// START ======================================= Client Service Definition ======================================= START + +// ServerReflectionClientProxy defines service client proxy +type ServerReflectionClientProxy interface { + ServiceReflectionInfo(ctx context.Context, req *ServerReflectionRequest, opts ...client.Option) (rsp *ServerReflectionResponse, err error) +} + +type ServerReflectionClientProxyImpl struct { + client client.Client + opts []client.Option +} + +var NewServerReflectionClientProxy = func(opts ...client.Option) ServerReflectionClientProxy { + return &ServerReflectionClientProxyImpl{client: client.DefaultClient, opts: opts} +} + +func (c *ServerReflectionClientProxyImpl) ServiceReflectionInfo(ctx context.Context, req *ServerReflectionRequest, opts ...client.Option) (*ServerReflectionResponse, error) { + ctx, msg := codec.WithCloneMessage(ctx) + defer codec.PutBackMessage(msg) + msg.WithClientRPCName("/trpc.reflection.v1.ServerReflection/ServiceReflectionInfo") + msg.WithCalleeServiceName(ServerReflectionServer_ServiceDesc.ServiceName) + msg.WithCalleeApp("reflection") + msg.WithCalleeServer("v1") + msg.WithCalleeService("ServerReflection") + msg.WithCalleeMethod("ServiceReflectionInfo") + msg.WithSerializationType(codec.SerializationTypePB) + callopts := make([]client.Option, 0, len(c.opts)+len(opts)) + callopts = append(callopts, c.opts...) + callopts = append(callopts, opts...) + rsp := &ServerReflectionResponse{} + if err := c.client.Invoke(ctx, req, rsp, callopts...); err != nil { + return nil, err + } + return rsp, nil +} + +// END ======================================= Client Service Definition ======================================= END diff --git a/trpc/reflection/BUILD b/trpc/reflection/BUILD new file mode 100644 index 0000000..c96bb15 --- /dev/null +++ b/trpc/reflection/BUILD @@ -0,0 +1,8 @@ +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "reflection_proto", + srcs = [ + "reflection.proto", + ], +) diff --git a/trpc/reflection/reflection.proto b/trpc/reflection/reflection.proto new file mode 100644 index 0000000..d6067f3 --- /dev/null +++ b/trpc/reflection/reflection.proto @@ -0,0 +1,87 @@ +syntax = "proto3"; + +package trpc.reflection.v1; + +option go_package = "git.woa.com/trpc/trpc-protocol/pb/go/trpc/reflection"; +option java_package = "com.tencent.trpc.protobuf.ext"; + +service ServerReflection { + rpc ServiceReflectionInfo (ServerReflectionRequest) returns (ServerReflectionResponse); +} + +// The message sent by the client when calling ServerReflectionInfo method. +message ServerReflectionRequest { + string host = 1; + // To use reflection service, the client should set one of the following + // fields in message_request. The server distinguishes requests by their + // defined field and then handles them using corresponding methods. + oneof message_request { + // Find the proto file that declares the given fully-qualified symbol name. + // This field should be a fully-qualified symbol name + // (e.g. .[.] or .). + string file_containing_symbol = 3; + + // List the full names of registered services. The content will not be + // checked. + string list_services = 4; + + // Find a proto file by the file name. + string file_by_filename = 5; + }; +} + + +// The message sent by the server to answer ServerReflectionInfo method. +message ServerReflectionResponse { + string valid_host = 1; + ServerReflectionRequest original_request = 2; + // The server sets one of the following fields according to the message_request + // in the request. + oneof message_response { + // This message is used to answer file_containing_symbol, + // As the repeated label is not allowed in oneof fields, we use a + // FileDescriptorResponse message to encapsulate the repeated fields. + FileDescriptorResponse file_descriptor_response = 4; + // This message is used to answer list_services requests. + ListServiceResponse list_services_response = 5; + // This message is used when an error occurs. + ErrorResponse error_response = 6; + } +} + +// Serialized FileDescriptorProto messages sent by the server answering +// a file_by_filename, file_containing_symbol, or file_containing_extension +// request. +message FileDescriptorResponse { + // Serialized FileDescriptorProto messages. We avoid taking a dependency on + // descriptor.proto, which uses proto2 only features, by making them opaque + // bytes instead. + repeated bytes file_descriptor_proto = 1; +} + + +// A list of ServiceResponse sent by the server answering list_services request. +message ListServiceResponse { + // The information of each service may be expanded in the future, so we use + // ServiceResponse message to encapsulate it. + repeated ServiceResponse service = 1; +} + +// The information of a single service used by ListServiceResponse to answer +// list_services request. +message ServiceResponse { + // Full name of a registered service, including its package name. + // The format is . + // https://git.woa.com/trpc/trpc-protocol/blob/master/trpc/trpc.proto#L460 package.Service + string interface_service_name = 1; + // eg: polaris, 123 platform format: trpc.app.server.service. + string routing_service_name = 2; +} + +// The error code and error message sent by the server when an error occurs. +message ErrorResponse { + // This field uses the error codes defined in trpc.proto TrpcRetCode. + int32 error_code = 1; + string error_message = 2; +} + From 77c8b294ac743583991a97969626389e28c47a93 Mon Sep 17 00:00:00 2001 From: amdahliu Date: Tue, 2 Jul 2024 17:42:36 +0800 Subject: [PATCH 78/85] pb/go/trpc: release v0.2.0 (merge request !41) Squash merge branch 'pb-go-trpc-v0.1.2' into 'master' TAPD: --story=118306896 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index eee333d..a4c86f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## [pb/go/trpc/v0.2.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v0.2.0)(2024-07-02) + +### Features +- add openapiv2.proto support json_schema +- regenerate stub code to include LZ4_BLOCK_COMPRESS field +- add reflection.proto and corresponding go stub code to support server reflection !36 + ## [0.4.1](https://git.woa.com/trpc/trpc-protocol/tree/v0.4.0)(2024-04-02) ### Features And Improvements - trpc流式协议新增流空闲关闭的错误码 From 822164bb76f41958651be6c2b09aed0fe2252867 Mon Sep 17 00:00:00 2001 From: junevanlong Date: Mon, 5 Aug 2024 16:55:08 +0800 Subject: [PATCH 79/85] trpc: synchronize the serialization types (merge request !43) Squash merge branch 'encode_type' into 'master' This MR aims to synchronize the serialization types of tRPC to maintain data consistency. It adds a new type for `thrift-compact` and one for the existing code `text/xml`. Reference: 1. https://git.woa.com/trpc-go/trpc-go/-/merge_requests/2490 2. https://git.woa.com/trpc-go/trpc-go/-/merge_requests/2493 TAPD: --story=119034585 --- trpc/trpc.proto | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/trpc/trpc.proto b/trpc/trpc.proto index 35f0d84..0b20f3a 100644 --- a/trpc/trpc.proto +++ b/trpc/trpc.proto @@ -234,7 +234,15 @@ enum TrpcContentEncodeType { TRPC_XML_ENCODE = 5; // thrift + // 由于历史原因,早期实现的 thrift 使用的是二进制编码 + // 因此这里的 thrift 代表 thrift-binary TRPC_THRIFT_ENCODE = 6; + + // thrift-compact + TRPC_THRIFT_COMPACT_ENCODE = 7; + + // text/xml + TRPC_TEXT_XML_ENCODE = 8; } // trpc协议中 data 内容的压缩类型 From 5bf519d0fc756132a368e0f708e1d8f1089fdcc9 Mon Sep 17 00:00:00 2001 From: amdahliu Date: Tue, 6 Aug 2024 11:31:11 +0800 Subject: [PATCH 80/85] pb/go/trpc: move reflection package to reflection module (merge request !42) Squash merge branch 'reflection-v0.1.0' into 'master' to fix https://git.woa.com/trpc-go/trpc-go/issues/987 TAPD: --story=119013916 --- CHANGELOG.md | 12 +- pb/go/trpc/go.mod | 2 +- pb/go/trpc/go.sum | 209 ----------------------------------- pb/go/trpc/reflection/go.mod | 47 ++++++++ pb/go/trpc/reflection/go.sum | 132 ++++++++++++++++++++++ 5 files changed, 191 insertions(+), 211 deletions(-) create mode 100644 pb/go/trpc/reflection/go.mod create mode 100644 pb/go/trpc/reflection/go.sum diff --git a/CHANGELOG.md b/CHANGELOG.md index a4c86f5..1da9451 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ # Change Log -## [pb/go/trpc/v0.2.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v0.2.0)(2024-07-02) +## ## [pb/go/trpc/relfection/v0.1.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/reflection/v0.1.0)(2024-08-02) + +- add reflection go stub code to support server reflection + +## [pb/go/trpc/v0.2.1](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v0.2.1) (2024-08-02) + +### Features + +- remove reflection package to fix https://git.woa.com/trpc-go/trpc-go/issues/987 + +## [pb/go/trpc/v0.2.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v0.2.0)(2024-07-02) ### Features - add openapiv2.proto support json_schema diff --git a/pb/go/trpc/go.mod b/pb/go/trpc/go.mod index 5606033..1a52f17 100644 --- a/pb/go/trpc/go.mod +++ b/pb/go/trpc/go.mod @@ -3,6 +3,6 @@ module git.woa.com/trpc/trpc-protocol/pb/go/trpc go 1.16 require ( - git.code.oa.com/trpc-go/trpc-go v0.18.1 + github.com/google/go-cmp v0.5.8 // indirect google.golang.org/protobuf v1.34.2 ) diff --git a/pb/go/trpc/go.sum b/pb/go/trpc/go.sum index fdd7b7e..1ee1cf1 100644 --- a/pb/go/trpc/go.sum +++ b/pb/go/trpc/go.sum @@ -1,217 +1,8 @@ -git.code.oa.com/trpc-go/trpc-go v0.18.1 h1:eUind0UwI4gTpN+FN5APS53HtebMEEjXQxWlhzFf6ls= -git.code.oa.com/trpc-go/trpc-go v0.18.1/go.mod h1:Fp6wa5Sx01ftmTTQwTSvEFpZvhcWXYyyw/5Qe4d3g9k= -git.woa.com/jce/jce v1.2.0 h1:o75OgZYPg2+AWtF3m7YkC6lISOKtMmuj3H2UzD6e8Rg= -git.woa.com/jce/jce v1.2.0/go.mod h1:tDEP7kGD+54CmvikQ3n5CS3YYwzSkiqKgXdOhFKpvq0= -git.woa.com/trpc-go/go_reuseport v1.7.0 h1:h9Z8/fFvOSk+ezrLRyJ8Ck4tka74ZRCxgKI+4zYlT44= -git.woa.com/trpc-go/go_reuseport v1.7.0/go.mod h1:5mVq/Xi5sRvmB/Myvjp3dn6zN7F/bIJwPSGBffUdqTc= -git.woa.com/trpc-go/tnet v0.0.15 h1:CehU7U3T4qmKu/IwMcShsWMNnnykjNxgoLo0cLoNeJ8= -git.woa.com/trpc-go/tnet v0.0.15/go.mod h1:Ipq6vv0Nlbxdf3k4KYXJ5Gp1D0o29TN5PX5aFUH2RX0= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/agiledragon/gomonkey v2.0.2+incompatible h1:eXKi9/piiC3cjJD1658mEE2o3NjkJ5vDLgYjCQu0Xlw= -github.com/agiledragon/gomonkey v2.0.2+incompatible/go.mod h1:2NGfXu1a80LLr2cmWXGBDaHEjb1idR6+FVlX5T3D9hw= -github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= -github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fasthttp/router v1.4.22 h1:qwWcYBbndVDwts4dKaz+A2ehsnbKilmiP6pUhXBfYKo= -github.com/fasthttp/router v1.4.22/go.mod h1:KeMvHLqhlB9vyDWD5TSvTccl9qeWrjSSiTJrJALHKV0= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/form/v4 v4.2.0 h1:N1wh+Goz61e6w66vo8vJkQt+uwZSoLz50kZPJWR8eic= -github.com/go-playground/form/v4 v4.2.0/go.mod h1:q1a2BY+AQUUzhl6xA/6hBetay6dEIhMHjgvJiGo6K7U= -github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/flatbuffers v2.0.0+incompatible h1:dicJ2oXwypfwUGnB2/TYWYEKiuk9eYQlQO/AnOHl5mI= -github.com/google/flatbuffers v2.0.0+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= -github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= -github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= -github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2ttpEmkA4aQ3j4u9dStX2t4M8UM6qqNsG8= -github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is= -github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ= -github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/panjf2000/ants/v2 v2.4.6 h1:drmj9mcygn2gawZ155dRbo+NfXEfAssjZNU1qoIb4gQ= -github.com/panjf2000/ants/v2 v2.4.6/go.mod h1:f6F0NZVFsGCp5A7QW/Zj/m92atWwOkY0OIhFxRNFr4A= -github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= -github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/r3labs/sse/v2 v2.10.0 h1:hFEkLLFY4LDifoHdiCN/LlGBAdVJYsANaLqNYa1l/v0= -github.com/r3labs/sse/v2 v2.10.0/go.mod h1:Igau6Whc+F17QUgML1fYe1VPZzTV6EMCnYktEmkNJ7I= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee h1:8Iv5m6xEo1NR1AvpV+7XmhI4r39LGNzwUL4YpMuL5vk= -github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee/go.mod h1:qwtSXrKuJh/zsFQ12yEE89xfCrGKK63Rr7ctU/uCo4g= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= -github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g= -github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/automaxprocs v1.3.0 h1:II28aZoGdaglS5vVNnspf28lnZpXScxtIozx1lAjdb0= -go.uber.org/automaxprocs v1.3.0/go.mod h1:9CWT6lKIep8U41DDaPiH6eFscnTyjfTANNQNx6LrIcA= -go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= -golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191116160921-f9c825593386/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= -gopkg.in/cenkalti/backoff.v1 v1.1.0 h1:Arh75ttbsvlpVA7WtVpH4u9h6Zl46xuptxqLxPiSo4Y= -gopkg.in/cenkalti/backoff.v1 v1.1.0/go.mod h1:J6Vskwqd+OMVJl8C33mmtxTBs2gyzfv7UDAkHu8BrjI= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= diff --git a/pb/go/trpc/reflection/go.mod b/pb/go/trpc/reflection/go.mod new file mode 100644 index 0000000..eb35238 --- /dev/null +++ b/pb/go/trpc/reflection/go.mod @@ -0,0 +1,47 @@ +module git.woa.com/trpc/trpc-protocol/pb/go/trpc/reflection + +go 1.18 + +require ( + git.code.oa.com/trpc-go/trpc-go v0.18.3 + google.golang.org/protobuf v1.34.2 +) + +require ( + git.woa.com/jce/jce v1.2.0 // indirect + git.woa.com/trpc-go/go_reuseport v1.7.0 // indirect + git.woa.com/trpc-go/tnet v0.0.15 // indirect + github.com/BurntSushi/toml v0.3.1 // indirect + github.com/andybalholm/brotli v1.0.5 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/go-playground/form/v4 v4.2.0 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/golang/snappy v0.0.3 // indirect + github.com/google/flatbuffers v2.0.0+incompatible // indirect + github.com/hashicorp/errwrap v1.0.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/jinzhu/copier v0.4.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/compress v1.17.0 // indirect + github.com/lestrrat-go/strftime v1.0.6 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/panjf2000/ants/v2 v2.4.6 // indirect + github.com/pierrec/lz4/v4 v4.1.18 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/r3labs/sse/v2 v2.10.0 // indirect + github.com/spf13/cast v1.3.1 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasthttp v1.51.0 // indirect + go.uber.org/atomic v1.9.0 // indirect + go.uber.org/automaxprocs v1.3.0 // indirect + go.uber.org/multierr v1.6.0 // indirect + go.uber.org/zap v1.24.0 // indirect + golang.org/x/net v0.23.0 // indirect + golang.org/x/sync v0.1.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/text v0.14.0 // indirect + gopkg.in/cenkalti/backoff.v1 v1.1.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/pb/go/trpc/reflection/go.sum b/pb/go/trpc/reflection/go.sum new file mode 100644 index 0000000..9f2d452 --- /dev/null +++ b/pb/go/trpc/reflection/go.sum @@ -0,0 +1,132 @@ +git.code.oa.com/trpc-go/trpc-go v0.18.3 h1:QUa3M7kL7jtaORKFgMihULeyi1klyyXwcaw1USwIn5w= +git.code.oa.com/trpc-go/trpc-go v0.18.3/go.mod h1:Fp6wa5Sx01ftmTTQwTSvEFpZvhcWXYyyw/5Qe4d3g9k= +git.woa.com/jce/jce v1.2.0 h1:o75OgZYPg2+AWtF3m7YkC6lISOKtMmuj3H2UzD6e8Rg= +git.woa.com/jce/jce v1.2.0/go.mod h1:tDEP7kGD+54CmvikQ3n5CS3YYwzSkiqKgXdOhFKpvq0= +git.woa.com/trpc-go/go_reuseport v1.7.0 h1:h9Z8/fFvOSk+ezrLRyJ8Ck4tka74ZRCxgKI+4zYlT44= +git.woa.com/trpc-go/go_reuseport v1.7.0/go.mod h1:5mVq/Xi5sRvmB/Myvjp3dn6zN7F/bIJwPSGBffUdqTc= +git.woa.com/trpc-go/tnet v0.0.15 h1:CehU7U3T4qmKu/IwMcShsWMNnnykjNxgoLo0cLoNeJ8= +git.woa.com/trpc-go/tnet v0.0.15/go.mod h1:Ipq6vv0Nlbxdf3k4KYXJ5Gp1D0o29TN5PX5aFUH2RX0= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/agiledragon/gomonkey v2.0.2+incompatible h1:eXKi9/piiC3cjJD1658mEE2o3NjkJ5vDLgYjCQu0Xlw= +github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= +github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fasthttp/router v1.4.22 h1:qwWcYBbndVDwts4dKaz+A2ehsnbKilmiP6pUhXBfYKo= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/form/v4 v4.2.0 h1:N1wh+Goz61e6w66vo8vJkQt+uwZSoLz50kZPJWR8eic= +github.com/go-playground/form/v4 v4.2.0/go.mod h1:q1a2BY+AQUUzhl6xA/6hBetay6dEIhMHjgvJiGo6K7U= +github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/flatbuffers v2.0.0+incompatible h1:dicJ2oXwypfwUGnB2/TYWYEKiuk9eYQlQO/AnOHl5mI= +github.com/google/flatbuffers v2.0.0+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= +github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= +github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2ttpEmkA4aQ3j4u9dStX2t4M8UM6qqNsG8= +github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is= +github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ= +github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/panjf2000/ants/v2 v2.4.6 h1:drmj9mcygn2gawZ155dRbo+NfXEfAssjZNU1qoIb4gQ= +github.com/panjf2000/ants/v2 v2.4.6/go.mod h1:f6F0NZVFsGCp5A7QW/Zj/m92atWwOkY0OIhFxRNFr4A= +github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= +github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/r3labs/sse/v2 v2.10.0 h1:hFEkLLFY4LDifoHdiCN/LlGBAdVJYsANaLqNYa1l/v0= +github.com/r3labs/sse/v2 v2.10.0/go.mod h1:Igau6Whc+F17QUgML1fYe1VPZzTV6EMCnYktEmkNJ7I= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee h1:8Iv5m6xEo1NR1AvpV+7XmhI4r39LGNzwUL4YpMuL5vk= +github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= +github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/automaxprocs v1.3.0 h1:II28aZoGdaglS5vVNnspf28lnZpXScxtIozx1lAjdb0= +go.uber.org/automaxprocs v1.3.0/go.mod h1:9CWT6lKIep8U41DDaPiH6eFscnTyjfTANNQNx6LrIcA= +go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191116160921-f9c825593386/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +gopkg.in/cenkalti/backoff.v1 v1.1.0 h1:Arh75ttbsvlpVA7WtVpH4u9h6Zl46xuptxqLxPiSo4Y= +gopkg.in/cenkalti/backoff.v1 v1.1.0/go.mod h1:J6Vskwqd+OMVJl8C33mmtxTBs2gyzfv7UDAkHu8BrjI= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= From 4ca4b0f4263b2af89782f0e3a232bd2692c8d27c Mon Sep 17 00:00:00 2001 From: homerpan Date: Tue, 15 Apr 2025 19:40:42 +0800 Subject: [PATCH 81/85] fix merge issue --- CHANGELOG.md | 75 --- pb/go/trpc/api/annotations.pb.go | 33 +- pb/go/trpc/api/http.pb.go | 34 +- pb/go/trpc/api/openapiv2.pb.go | 13 +- pb/go/trpc/go.mod | 5 +- pb/go/trpc/go.sum | 8 +- pb/go/trpc/proto/trpc_options.pb.go | 17 +- pb/go/trpc/reflection/go.mod | 44 -- pb/go/trpc/reflection/go.sum | 132 ----- pb/go/trpc/reflection/reflection.pb.go | 709 ----------------------- pb/go/trpc/reflection/reflection.trpc.go | 110 ---- pb/go/trpc/swagger/swagger.pb.go | 16 +- pb/go/trpc/trpc.pb.go | 298 +++++----- pb/go/trpc/v2/api/annotations.pb.go | 10 +- pb/go/trpc/v2/api/http.pb.go | 11 +- pb/go/trpc/v2/go.mod | 2 +- pb/go/trpc/v2/go.sum | 4 +- pb/go/trpc/v2/proto/trpc_options.pb.go | 12 +- pb/go/trpc/v2/swagger/swagger.pb.go | 12 +- pb/go/trpc/v2/trpc.pb.go | 10 +- pb/go/trpc/v2/validate/validate.pb.go | 13 +- pb/go/trpc/validate/validate.pb.go | 13 +- 22 files changed, 288 insertions(+), 1293 deletions(-) delete mode 100644 CHANGELOG.md delete mode 100644 pb/go/trpc/reflection/go.mod delete mode 100644 pb/go/trpc/reflection/go.sum delete mode 100644 pb/go/trpc/reflection/reflection.pb.go delete mode 100644 pb/go/trpc/reflection/reflection.trpc.go diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 1da9451..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,75 +0,0 @@ -# Change Log - -## ## [pb/go/trpc/relfection/v0.1.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/reflection/v0.1.0)(2024-08-02) - -- add reflection go stub code to support server reflection - -## [pb/go/trpc/v0.2.1](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v0.2.1) (2024-08-02) - -### Features - -- remove reflection package to fix https://git.woa.com/trpc-go/trpc-go/issues/987 - -## [pb/go/trpc/v0.2.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v0.2.0)(2024-07-02) - -### Features -- add openapiv2.proto support json_schema -- regenerate stub code to include LZ4_BLOCK_COMPRESS field -- add reflection.proto and corresponding go stub code to support server reflection !36 - -## [0.4.1](https://git.woa.com/trpc/trpc-protocol/tree/v0.4.0)(2024-04-02) -### Features And Improvements -- trpc流式协议新增流空闲关闭的错误码 - -### Thanks to our Contributors -irislao(劳昭丹) - -## [0.4.0](https://git.woa.com/trpc/trpc-protocol/tree/v0.4.0)(2023-05-17) -### Features And Improvements -- 拓展trpc协议支持lz4解压缩类型 - -### Thanks to our Contributors -seadonli(李晓东) - -## [pb/go/trpc/v0.1.1](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v0.1.1)(2023-05-09) -### Features -- 新增客户端读取 Frame 错误码 TRPC_CLIENT_READ_FRAME_ERR(171) - -## [pb/go/trpc/v0.1.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v0.1.0)(2023-04-19) -### Features -- 新增 trpc 协议 - -## [0.3.0](https://git.woa.com/trpc/trpc-protocol/tree/v0.3.0)(2023-02-23) -### Features And Improvements -- 修整trpc目录下各个proto文件的路径名以规范化 -- 提供trpc/v2子目录以供 trpc-go trpc.tech v2 使用 -- 增加java package选项 -- 拓展trpc协议支持attachment - -### Thanks to our Contributors -bochenchen(陈维翔);wineguo(郭琪周) - -## [pb/go/trpc/v2.0.0](https://git.woa.com/trpc/trpc-protocol/tree/pb/go/trpc/v2.0.0-alpha)(2022-11-30) - -- 修整 trpc 目录下各个 proto 文件的路径名以规范化 -- 提供 trpc/v2 子目录以供 trpc-go trpc.tech v2 使用 - -## [0.2.1](https://git.woa.com/trpc/trpc-protocol/tree/v0.2.1)(2022-08-12) -### Features And Improvements -- snappy新增两种的压缩类型(block/stream),以应对不同语言snappy的sdk实现差异 -- 增加http的扩展定义HttpRule - -## [0.2.0](https://git.woa.com/trpc/trpc-protocol/tree/v0.2.0)(2022-05-09) -### Features And Improvements -- 定义扩展option(trpc/proto/trpc_options.proto) -- 扩展option支持alias -- 为trpc协议的`TrpcContentEncodeType`新增枚举值`TRPC_THRIFT_ENCODE` -- 调整更合理的目录结构:从`proto`目录到`trpc/proto`目录 - -### Thanks to our Contributors -minchangwei(韦明昌) - -## [0.1.0](https://git.woa.com/trpc/trpc-protocol/tree/v0.1.0)(2021-12-10) -### Features And Improvements -- 定义trpc一应一答协议 -- 定义trpc流式协议 diff --git a/pb/go/trpc/api/annotations.pb.go b/pb/go/trpc/api/annotations.pb.go index 1448e6c..db838e7 100644 --- a/pb/go/trpc/api/annotations.pb.go +++ b/pb/go/trpc/api/annotations.pb.go @@ -1,3 +1,26 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// This file may have been modified by THL A29 Limited ("Tencent Modifications"). +// All Tencent Modifications are Copyright (C) 2023 THL A29 Limited. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 @@ -72,12 +95,12 @@ var file_trpc_api_annotations_proto_rawDesc = []byte{ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x88, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x42, 0x4e, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, + 0x61, 0x42, 0x4d, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, - 0x78, 0x74, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, - 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x78, 0x74, 0x5a, 0x2c, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_trpc_api_annotations_proto_goTypes = []interface{}{ diff --git a/pb/go/trpc/api/http.pb.go b/pb/go/trpc/api/http.pb.go index f73030f..3f21cb6 100644 --- a/pb/go/trpc/api/http.pb.go +++ b/pb/go/trpc/api/http.pb.go @@ -1,3 +1,26 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// This file may have been modified by THL A29 Limited ("Tencent Modifications"). +// All Tencent Modifications are Copyright (C) 2023 THL A29 Limited. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 @@ -34,7 +57,6 @@ type HttpRule struct { // can be defined using the 'custom' field. // // Types that are assignable to Pattern: - // // *HttpRule_Get // *HttpRule_Put // *HttpRule_Post @@ -309,12 +331,12 @@ var file_trpc_api_http_proto_rawDesc = []byte{ 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x4e, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x4d, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, - 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x2c, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, + 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/go/trpc/api/openapiv2.pb.go b/pb/go/trpc/api/openapiv2.pb.go index cda966f..2a03509 100644 --- a/pb/go/trpc/api/openapiv2.pb.go +++ b/pb/go/trpc/api/openapiv2.pb.go @@ -69,8 +69,7 @@ func (x *Schema) GetJsonSchema() *JSONSchema { } // `JSONSchema` represents properties from JSON SCHEMA taken,and as used, in -// -// the OpenAPI v2 spec. +// the OpenAPI v2 spec. type JSONSchema struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -130,12 +129,12 @@ var file_trpc_api_openapiv2_proto_rawDesc = []byte{ 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x28, 0x0a, 0x0a, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x42, - 0x4e, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, + 0x4d, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, - 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, - 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x5a, 0x2c, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, 0x72, 0x70, + 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/go/trpc/go.mod b/pb/go/trpc/go.mod index 6bce818..844ebb2 100644 --- a/pb/go/trpc/go.mod +++ b/pb/go/trpc/go.mod @@ -2,7 +2,4 @@ module trpc.group/trpc/trpc-protocol/pb/go/trpc go 1.16 -require ( - github.com/google/go-cmp v0.5.8 // indirect - google.golang.org/protobuf v1.34.2 -) +require google.golang.org/protobuf v1.36.6 diff --git a/pb/go/trpc/go.sum b/pb/go/trpc/go.sum index 1ee1cf1..6ec03ed 100644 --- a/pb/go/trpc/go.sum +++ b/pb/go/trpc/go.sum @@ -1,8 +1,8 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= diff --git a/pb/go/trpc/proto/trpc_options.pb.go b/pb/go/trpc/proto/trpc_options.pb.go index 42480ce..78c3737 100644 --- a/pb/go/trpc/proto/trpc_options.pb.go +++ b/pb/go/trpc/proto/trpc_options.pb.go @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 @@ -65,13 +71,12 @@ var file_trpc_proto_trpc_options_proto_rawDesc = []byte{ 0x36, 0x0a, 0x06, 0x67, 0x6f, 0x5f, 0x74, 0x61, 0x67, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x82, 0x87, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x50, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, + 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x4f, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, - 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, - 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, + 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_trpc_proto_trpc_options_proto_goTypes = []interface{}{ diff --git a/pb/go/trpc/reflection/go.mod b/pb/go/trpc/reflection/go.mod deleted file mode 100644 index c52b49c..0000000 --- a/pb/go/trpc/reflection/go.mod +++ /dev/null @@ -1,44 +0,0 @@ -module trpc.group/trpc/trpc-protocol/pb/go/trpc/reflection - -go 1.18 - -require ( - git.code.oa.com/trpc-go/trpc-go v0.18.3 - google.golang.org/protobuf v1.34.2 -) - -require ( - github.com/BurntSushi/toml v0.3.1 // indirect - github.com/andybalholm/brotli v1.0.5 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-playground/form/v4 v4.2.0 // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/golang/snappy v0.0.3 // indirect - github.com/google/flatbuffers v2.0.0+incompatible // indirect - github.com/hashicorp/errwrap v1.0.0 // indirect - github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/jinzhu/copier v0.4.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.17.0 // indirect - github.com/lestrrat-go/strftime v1.0.6 // indirect - github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/panjf2000/ants/v2 v2.4.6 // indirect - github.com/pierrec/lz4/v4 v4.1.18 // indirect - github.com/pkg/errors v0.9.1 // indirect - github.com/r3labs/sse/v2 v2.10.0 // indirect - github.com/spf13/cast v1.3.1 // indirect - github.com/valyala/bytebufferpool v1.0.0 // indirect - github.com/valyala/fasthttp v1.51.0 // indirect - go.uber.org/atomic v1.9.0 // indirect - go.uber.org/automaxprocs v1.3.0 // indirect - go.uber.org/multierr v1.6.0 // indirect - go.uber.org/zap v1.24.0 // indirect - golang.org/x/net v0.23.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.18.0 // indirect - golang.org/x/text v0.14.0 // indirect - gopkg.in/cenkalti/backoff.v1 v1.1.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect -) diff --git a/pb/go/trpc/reflection/go.sum b/pb/go/trpc/reflection/go.sum deleted file mode 100644 index 9f2d452..0000000 --- a/pb/go/trpc/reflection/go.sum +++ /dev/null @@ -1,132 +0,0 @@ -git.code.oa.com/trpc-go/trpc-go v0.18.3 h1:QUa3M7kL7jtaORKFgMihULeyi1klyyXwcaw1USwIn5w= -git.code.oa.com/trpc-go/trpc-go v0.18.3/go.mod h1:Fp6wa5Sx01ftmTTQwTSvEFpZvhcWXYyyw/5Qe4d3g9k= -git.woa.com/jce/jce v1.2.0 h1:o75OgZYPg2+AWtF3m7YkC6lISOKtMmuj3H2UzD6e8Rg= -git.woa.com/jce/jce v1.2.0/go.mod h1:tDEP7kGD+54CmvikQ3n5CS3YYwzSkiqKgXdOhFKpvq0= -git.woa.com/trpc-go/go_reuseport v1.7.0 h1:h9Z8/fFvOSk+ezrLRyJ8Ck4tka74ZRCxgKI+4zYlT44= -git.woa.com/trpc-go/go_reuseport v1.7.0/go.mod h1:5mVq/Xi5sRvmB/Myvjp3dn6zN7F/bIJwPSGBffUdqTc= -git.woa.com/trpc-go/tnet v0.0.15 h1:CehU7U3T4qmKu/IwMcShsWMNnnykjNxgoLo0cLoNeJ8= -git.woa.com/trpc-go/tnet v0.0.15/go.mod h1:Ipq6vv0Nlbxdf3k4KYXJ5Gp1D0o29TN5PX5aFUH2RX0= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/agiledragon/gomonkey v2.0.2+incompatible h1:eXKi9/piiC3cjJD1658mEE2o3NjkJ5vDLgYjCQu0Xlw= -github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= -github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fasthttp/router v1.4.22 h1:qwWcYBbndVDwts4dKaz+A2ehsnbKilmiP6pUhXBfYKo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/form/v4 v4.2.0 h1:N1wh+Goz61e6w66vo8vJkQt+uwZSoLz50kZPJWR8eic= -github.com/go-playground/form/v4 v4.2.0/go.mod h1:q1a2BY+AQUUzhl6xA/6hBetay6dEIhMHjgvJiGo6K7U= -github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/flatbuffers v2.0.0+incompatible h1:dicJ2oXwypfwUGnB2/TYWYEKiuk9eYQlQO/AnOHl5mI= -github.com/google/flatbuffers v2.0.0+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= -github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= -github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= -github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2ttpEmkA4aQ3j4u9dStX2t4M8UM6qqNsG8= -github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is= -github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ= -github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/panjf2000/ants/v2 v2.4.6 h1:drmj9mcygn2gawZ155dRbo+NfXEfAssjZNU1qoIb4gQ= -github.com/panjf2000/ants/v2 v2.4.6/go.mod h1:f6F0NZVFsGCp5A7QW/Zj/m92atWwOkY0OIhFxRNFr4A= -github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= -github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/r3labs/sse/v2 v2.10.0 h1:hFEkLLFY4LDifoHdiCN/LlGBAdVJYsANaLqNYa1l/v0= -github.com/r3labs/sse/v2 v2.10.0/go.mod h1:Igau6Whc+F17QUgML1fYe1VPZzTV6EMCnYktEmkNJ7I= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee h1:8Iv5m6xEo1NR1AvpV+7XmhI4r39LGNzwUL4YpMuL5vk= -github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= -github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/automaxprocs v1.3.0 h1:II28aZoGdaglS5vVNnspf28lnZpXScxtIozx1lAjdb0= -go.uber.org/automaxprocs v1.3.0/go.mod h1:9CWT6lKIep8U41DDaPiH6eFscnTyjfTANNQNx6LrIcA= -go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191116160921-f9c825593386/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= -gopkg.in/cenkalti/backoff.v1 v1.1.0 h1:Arh75ttbsvlpVA7WtVpH4u9h6Zl46xuptxqLxPiSo4Y= -gopkg.in/cenkalti/backoff.v1 v1.1.0/go.mod h1:J6Vskwqd+OMVJl8C33mmtxTBs2gyzfv7UDAkHu8BrjI= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= diff --git a/pb/go/trpc/reflection/reflection.pb.go b/pb/go/trpc/reflection/reflection.pb.go deleted file mode 100644 index 478564d..0000000 --- a/pb/go/trpc/reflection/reflection.pb.go +++ /dev/null @@ -1,709 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.1 -// protoc v3.19.1 -// source: reflection.proto - -package reflection - -import ( - reflect "reflect" - sync "sync" - - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// The message sent by the client when calling ServerReflectionInfo method. -type ServerReflectionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` - // To use reflection service, the client should set one of the following - // fields in message_request. The server distinguishes requests by their - // defined field and then handles them using corresponding methods. - // - // Types that are assignable to MessageRequest: - // - // *ServerReflectionRequest_FileContainingSymbol - // *ServerReflectionRequest_ListServices - // *ServerReflectionRequest_FileByFilename - MessageRequest isServerReflectionRequest_MessageRequest `protobuf_oneof:"message_request"` -} - -func (x *ServerReflectionRequest) Reset() { - *x = ServerReflectionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_reflection_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ServerReflectionRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ServerReflectionRequest) ProtoMessage() {} - -func (x *ServerReflectionRequest) ProtoReflect() protoreflect.Message { - mi := &file_reflection_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ServerReflectionRequest.ProtoReflect.Descriptor instead. -func (*ServerReflectionRequest) Descriptor() ([]byte, []int) { - return file_reflection_proto_rawDescGZIP(), []int{0} -} - -func (x *ServerReflectionRequest) GetHost() string { - if x != nil { - return x.Host - } - return "" -} - -func (m *ServerReflectionRequest) GetMessageRequest() isServerReflectionRequest_MessageRequest { - if m != nil { - return m.MessageRequest - } - return nil -} - -func (x *ServerReflectionRequest) GetFileContainingSymbol() string { - if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_FileContainingSymbol); ok { - return x.FileContainingSymbol - } - return "" -} - -func (x *ServerReflectionRequest) GetListServices() string { - if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_ListServices); ok { - return x.ListServices - } - return "" -} - -func (x *ServerReflectionRequest) GetFileByFilename() string { - if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_FileByFilename); ok { - return x.FileByFilename - } - return "" -} - -type isServerReflectionRequest_MessageRequest interface { - isServerReflectionRequest_MessageRequest() -} - -type ServerReflectionRequest_FileContainingSymbol struct { - // Find the proto file that declares the given fully-qualified symbol name. - // This field should be a fully-qualified symbol name - // (e.g. .[.] or .). - FileContainingSymbol string `protobuf:"bytes,3,opt,name=file_containing_symbol,json=fileContainingSymbol,proto3,oneof"` -} - -type ServerReflectionRequest_ListServices struct { - // List the full names of registered services. The content will not be - // checked. - ListServices string `protobuf:"bytes,4,opt,name=list_services,json=listServices,proto3,oneof"` -} - -type ServerReflectionRequest_FileByFilename struct { - // Find a proto file by the file name. - FileByFilename string `protobuf:"bytes,5,opt,name=file_by_filename,json=fileByFilename,proto3,oneof"` -} - -func (*ServerReflectionRequest_FileContainingSymbol) isServerReflectionRequest_MessageRequest() {} - -func (*ServerReflectionRequest_ListServices) isServerReflectionRequest_MessageRequest() {} - -func (*ServerReflectionRequest_FileByFilename) isServerReflectionRequest_MessageRequest() {} - -// The message sent by the server to answer ServerReflectionInfo method. -type ServerReflectionResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ValidHost string `protobuf:"bytes,1,opt,name=valid_host,json=validHost,proto3" json:"valid_host,omitempty"` - OriginalRequest *ServerReflectionRequest `protobuf:"bytes,2,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"` - // The server sets one of the following fields according to the message_request - // in the request. - // - // Types that are assignable to MessageResponse: - // - // *ServerReflectionResponse_FileDescriptorResponse - // *ServerReflectionResponse_ListServicesResponse - // *ServerReflectionResponse_ErrorResponse - MessageResponse isServerReflectionResponse_MessageResponse `protobuf_oneof:"message_response"` -} - -func (x *ServerReflectionResponse) Reset() { - *x = ServerReflectionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_reflection_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ServerReflectionResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ServerReflectionResponse) ProtoMessage() {} - -func (x *ServerReflectionResponse) ProtoReflect() protoreflect.Message { - mi := &file_reflection_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ServerReflectionResponse.ProtoReflect.Descriptor instead. -func (*ServerReflectionResponse) Descriptor() ([]byte, []int) { - return file_reflection_proto_rawDescGZIP(), []int{1} -} - -func (x *ServerReflectionResponse) GetValidHost() string { - if x != nil { - return x.ValidHost - } - return "" -} - -func (x *ServerReflectionResponse) GetOriginalRequest() *ServerReflectionRequest { - if x != nil { - return x.OriginalRequest - } - return nil -} - -func (m *ServerReflectionResponse) GetMessageResponse() isServerReflectionResponse_MessageResponse { - if m != nil { - return m.MessageResponse - } - return nil -} - -func (x *ServerReflectionResponse) GetFileDescriptorResponse() *FileDescriptorResponse { - if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_FileDescriptorResponse); ok { - return x.FileDescriptorResponse - } - return nil -} - -func (x *ServerReflectionResponse) GetListServicesResponse() *ListServiceResponse { - if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_ListServicesResponse); ok { - return x.ListServicesResponse - } - return nil -} - -func (x *ServerReflectionResponse) GetErrorResponse() *ErrorResponse { - if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_ErrorResponse); ok { - return x.ErrorResponse - } - return nil -} - -type isServerReflectionResponse_MessageResponse interface { - isServerReflectionResponse_MessageResponse() -} - -type ServerReflectionResponse_FileDescriptorResponse struct { - // This message is used to answer file_containing_symbol, - // As the repeated label is not allowed in oneof fields, we use a - // FileDescriptorResponse message to encapsulate the repeated fields. - FileDescriptorResponse *FileDescriptorResponse `protobuf:"bytes,4,opt,name=file_descriptor_response,json=fileDescriptorResponse,proto3,oneof"` -} - -type ServerReflectionResponse_ListServicesResponse struct { - // This message is used to answer list_services requests. - ListServicesResponse *ListServiceResponse `protobuf:"bytes,5,opt,name=list_services_response,json=listServicesResponse,proto3,oneof"` -} - -type ServerReflectionResponse_ErrorResponse struct { - // This message is used when an error occurs. - ErrorResponse *ErrorResponse `protobuf:"bytes,6,opt,name=error_response,json=errorResponse,proto3,oneof"` -} - -func (*ServerReflectionResponse_FileDescriptorResponse) isServerReflectionResponse_MessageResponse() { -} - -func (*ServerReflectionResponse_ListServicesResponse) isServerReflectionResponse_MessageResponse() {} - -func (*ServerReflectionResponse_ErrorResponse) isServerReflectionResponse_MessageResponse() {} - -// Serialized FileDescriptorProto messages sent by the server answering -// a file_by_filename, file_containing_symbol, or file_containing_extension -// request. -type FileDescriptorResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Serialized FileDescriptorProto messages. We avoid taking a dependency on - // descriptor.proto, which uses proto2 only features, by making them opaque - // bytes instead. - FileDescriptorProto [][]byte `protobuf:"bytes,1,rep,name=file_descriptor_proto,json=fileDescriptorProto,proto3" json:"file_descriptor_proto,omitempty"` -} - -func (x *FileDescriptorResponse) Reset() { - *x = FileDescriptorResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_reflection_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FileDescriptorResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FileDescriptorResponse) ProtoMessage() {} - -func (x *FileDescriptorResponse) ProtoReflect() protoreflect.Message { - mi := &file_reflection_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FileDescriptorResponse.ProtoReflect.Descriptor instead. -func (*FileDescriptorResponse) Descriptor() ([]byte, []int) { - return file_reflection_proto_rawDescGZIP(), []int{2} -} - -func (x *FileDescriptorResponse) GetFileDescriptorProto() [][]byte { - if x != nil { - return x.FileDescriptorProto - } - return nil -} - -// A list of ServiceResponse sent by the server answering list_services request. -type ListServiceResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The information of each service may be expanded in the future, so we use - // ServiceResponse message to encapsulate it. - Service []*ServiceResponse `protobuf:"bytes,1,rep,name=service,proto3" json:"service,omitempty"` -} - -func (x *ListServiceResponse) Reset() { - *x = ListServiceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_reflection_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListServiceResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListServiceResponse) ProtoMessage() {} - -func (x *ListServiceResponse) ProtoReflect() protoreflect.Message { - mi := &file_reflection_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListServiceResponse.ProtoReflect.Descriptor instead. -func (*ListServiceResponse) Descriptor() ([]byte, []int) { - return file_reflection_proto_rawDescGZIP(), []int{3} -} - -func (x *ListServiceResponse) GetService() []*ServiceResponse { - if x != nil { - return x.Service - } - return nil -} - -// The information of a single service used by ListServiceResponse to answer -// list_services request. -type ServiceResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Full name of a registered service, including its package name. - // The format is . - // https://github.com/trpc-group/trpc/blob/master/trpc/trpc.proto#L465 package.Service - InterfaceServiceName string `protobuf:"bytes,1,opt,name=interface_service_name,json=interfaceServiceName,proto3" json:"interface_service_name,omitempty"` - // eg: polaris, 123 platform format: trpc.app.server.service. - RoutingServiceName string `protobuf:"bytes,2,opt,name=routing_service_name,json=routingServiceName,proto3" json:"routing_service_name,omitempty"` -} - -func (x *ServiceResponse) Reset() { - *x = ServiceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_reflection_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ServiceResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ServiceResponse) ProtoMessage() {} - -func (x *ServiceResponse) ProtoReflect() protoreflect.Message { - mi := &file_reflection_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ServiceResponse.ProtoReflect.Descriptor instead. -func (*ServiceResponse) Descriptor() ([]byte, []int) { - return file_reflection_proto_rawDescGZIP(), []int{4} -} - -func (x *ServiceResponse) GetInterfaceServiceName() string { - if x != nil { - return x.InterfaceServiceName - } - return "" -} - -func (x *ServiceResponse) GetRoutingServiceName() string { - if x != nil { - return x.RoutingServiceName - } - return "" -} - -// The error code and error message sent by the server when an error occurs. -type ErrorResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // This field uses the error codes defined in trpc.proto TrpcRetCode. - ErrorCode int32 `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` - ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` -} - -func (x *ErrorResponse) Reset() { - *x = ErrorResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_reflection_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ErrorResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ErrorResponse) ProtoMessage() {} - -func (x *ErrorResponse) ProtoReflect() protoreflect.Message { - mi := &file_reflection_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ErrorResponse.ProtoReflect.Descriptor instead. -func (*ErrorResponse) Descriptor() ([]byte, []int) { - return file_reflection_proto_rawDescGZIP(), []int{5} -} - -func (x *ErrorResponse) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode - } - return 0 -} - -func (x *ErrorResponse) GetErrorMessage() string { - if x != nil { - return x.ErrorMessage - } - return "" -} - -var File_reflection_proto protoreflect.FileDescriptor - -var file_reflection_proto_rawDesc = []byte{ - 0x0a, 0x10, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x12, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x22, 0xcb, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x14, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x25, - 0x0a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x79, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0xba, 0x03, 0x0a, 0x18, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, - 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x48, 0x6f, 0x73, 0x74, - 0x12, 0x56, 0x0a, 0x10, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x72, 0x70, - 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x66, 0x0a, 0x18, 0x66, 0x69, 0x6c, 0x65, - 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x72, 0x70, - 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x16, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x5f, 0x0a, 0x16, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x69, 0x73, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x72, 0x70, 0x63, - 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x12, 0x0a, - 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x4c, 0x0a, 0x16, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x66, - 0x69, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x65, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0x54, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, - 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x79, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, - 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x6f, - 0x75, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x53, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x86, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x72, 0x0a, 0x15, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, - 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x55, - 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, - 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, - 0x34, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, - 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, - 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_reflection_proto_rawDescOnce sync.Once - file_reflection_proto_rawDescData = file_reflection_proto_rawDesc -) - -func file_reflection_proto_rawDescGZIP() []byte { - file_reflection_proto_rawDescOnce.Do(func() { - file_reflection_proto_rawDescData = protoimpl.X.CompressGZIP(file_reflection_proto_rawDescData) - }) - return file_reflection_proto_rawDescData -} - -var file_reflection_proto_msgTypes = make([]protoimpl.MessageInfo, 6) -var file_reflection_proto_goTypes = []interface{}{ - (*ServerReflectionRequest)(nil), // 0: trpc.reflection.v1.ServerReflectionRequest - (*ServerReflectionResponse)(nil), // 1: trpc.reflection.v1.ServerReflectionResponse - (*FileDescriptorResponse)(nil), // 2: trpc.reflection.v1.FileDescriptorResponse - (*ListServiceResponse)(nil), // 3: trpc.reflection.v1.ListServiceResponse - (*ServiceResponse)(nil), // 4: trpc.reflection.v1.ServiceResponse - (*ErrorResponse)(nil), // 5: trpc.reflection.v1.ErrorResponse -} -var file_reflection_proto_depIdxs = []int32{ - 0, // 0: trpc.reflection.v1.ServerReflectionResponse.original_request:type_name -> trpc.reflection.v1.ServerReflectionRequest - 2, // 1: trpc.reflection.v1.ServerReflectionResponse.file_descriptor_response:type_name -> trpc.reflection.v1.FileDescriptorResponse - 3, // 2: trpc.reflection.v1.ServerReflectionResponse.list_services_response:type_name -> trpc.reflection.v1.ListServiceResponse - 5, // 3: trpc.reflection.v1.ServerReflectionResponse.error_response:type_name -> trpc.reflection.v1.ErrorResponse - 4, // 4: trpc.reflection.v1.ListServiceResponse.service:type_name -> trpc.reflection.v1.ServiceResponse - 0, // 5: trpc.reflection.v1.ServerReflection.ServiceReflectionInfo:input_type -> trpc.reflection.v1.ServerReflectionRequest - 1, // 6: trpc.reflection.v1.ServerReflection.ServiceReflectionInfo:output_type -> trpc.reflection.v1.ServerReflectionResponse - 6, // [6:7] is the sub-list for method output_type - 5, // [5:6] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name -} - -func init() { file_reflection_proto_init() } -func file_reflection_proto_init() { - if File_reflection_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_reflection_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerReflectionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_reflection_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerReflectionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_reflection_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileDescriptorResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_reflection_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListServiceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_reflection_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServiceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_reflection_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ErrorResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_reflection_proto_msgTypes[0].OneofWrappers = []interface{}{ - (*ServerReflectionRequest_FileContainingSymbol)(nil), - (*ServerReflectionRequest_ListServices)(nil), - (*ServerReflectionRequest_FileByFilename)(nil), - } - file_reflection_proto_msgTypes[1].OneofWrappers = []interface{}{ - (*ServerReflectionResponse_FileDescriptorResponse)(nil), - (*ServerReflectionResponse_ListServicesResponse)(nil), - (*ServerReflectionResponse_ErrorResponse)(nil), - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_reflection_proto_rawDesc, - NumEnums: 0, - NumMessages: 6, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_reflection_proto_goTypes, - DependencyIndexes: file_reflection_proto_depIdxs, - MessageInfos: file_reflection_proto_msgTypes, - }.Build() - File_reflection_proto = out.File - file_reflection_proto_rawDesc = nil - file_reflection_proto_goTypes = nil - file_reflection_proto_depIdxs = nil -} diff --git a/pb/go/trpc/reflection/reflection.trpc.go b/pb/go/trpc/reflection/reflection.trpc.go deleted file mode 100644 index 3eb78be..0000000 --- a/pb/go/trpc/reflection/reflection.trpc.go +++ /dev/null @@ -1,110 +0,0 @@ -// Code generated by trpc-go/trpc-go-cmdline v2.4.0. DO NOT EDIT. -// source: reflection.proto - -package reflection - -import ( - "context" - "errors" - "fmt" - - _ "git.code.oa.com/trpc-go/trpc-go" - "git.code.oa.com/trpc-go/trpc-go/client" - "git.code.oa.com/trpc-go/trpc-go/codec" - _ "git.code.oa.com/trpc-go/trpc-go/http" - "git.code.oa.com/trpc-go/trpc-go/server" -) - -// START ======================================= Server Service Definition ======================================= START - -// ServerReflectionService defines service. -type ServerReflectionService interface { - ServiceReflectionInfo(ctx context.Context, req *ServerReflectionRequest) (*ServerReflectionResponse, error) -} - -func ServerReflectionService_ServiceReflectionInfo_Handler(svr interface{}, ctx context.Context, f server.FilterFunc) (interface{}, error) { - req := &ServerReflectionRequest{} - filters, err := f(req) - if err != nil { - return nil, err - } - handleFunc := func(ctx context.Context, reqbody interface{}) (interface{}, error) { - return svr.(ServerReflectionService).ServiceReflectionInfo(ctx, reqbody.(*ServerReflectionRequest)) - } - - var rsp interface{} - rsp, err = filters.Filter(ctx, req, handleFunc) - if err != nil { - return nil, err - } - return rsp, nil -} - -// ServerReflectionServer_ServiceDesc descriptor for server.RegisterService. -var ServerReflectionServer_ServiceDesc = server.ServiceDesc{ - ServiceName: "trpc.reflection.v1.ServerReflection", - HandlerType: ((*ServerReflectionService)(nil)), - Methods: []server.Method{ - { - Name: "/trpc.reflection.v1.ServerReflection/ServiceReflectionInfo", - Func: ServerReflectionService_ServiceReflectionInfo_Handler, - }, - }, -} - -// RegisterServerReflectionService registers service. -func RegisterServerReflectionService(s server.Service, svr ServerReflectionService) { - if err := s.Register(&ServerReflectionServer_ServiceDesc, svr); err != nil { - panic(fmt.Sprintf("ServerReflection register error:%v", err)) - } -} - -// START --------------------------------- Default Unimplemented Server Service --------------------------------- START - -type UnimplementedServerReflection struct{} - -func (s *UnimplementedServerReflection) ServiceReflectionInfo(ctx context.Context, req *ServerReflectionRequest) (*ServerReflectionResponse, error) { - return nil, errors.New("rpc ServiceReflectionInfo of service ServerReflection is not implemented") -} - -// END --------------------------------- Default Unimplemented Server Service --------------------------------- END - -// END ======================================= Server Service Definition ======================================= END - -// START ======================================= Client Service Definition ======================================= START - -// ServerReflectionClientProxy defines service client proxy -type ServerReflectionClientProxy interface { - ServiceReflectionInfo(ctx context.Context, req *ServerReflectionRequest, opts ...client.Option) (rsp *ServerReflectionResponse, err error) -} - -type ServerReflectionClientProxyImpl struct { - client client.Client - opts []client.Option -} - -var NewServerReflectionClientProxy = func(opts ...client.Option) ServerReflectionClientProxy { - return &ServerReflectionClientProxyImpl{client: client.DefaultClient, opts: opts} -} - -func (c *ServerReflectionClientProxyImpl) ServiceReflectionInfo(ctx context.Context, req *ServerReflectionRequest, opts ...client.Option) (*ServerReflectionResponse, error) { - ctx, msg := codec.WithCloneMessage(ctx) - defer codec.PutBackMessage(msg) - msg.WithClientRPCName("/trpc.reflection.v1.ServerReflection/ServiceReflectionInfo") - msg.WithCalleeServiceName(ServerReflectionServer_ServiceDesc.ServiceName) - msg.WithCalleeApp("reflection") - msg.WithCalleeServer("v1") - msg.WithCalleeService("ServerReflection") - msg.WithCalleeMethod("ServiceReflectionInfo") - msg.WithSerializationType(codec.SerializationTypePB) - callopts := make([]client.Option, 0, len(c.opts)+len(opts)) - callopts = append(callopts, c.opts...) - callopts = append(callopts, opts...) - rsp := &ServerReflectionResponse{} - if err := c.client.Invoke(ctx, req, rsp, callopts...); err != nil { - return nil, err - } - return rsp, nil -} - -// END ======================================= Client Service Definition ======================================= END diff --git a/pb/go/trpc/swagger/swagger.pb.go b/pb/go/trpc/swagger/swagger.pb.go index e12523d..cbbdfd1 100644 --- a/pb/go/trpc/swagger/swagger.pb.go +++ b/pb/go/trpc/swagger/swagger.pb.go @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 @@ -200,12 +206,12 @@ var file_trpc_swagger_swagger_proto_rawDesc = []byte{ 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb5, 0x87, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, - 0x72, 0x42, 0x52, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, + 0x72, 0x42, 0x51, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, - 0x78, 0x74, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x77, - 0x61, 0x67, 0x67, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x78, 0x74, 0x5a, 0x30, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x77, 0x61, + 0x67, 0x67, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/go/trpc/trpc.pb.go b/pb/go/trpc/trpc.pb.go index a995102..67f84ce 100644 --- a/pb/go/trpc/trpc.pb.go +++ b/pb/go/trpc/trpc.pb.go @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 @@ -415,7 +421,13 @@ const ( // xml TrpcContentEncodeType_TRPC_XML_ENCODE TrpcContentEncodeType = 5 // thrift + // 由于历史原因,早期实现的 thrift 使用的是二进制编码 + // 因此这里的 thrift 代表 thrift-binary TrpcContentEncodeType_TRPC_THRIFT_ENCODE TrpcContentEncodeType = 6 + // thrift-compact + TrpcContentEncodeType_TRPC_THRIFT_COMPACT_ENCODE TrpcContentEncodeType = 7 + // text/xml + TrpcContentEncodeType_TRPC_TEXT_XML_ENCODE TrpcContentEncodeType = 8 ) // Enum value maps for TrpcContentEncodeType. @@ -428,15 +440,19 @@ var ( 4: "TRPC_NOOP_ENCODE", 5: "TRPC_XML_ENCODE", 6: "TRPC_THRIFT_ENCODE", + 7: "TRPC_THRIFT_COMPACT_ENCODE", + 8: "TRPC_TEXT_XML_ENCODE", } TrpcContentEncodeType_value = map[string]int32{ - "TRPC_PROTO_ENCODE": 0, - "TRPC_JCE_ENCODE": 1, - "TRPC_JSON_ENCODE": 2, - "TRPC_FLATBUFFER_ENCODE": 3, - "TRPC_NOOP_ENCODE": 4, - "TRPC_XML_ENCODE": 5, - "TRPC_THRIFT_ENCODE": 6, + "TRPC_PROTO_ENCODE": 0, + "TRPC_JCE_ENCODE": 1, + "TRPC_JSON_ENCODE": 2, + "TRPC_FLATBUFFER_ENCODE": 3, + "TRPC_NOOP_ENCODE": 4, + "TRPC_XML_ENCODE": 5, + "TRPC_THRIFT_ENCODE": 6, + "TRPC_THRIFT_COMPACT_ENCODE": 7, + "TRPC_TEXT_XML_ENCODE": 8, } ) @@ -1668,7 +1684,7 @@ var file_trpc_trpc_proto_rawDesc = []byte{ 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x52, 0x49, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x54, 0x4e, 0x41, 0x4d, - 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x2a, 0xb8, 0x01, 0x0a, 0x15, + 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x2a, 0xf2, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, @@ -1680,143 +1696,147 @@ var file_trpc_trpc_proto_rawDesc = []byte{ 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x46, 0x54, 0x5f, 0x45, 0x4e, - 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x2a, 0xf2, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, - 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, - 0x5a, 0x49, 0x50, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, - 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x43, 0x4f, - 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x5a, 0x4c, 0x49, 0x42, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, - 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, - 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, - 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, - 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4c, 0x5a, 0x34, 0x5f, 0x46, 0x52, - 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x06, 0x12, 0x1b, - 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x4c, 0x5a, 0x34, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x07, 0x2a, 0xa5, 0x0e, 0x0a, 0x0b, - 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, - 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, + 0x43, 0x4f, 0x44, 0x45, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, + 0x48, 0x52, 0x49, 0x46, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x43, 0x54, 0x5f, 0x45, 0x4e, + 0x43, 0x4f, 0x44, 0x45, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x54, + 0x45, 0x58, 0x54, 0x5f, 0x58, 0x4d, 0x4c, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x08, + 0x2a, 0xf2, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x70, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x44, 0x45, + 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, + 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x5a, 0x49, 0x50, 0x5f, 0x43, 0x4f, + 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, + 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x5a, 0x4c, 0x49, 0x42, 0x5f, + 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x4c, 0x5a, 0x34, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4f, + 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x4c, 0x5a, 0x34, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, + 0x45, 0x53, 0x53, 0x10, 0x07, 0x2a, 0xa5, 0x0e, 0x0a, 0x0b, 0x54, 0x72, 0x70, 0x63, 0x52, 0x65, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, + 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, + 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, + 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, + 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, + 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, + 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, + 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, + 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x53, 0x45, - 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x54, - 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x46, 0x55, 0x4e, - 0x43, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x16, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, - 0x52, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x17, 0x12, - 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, - 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0x18, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, - 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, - 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, - 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, - 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, - 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, - 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, - 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, - 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, - 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, - 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, - 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, - 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, - 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, - 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, - 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xa1, 0x01, 0x12, 0x1f, - 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, - 0x41, 0x44, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xab, 0x01, 0x12, - 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, - 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, - 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, - 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, - 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, - 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, - 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, - 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, + 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x33, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, + 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4c, 0x49, 0x4e, + 0x4b, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x66, 0x12, + 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x6f, 0x12, 0x1a, 0x0a, 0x16, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, + 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0x7a, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0x7b, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x7c, 0x12, + 0x1b, 0x0a, 0x16, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, + 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x83, 0x01, 0x12, 0x1c, 0x0a, 0x17, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x8d, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, + 0x50, 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, + 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x97, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, + 0x44, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xa1, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x46, 0x52, 0x41, + 0x4d, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xab, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, - 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, - 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, - 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, - 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc9, 0x01, 0x12, 0x2c, + 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, + 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, + 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xd3, 0x01, 0x12, 0x22, 0x0a, 0x1d, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xdd, 0x01, + 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xde, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, + 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, + 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0xe8, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, + 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe9, 0x01, 0x12, 0x29, 0x0a, 0x24, + 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xea, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, - 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, - 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, - 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfe, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, + 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xfb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, + 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, + 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfc, + 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, + 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xfd, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, - 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0xff, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, - 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xad, 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, - 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, - 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xb7, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, - 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, - 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, - 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, - 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, - 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, - 0x02, 0x12, 0x2a, 0x0a, 0x25, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, - 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, - 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, - 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, - 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, - 0x45, 0x52, 0x52, 0x10, 0xcd, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, - 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, - 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, - 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, - 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, - 0x10, 0xdf, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, - 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, + 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, + 0x10, 0xfe, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x54, + 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xff, 0x01, 0x12, 0x23, 0x0a, + 0x1e, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, + 0xad, 0x02, 0x12, 0x2c, 0x0a, 0x27, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x45, 0x58, 0x43, + 0x45, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xb7, 0x02, + 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x52, + 0x52, 0x10, 0xc1, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, + 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xc2, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x52, 0x50, 0x43, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, + 0x52, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xcb, 0x02, 0x12, 0x2a, 0x0a, 0x25, 0x54, + 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcc, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, + 0x49, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xcd, 0x02, + 0x12, 0x29, 0x0a, 0x24, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, + 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xce, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0xe1, 0x02, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, - 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x28, 0x0a, + 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xdf, 0x02, 0x12, 0x26, 0x0a, + 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x5f, 0x45, + 0x52, 0x52, 0x10, 0xe0, 0x02, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, + 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, + 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe1, 0x02, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, - 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, - 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe3, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, - 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, - 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, - 0x10, 0xe8, 0x07, 0x42, 0x61, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, - 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0c, 0x54, - 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x29, 0x67, 0x69, 0x74, - 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, - 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, - 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe2, 0x02, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x52, 0x50, 0x43, 0x5f, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x44, + 0x4c, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe3, + 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, + 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, + 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x60, 0x0a, + 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x28, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/go/trpc/v2/api/annotations.pb.go b/pb/go/trpc/v2/api/annotations.pb.go index 2e27b11..362fb3d 100644 --- a/pb/go/trpc/v2/api/annotations.pb.go +++ b/pb/go/trpc/v2/api/annotations.pb.go @@ -51,12 +51,12 @@ var file_trpc_v2_api_annotations_proto_rawDesc = []byte{ 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x85, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x68, 0x74, - 0x74, 0x70, 0x42, 0x51, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, + 0x74, 0x70, 0x42, 0x50, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x65, 0x78, 0x74, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, - 0x32, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x78, 0x74, 0x5a, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, + 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, + 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_trpc_v2_api_annotations_proto_goTypes = []interface{}{ diff --git a/pb/go/trpc/v2/api/http.pb.go b/pb/go/trpc/v2/api/http.pb.go index 1c1dc4f..5aeffc8 100644 --- a/pb/go/trpc/v2/api/http.pb.go +++ b/pb/go/trpc/v2/api/http.pb.go @@ -34,7 +34,6 @@ type HttpRule struct { // can be defined using the 'custom' field. // // Types that are assignable to Pattern: - // // *HttpRule_Get // *HttpRule_Put // *HttpRule_Post @@ -310,12 +309,12 @@ var file_trpc_v2_api_http_proto_rawDesc = []byte{ 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x42, 0x51, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, + 0x68, 0x42, 0x50, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, - 0x78, 0x74, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, - 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x78, 0x74, 0x5a, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, + 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/go/trpc/v2/go.mod b/pb/go/trpc/v2/go.mod index 4507fb6..0b1dcf2 100644 --- a/pb/go/trpc/v2/go.mod +++ b/pb/go/trpc/v2/go.mod @@ -2,4 +2,4 @@ module trpc.group/trpc/trpc-protocol/pb/go/trpc/v2 go 1.16 -require google.golang.org/protobuf v1.34.2 +require google.golang.org/protobuf v1.36.6 diff --git a/pb/go/trpc/v2/go.sum b/pb/go/trpc/v2/go.sum index c9d7f0d..6ec03ed 100644 --- a/pb/go/trpc/v2/go.sum +++ b/pb/go/trpc/v2/go.sum @@ -4,5 +4,5 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= diff --git a/pb/go/trpc/v2/proto/trpc_options.pb.go b/pb/go/trpc/v2/proto/trpc_options.pb.go index e77be78..8e45731 100644 --- a/pb/go/trpc/v2/proto/trpc_options.pb.go +++ b/pb/go/trpc/v2/proto/trpc_options.pb.go @@ -65,13 +65,13 @@ var file_trpc_v2_proto_trpc_options_proto_rawDesc = []byte{ 0x6c, 0x69, 0x61, 0x73, 0x3a, 0x35, 0x0a, 0x06, 0x67, 0x6f, 0x5f, 0x74, 0x61, 0x67, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x84, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x53, 0x0a, 0x1d, 0x63, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x6f, 0x54, 0x61, 0x67, 0x42, 0x52, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x32, 0x67, 0x69, - 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, - 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, - 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x31, 0x74, 0x72, + 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, + 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, + 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_trpc_v2_proto_trpc_options_proto_goTypes = []interface{}{ diff --git a/pb/go/trpc/v2/swagger/swagger.pb.go b/pb/go/trpc/v2/swagger/swagger.pb.go index 39060cd..593e29c 100644 --- a/pb/go/trpc/v2/swagger/swagger.pb.go +++ b/pb/go/trpc/v2/swagger/swagger.pb.go @@ -200,13 +200,13 @@ var file_trpc_v2_swagger_swagger_proto_rawDesc = []byte{ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x84, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x52, - 0x75, 0x6c, 0x65, 0x52, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x42, 0x55, 0x0a, 0x1d, + 0x75, 0x6c, 0x65, 0x52, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x42, 0x54, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x34, 0x67, - 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, - 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, - 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x77, 0x61, 0x67, - 0x67, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x33, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, + 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, + 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/go/trpc/v2/trpc.pb.go b/pb/go/trpc/v2/trpc.pb.go index a52d194..0559cf3 100644 --- a/pb/go/trpc/v2/trpc.pb.go +++ b/pb/go/trpc/v2/trpc.pb.go @@ -1757,14 +1757,14 @@ var file_trpc_v2_trpc_proto_rawDesc = []byte{ 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x4b, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe7, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x52, 0x50, 0x43, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x69, 0x0a, 0x26, 0x63, 0x6f, + 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x68, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0c, 0x54, 0x52, 0x50, 0x43, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, - 0x3b, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x6c, 0x5a, 0x30, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x3b, + 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/go/trpc/v2/validate/validate.pb.go b/pb/go/trpc/v2/validate/validate.pb.go index a2d23a9..8020e46 100644 --- a/pb/go/trpc/v2/validate/validate.pb.go +++ b/pb/go/trpc/v2/validate/validate.pb.go @@ -94,7 +94,6 @@ type FieldRules struct { Message *MessageRules `protobuf:"bytes,17,opt,name=message" json:"message,omitempty"` // Types that are assignable to Type: - // // *FieldRules_Float // *FieldRules_Double // *FieldRules_Int32 @@ -2001,7 +2000,6 @@ type StringRules struct { // patterns // // Types that are assignable to WellKnown: - // // *StringRules_Email // *StringRules_Hostname // *StringRules_Ip @@ -2433,7 +2431,6 @@ type BytesRules struct { // patterns // // Types that are assignable to WellKnown: - // // *BytesRules_Ip // *BytesRules_Ipv4 // *BytesRules_Ipv6 @@ -3739,12 +3736,12 @@ var file_trpc_v2_validate_validate_proto_rawDesc = []byte{ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x42, 0x56, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, + 0x73, 0x42, 0x55, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, - 0x78, 0x74, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, - 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x78, 0x74, 0x5a, 0x34, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, + 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x32, 0x2f, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, } var ( diff --git a/pb/go/trpc/validate/validate.pb.go b/pb/go/trpc/validate/validate.pb.go index 173d8d4..8fc90bf 100644 --- a/pb/go/trpc/validate/validate.pb.go +++ b/pb/go/trpc/validate/validate.pb.go @@ -94,7 +94,6 @@ type FieldRules struct { Message *MessageRules `protobuf:"bytes,17,opt,name=message" json:"message,omitempty"` // Types that are assignable to Type: - // // *FieldRules_Float // *FieldRules_Double // *FieldRules_Int32 @@ -2001,7 +2000,6 @@ type StringRules struct { // patterns // // Types that are assignable to WellKnown: - // // *StringRules_Email // *StringRules_Hostname // *StringRules_Ip @@ -2433,7 +2431,6 @@ type BytesRules struct { // patterns // // Types that are assignable to WellKnown: - // // *BytesRules_Ip // *BytesRules_Ipv4 // *BytesRules_Ipv6 @@ -3733,12 +3730,12 @@ var file_trpc_validate_validate_proto_rawDesc = []byte{ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xaf, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x53, 0x0a, 0x1d, 0x63, 0x6f, + 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x52, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x32, 0x67, 0x69, 0x74, - 0x2e, 0x77, 0x6f, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, - 0x70, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, - 0x6f, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x65, 0x78, 0x74, 0x5a, 0x31, 0x74, 0x72, 0x70, + 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x72, 0x70, + 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x6f, + 0x2f, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, } var ( From 8a626fa66e7318a56f40567b4ceeb2507ca4e8b7 Mon Sep 17 00:00:00 2001 From: homerpan Date: Tue, 15 Apr 2025 20:17:54 +0800 Subject: [PATCH 82/85] fix merge issue --- docs/protocol_design.md | 41 ---- pb/go/trpc/trpc.pb.go | 422 +++++++++++++++++----------------- testbuild.sh | 2 +- trpc/trpc.proto | 495 ++++++++++++++++++++-------------------- 4 files changed, 456 insertions(+), 504 deletions(-) delete mode 100644 docs/protocol_design.md diff --git a/docs/protocol_design.md b/docs/protocol_design.md deleted file mode 100644 index 8374225..0000000 --- a/docs/protocol_design.md +++ /dev/null @@ -1,41 +0,0 @@ -1.RPC - -RPC 是远端过程调用的简称,其协议通常包含传输协议和编码协议,如下图: - -![rpc](images/rpc.png)​​ - -其中传输协议指 RPC header 使用的协议,编码协议指 RPC payload 的协议。 - -2.新统一 RPC 协议设计上应具备的能力和诉求: - -| 能力 | 诉求 | -| ---------------------- | --------------------------------------------------------------------- | -| 向前兼容 | 协议设计和实现上应具有可扩展性 | -| 高性能 | 协议的方案选型和具体实现上需要考虑性能问题 | -| RPC调用方式 | 远程调用像调本地接口一样 | -| 请求超时控制 | 请求可以设置超时时间 | -| 插件化支持多种编码协议 | 协议上支持业务数据的序列化类型应该是多样的,比如:protobuf/jce/json/… | -| 支持压缩 | 协议上应该支持可选择对业务编码后的数据进行压缩 | -| 调用链信息的透传 | 协议上应该提供服务调用链信息透传的能力 | -| 染色key | 协议上应该提供染色key在服务间透传的能力 | -| 认证和鉴权 | 协议上应该提供用户设置自定义鉴权信息的能力 | -| 透传用户自定义元数据 | 协议上应该支持用户设置自定义元数据和透传的能力 | -| 流式请求 | 协议上应该能解决大数据包传输的问题,和满足边请求边应答的流式场景 | - -3.新统一 RPC 协议的具体设计 - -支持流式前的trpc协议设计: - -![image.png](/uploads/4C8A111DDAE541A98FC023E445F56794/image.png) - -支持流式后的trpc协议设计: - -![image.png](/uploads/CC1AC8AB1EBA49BEA7FC28843600AA10/image.png) - - -主要改动: -1. 固定帧头中的1字节数据协议状态,含义修改,变成流式帧类型 -2. 流式id从2字节变成4字节,保留字段由原来的4字节变成2字节 -3. 流式协议下固定帧头的包头大小设置为0 - -协议头的字段使用 pb v3 版本定义,参见:[trpc.proto](../trpc/proto/trpc.proto)。 diff --git a/pb/go/trpc/trpc.pb.go b/pb/go/trpc/trpc.pb.go index 67f84ce..9f7bd54 100644 --- a/pb/go/trpc/trpc.pb.go +++ b/pb/go/trpc/trpc.pb.go @@ -26,13 +26,13 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// 框架协议头里的魔数 +// The magic value of trpc protocol type TrpcMagic int32 const ( - // trpc不用这个值,为了提供给pb工具生成代码 + // trpc does not use this value, it is used by the pb gen-code tool TrpcMagic_TRPC_DEFAULT_NONE TrpcMagic = 0 - // trpc协议默认使用这个魔数 + // The magic value used by trpc protocol TrpcMagic_TRPC_MAGIC_VALUE TrpcMagic = 2352 ) @@ -75,16 +75,14 @@ func (TrpcMagic) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{0} } -// trpc协议的二进制数据帧类型 -// 目前支持两种类型的二进制数据帧: -// 1. 一应一答模式的二进制数据帧类型 -// 2. 流式模式的二进制数据帧类型 +// The data frame type of the trpc protocol packet +// Two types are currently supported: +// 1. The data frame type for unary(one-response-one-response) +// 2. The data frame type for stream type TrpcDataFrameType int32 const ( - // trpc一应一答模式的二进制数据帧类型 - TrpcDataFrameType_TRPC_UNARY_FRAME TrpcDataFrameType = 0 - // trpc流式模式的二进制数据帧类型 + TrpcDataFrameType_TRPC_UNARY_FRAME TrpcDataFrameType = 0 TrpcDataFrameType_TRPC_STREAM_FRAME TrpcDataFrameType = 1 ) @@ -127,26 +125,20 @@ func (TrpcDataFrameType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{1} } -// trpc协议流式的二进制数据帧类型 -// 目前流式帧类型分4种:INIT/DATA/FEEDBACK/CLOSE,其中CLOSE帧不带业务数据 -// INIT帧:FIXHEADER + TrpcStreamInitMeta -// DATA帧:FIXHEADER + body(业务序列化的数据) -// FEEDBACK帧:FIXHEADER + TrpcStreamFeedBackMeta(触发策略,高低水位+定时) -// CLOSE帧:FIXHEADER + TrpcStreamCloseMeta -// 连接和流空闲超时的回收机制不考虑 +// The specific frame type of trpc streaming data frame +// Four types are currently supported: +// `INIT` frame: FIXHEADER + TrpcStreamInitMeta +// `DATA` frame: FIXHEADER + body (business serialized data) +// `FEEDBACK` frame: FIXHEADER + TrpcStreamFeedBackMeta (triggered strategy: high/low water level and timer) +// `CLOSE` frame: FIXHEADER + TrpcStreamCloseMeta type TrpcStreamFrameType int32 const ( - // 一应一答的默认取值 - TrpcStreamFrameType_TRPC_UNARY TrpcStreamFrameType = 0 - // 流式INIT帧类型 - TrpcStreamFrameType_TRPC_STREAM_FRAME_INIT TrpcStreamFrameType = 1 - // 流式DATA帧类型 - TrpcStreamFrameType_TRPC_STREAM_FRAME_DATA TrpcStreamFrameType = 2 - // 流式FEEDBACK帧类型 + TrpcStreamFrameType_TRPC_UNARY TrpcStreamFrameType = 0 + TrpcStreamFrameType_TRPC_STREAM_FRAME_INIT TrpcStreamFrameType = 1 + TrpcStreamFrameType_TRPC_STREAM_FRAME_DATA TrpcStreamFrameType = 2 TrpcStreamFrameType_TRPC_STREAM_FRAME_FEEDBACK TrpcStreamFrameType = 3 - // 流式CLOSE帧类型 - TrpcStreamFrameType_TRPC_STREAM_FRAME_CLOSE TrpcStreamFrameType = 4 + TrpcStreamFrameType_TRPC_STREAM_FRAME_CLOSE TrpcStreamFrameType = 4 ) // Enum value maps for TrpcStreamFrameType. @@ -194,13 +186,13 @@ func (TrpcStreamFrameType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{2} } -// trpc流式关闭类型 +// The closed type of trpc stream protocol type TrpcStreamCloseType int32 const ( - // 正常单向流关闭 + // normal closes unidirectional flow TrpcStreamCloseType_TRPC_STREAM_CLOSE TrpcStreamCloseType = 0 - // 异常关闭双向流 + // Exception closes bidirectional stream TrpcStreamCloseType_TRPC_STREAM_RESET TrpcStreamCloseType = 1 ) @@ -243,11 +235,10 @@ func (TrpcStreamCloseType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{3} } -// trpc协议版本 +// The version of trpc protocol type TrpcProtoVersion int32 const ( - // 默认版本 TrpcProtoVersion_TRPC_PROTO_V1 TrpcProtoVersion = 0 ) @@ -288,13 +279,13 @@ func (TrpcProtoVersion) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{4} } -// trpc协议中的调用类型 +// The call type of trpc protocol type TrpcCallType int32 const ( - // 一应一答调用,包括同步、异步 + // Unary(one-response-one-response), include sync and async TrpcCallType_TRPC_UNARY_CALL TrpcCallType = 0 - // 单向调用 + // Oneway TrpcCallType_TRPC_ONEWAY_CALL TrpcCallType = 1 ) @@ -337,21 +328,21 @@ func (TrpcCallType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{5} } -// trpc协议中的消息透传支持的类型 +// The message type of the transparent transmission information type TrpcMessageType int32 const ( - // trpc 不用这个值,为了提供给 pb 工具生成代码 + // trpc does not use this value, it is used by the pb gen-code tool TrpcMessageType_TRPC_DEFAULT TrpcMessageType = 0 - // 染色 + // Dyeing message TrpcMessageType_TRPC_DYEING_MESSAGE TrpcMessageType = 1 - // 调用链 + // Tracing message TrpcMessageType_TRPC_TRACE_MESSAGE TrpcMessageType = 2 - // 多环境 + // Multi-Environment message TrpcMessageType_TRPC_MULTI_ENV_MESSAGE TrpcMessageType = 4 - // 灰度 + // grid message TrpcMessageType_TRPC_GRID_MESSAGE TrpcMessageType = 8 - // set名 + // SetNmae message TrpcMessageType_TRPC_SETNAME_MESSAGE TrpcMessageType = 16 ) @@ -402,9 +393,9 @@ func (TrpcMessageType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{6} } -// trpc协议中 data 内容的编码类型 -// 默认使用pb -// 目前约定 0-127 范围的取值为框架规范的序列化方式,框架使用 +// The encoding type of the body data in the trpc protocol +// Use proto by default +// At present, it is agreed that the value in the range of 0-127 is used by the framework type TrpcContentEncodeType int32 const ( @@ -416,13 +407,13 @@ const ( TrpcContentEncodeType_TRPC_JSON_ENCODE TrpcContentEncodeType = 2 // flatbuffer TrpcContentEncodeType_TRPC_FLATBUFFER_ENCODE TrpcContentEncodeType = 3 - // 不序列化 + // text or binary TrpcContentEncodeType_TRPC_NOOP_ENCODE TrpcContentEncodeType = 4 // xml TrpcContentEncodeType_TRPC_XML_ENCODE TrpcContentEncodeType = 5 // thrift - // 由于历史原因,早期实现的 thrift 使用的是二进制编码 - // 因此这里的 thrift 代表 thrift-binary + // Due to historical reasons, the early implementation of thrift used binary encoding + // so the thrift here represents thrift-binary." TrpcContentEncodeType_TRPC_THRIFT_ENCODE TrpcContentEncodeType = 6 // thrift-compact TrpcContentEncodeType_TRPC_THRIFT_COMPACT_ENCODE TrpcContentEncodeType = 7 @@ -483,29 +474,29 @@ func (TrpcContentEncodeType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{7} } -// trpc协议中 data 内容的压缩类型 -// 默认使用不压缩 +// The compressor type of the body data in the trpc protocol +// No compression by default type TrpcCompressType int32 const ( - // 默认不使用压缩 + // No compression TrpcCompressType_TRPC_DEFAULT_COMPRESS TrpcCompressType = 0 - // 使用gzip + // gzip TrpcCompressType_TRPC_GZIP_COMPRESS TrpcCompressType = 1 - // 使用snappy - // - // Deprecated: 建议使用 TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, 因为现在 - // trpc-go 和 trpc-cpp 分别的使用的是 stream、block 模式,二者不兼容,跨语言调用会出错 + // snappy(Deprecated) + // please use `TRPC_SNAPPY_STREAM_COMPRESS`/`TRPC_SNAPPY_BLOCK_COMPRESS`, + // Because trpc-go and trpc-cpp use stream and block modes respectively, + // the two are not compatible, and cross-language calls will make mistakes TrpcCompressType_TRPC_SNAPPY_COMPRESS TrpcCompressType = 2 - // 使用zlib + // zlib TrpcCompressType_TRPC_ZLIB_COMPRESS TrpcCompressType = 3 - // 使用 stream 模式的 snappy + // snappy stream TrpcCompressType_TRPC_SNAPPY_STREAM_COMPRESS TrpcCompressType = 4 - // 使用 block 模式的 snappy + // snappy block TrpcCompressType_TRPC_SNAPPY_BLOCK_COMPRESS TrpcCompressType = 5 - // 使用 frame 模式的 lz4 + // lz4 frame TrpcCompressType_TRPC_LZ4_FRAME_COMPRESS TrpcCompressType = 6 - // 使用 block 模式的 lz4 + // lz4 block TrpcCompressType_TRPC_LZ4_BLOCK_COMPRESS TrpcCompressType = 7 ) @@ -560,115 +551,107 @@ func (TrpcCompressType) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{8} } -// 框架层接口调用的返回码定义 +// The return code definition of the framework layer interface call type TrpcRetCode int32 const ( - // 调用成功 + // success TrpcRetCode_TRPC_INVOKE_SUCCESS TrpcRetCode = 0 - // 协议错误码 - // 服务端解码错误 + // server-side decode error TrpcRetCode_TRPC_SERVER_DECODE_ERR TrpcRetCode = 1 - // 服务端编码错误 + // server-side encode error TrpcRetCode_TRPC_SERVER_ENCODE_ERR TrpcRetCode = 2 - // service或者func路由错误码 - // 服务端没有调用相应的service实现 + // the server-side does not have a corresponding service implementation TrpcRetCode_TRPC_SERVER_NOSERVICE_ERR TrpcRetCode = 11 - // 服务端没有调用相应的接口实现 + // the server-side does not have a corresponding interface implementation TrpcRetCode_TRPC_SERVER_NOFUNC_ERR TrpcRetCode = 12 - // 超时/过载/限流错误码 - // 请求在服务端超时 + // the request timed out on the server-side TrpcRetCode_TRPC_SERVER_TIMEOUT_ERR TrpcRetCode = 21 - // 请求在服务端被过载保护而丢弃请求 - // 主要用在框架内部实现的过载保护插件上 + // the request is overloaded on the server-side and the request is discarded TrpcRetCode_TRPC_SERVER_OVERLOAD_ERR TrpcRetCode = 22 - // 请求在服务端被限流 - // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + // the request is throttled on the server-side TrpcRetCode_TRPC_SERVER_LIMITED_ERR TrpcRetCode = 23 - // 请求在服务端因全链路超时时间而超时 + // The request is timed out on the server-side due to the full link timeout TrpcRetCode_TRPC_SERVER_FULL_LINK_TIMEOUT_ERR TrpcRetCode = 24 - // 服务端系统错误 + // server-side system error TrpcRetCode_TRPC_SERVER_SYSTEM_ERR TrpcRetCode = 31 - // 服务端鉴权失败错误 + // the server-side request authentication failed error TrpcRetCode_TRPC_SERVER_AUTH_ERR TrpcRetCode = 41 - // 服务端请求参数自动校验失败错误 + // the server-side request parameter automatic verification failed error TrpcRetCode_TRPC_SERVER_VALIDATE_ERR TrpcRetCode = 51 - // 超时错误码 - // 请求在客户端调用超时 + // timeout error code + // the request is timed out on the client-side TrpcRetCode_TRPC_CLIENT_INVOKE_TIMEOUT_ERR TrpcRetCode = 101 - // 请求在客户端因全链路超时时间而超时 + // the request is timed out on the client-side due to the full link timeout TrpcRetCode_TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR TrpcRetCode = 102 - // 网络相关错误码 - // 客户端连接错误 + // network or connection error code + // client-side connection error TrpcRetCode_TRPC_CLIENT_CONNECT_ERR TrpcRetCode = 111 - // 协议相关错误码 - // 客户端编码错误 + // protocol error code + // client-side encode error TrpcRetCode_TRPC_CLIENT_ENCODE_ERR TrpcRetCode = 121 - // 客户端解码错误 + // client-side decode error TrpcRetCode_TRPC_CLIENT_DECODE_ERR TrpcRetCode = 122 - // 过载保护/限流相关错误码 - // 请求在客户端被限流 - // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + // client-side overload/limter error code + // the request is throttled on the client-side TrpcRetCode_TRPC_CLIENT_LIMITED_ERR TrpcRetCode = 123 - // 请求在客户端被过载保护而丢弃请求 - // 主要用在框架内部实现的过载保护插件上 + // The request is overloaded on the client-side and discarded TrpcRetCode_TRPC_CLIENT_OVERLOAD_ERR TrpcRetCode = 124 - // 路由相关错误码 - // 客户端选ip路由错误 + // service routing error code TrpcRetCode_TRPC_CLIENT_ROUTER_ERR TrpcRetCode = 131 - // 客户端网络错误 + // client-side network or connection error code TrpcRetCode_TRPC_CLIENT_NETWORK_ERR TrpcRetCode = 141 - // 客户端响应参数自动校验失败错误 + // client-side response parameter automatic verification failed error TrpcRetCode_TRPC_CLIENT_VALIDATE_ERR TrpcRetCode = 151 - // 上游主动断开连接,提前取消请求错误 + // upstream actively disconnected, early cancellation request error code TrpcRetCode_TRPC_CLIENT_CANCELED_ERR TrpcRetCode = 161 - // 客户端读取 Frame 错误 + // client-side read data frame error TrpcRetCode_TRPC_CLIENT_READ_FRAME_ERR TrpcRetCode = 171 - // 服务端流式网络错误, 详细错误码需要在实现过程中再梳理 + // server-side streaming network or connection error code TrpcRetCode_TRPC_STREAM_SERVER_NETWORK_ERR TrpcRetCode = 201 - // 服务端流式传输错误, 详细错误码需要在实现过程中再梳理 - // 比如:流消息过大等 + // server-side streaming error code + // stream message exceeds size limit TrpcRetCode_TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR TrpcRetCode = 211 - // 服务端流式编码错误 + // server-side streaming encode error code TrpcRetCode_TRPC_STREAM_SERVER_ENCODE_ERR TrpcRetCode = 221 - // 客户端流式编解码错误 + // server-side streaming decode error code TrpcRetCode_TRPC_STREAM_SERVER_DECODE_ERR TrpcRetCode = 222 - // 服务端流式写错误, 详细错误码需要在实现过程中再梳理 + // server-side stream write error code TrpcRetCode_TRPC_STREAM_SERVER_WRITE_END TrpcRetCode = 231 TrpcRetCode_TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR TrpcRetCode = 232 TrpcRetCode_TRPC_STREAM_SERVER_WRITE_CLOSE_ERR TrpcRetCode = 233 TrpcRetCode_TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR TrpcRetCode = 234 - // 服务端流式读错误, 详细错误码需要在实现过程中再梳理 + // server-side stream read error code TrpcRetCode_TRPC_STREAM_SERVER_READ_END TrpcRetCode = 251 TrpcRetCode_TRPC_STREAM_SERVER_READ_CLOSE_ERR TrpcRetCode = 252 TrpcRetCode_TRPC_STREAM_SERVER_READ_EMPTY_ERR TrpcRetCode = 253 TrpcRetCode_TRPC_STREAM_SERVER_READ_TIMEOUT_ERR TrpcRetCode = 254 - // 服务端流空闲超时错误 + // server-side streaming timeout error code TrpcRetCode_TRPC_STREAM_SERVER_IDLE_TIMEOUT_ERR TrpcRetCode = 255 - // 客户端流式网络错误, 详细错误码需要在实现过程中再梳理 + // client-side streaming network or connection error code TrpcRetCode_TRPC_STREAM_CLIENT_NETWORK_ERR TrpcRetCode = 301 - // 客户端流式传输错误, 详细错误码需要在实现过程中再梳理 - // 比如:流消息过大等 + // client-side streaming error code + // client-side stream message exceeds size limit TrpcRetCode_TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR TrpcRetCode = 311 - // 客户端流式编码错误 + // client-side streaming encode error code TrpcRetCode_TRPC_STREAM_CLIENT_ENCODE_ERR TrpcRetCode = 321 - // 客户端流式编解码错误 + // client-side streaming decode error code TrpcRetCode_TRPC_STREAM_CLIENT_DECODE_ERR TrpcRetCode = 322 - // 客户端流式写错误, 详细错误码需要在实现过程中再梳理 + // client-side stream write error code TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_END TrpcRetCode = 331 TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR TrpcRetCode = 332 TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR TrpcRetCode = 333 TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR TrpcRetCode = 334 - // 客户端流式读错误, 详细错误码需要在实现过程中再梳理 + // client-side stream read error code TrpcRetCode_TRPC_STREAM_CLIENT_READ_END TrpcRetCode = 351 TrpcRetCode_TRPC_STREAM_CLIENT_READ_CLOSE_ERR TrpcRetCode = 352 TrpcRetCode_TRPC_STREAM_CLIENT_READ_EMPTY_ERR TrpcRetCode = 353 TrpcRetCode_TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR TrpcRetCode = 354 - // 客户端流空闲超时错误 + // client streaming timeout error TrpcRetCode_TRPC_STREAM_CLIENT_IDLE_TIMEOUT_ERR TrpcRetCode = 355 - // 未明确的错误 + // unspecified error code(unary) TrpcRetCode_TRPC_INVOKE_UNKNOWN_ERR TrpcRetCode = 999 - // 未明确的错误 + // unspecified error code(stream) TrpcRetCode_TRPC_STREAM_UNKNOWN_ERR TrpcRetCode = 1000 ) @@ -811,25 +794,25 @@ func (TrpcRetCode) EnumDescriptor() ([]byte, []int) { return file_trpc_trpc_proto_rawDescGZIP(), []int{9} } -// trpc流式的流控帧头消息定义 +// The message definition of stream `INIT` frame type TrpcStreamInitMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // init请求元信息 + // request meta information RequestMeta *TrpcStreamInitRequestMeta `protobuf:"bytes,1,opt,name=request_meta,json=requestMeta,proto3" json:"request_meta,omitempty"` - // init响应元信息 + // response meta information ResponseMeta *TrpcStreamInitResponseMeta `protobuf:"bytes,2,opt,name=response_meta,json=responseMeta,proto3" json:"response_meta,omitempty"` - // 由接收端告知发送端初始的发送窗口大小 + // The window size is notified by the receiver to the sender InitWindowSize uint32 `protobuf:"varint,3,opt,name=init_window_size,json=initWindowSize,proto3" json:"init_window_size,omitempty"` - // 请求数据的序列化类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // The serialization type of the request data + // eg: proto/json/.., default proto + // The specific value corresponds to `TrpcContentEncodeType` ContentType uint32 `protobuf:"varint,4,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` - // 请求数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // The compression type of the requested data + // eg: gzip/snappy/..., not used by default + // The specific value corresponds to `TrpcCompressType` ContentEncoding uint32 `protobuf:"varint,5,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` } @@ -900,30 +883,32 @@ func (x *TrpcStreamInitMeta) GetContentEncoding() uint32 { return 0 } -// trpc流式init头的请求元信息 +// The request meta information definition of stream `INIT` frame type TrpcStreamInitRequestMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 主调服务的名称 - // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + // Caller name + // The specification format: trpc.application_name.server_name.proto_service_name, 4 segments Caller []byte `protobuf:"bytes,1,opt,name=caller,proto3" json:"caller,omitempty"` - // 被调服务的路由名称 - // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] - // 前4段是必须有,接口可选。 + // Callee name + // The specification format: trpc.application_name.server_name.proto_service_name[.interface_name] Callee []byte `protobuf:"bytes,2,opt,name=callee,proto3" json:"callee,omitempty"` - // 调用服务的接口名 - // 规范格式: /package.Service名称/接口名 + // Interface name of callee + // The specification format: /package.service_name/interface_name Func []byte `protobuf:"bytes,3,opt,name=func,proto3" json:"func,omitempty"` - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // The message type of the transparent transmission information + // such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // The specific value corresponds to `TrpcMessageType` MessageType uint32 `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 - // 注意: trans_info中的key-value对会全链路透传,业务请谨慎使用! + // The information key-value pair transparently transmitted by the framework + // Currently divided into two parts: + // 1 part is the information to be transparently transmitted by the framework layer, + // and the name of the key must be started with `trpc-`` + // 2 part is the information to be transparently transmitted by the business layer, + // and the business can set it by itself, it is recommended to start with `app-``, not `trpc-` + // Note: The key-value pair in trans_info will be transparently transmitted through the whole link, please use it carefully for business. TransInfo map[string][]byte `protobuf:"bytes,5,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } @@ -994,17 +979,16 @@ func (x *TrpcStreamInitRequestMeta) GetTransInfo() map[string][]byte { return nil } -// trpc流式init头的响应元信息 +// The response meta information definition of stream `INIT` frame type TrpcStreamInitResponseMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 请求在框架层的错误返回码 - // 具体值与TrpcRetCode对应 + // Error code + // The specific value corresponds to `TrpcRetCode` Ret int32 `protobuf:"varint,1,opt,name=ret,proto3" json:"ret,omitempty"` - // 调用结果信息描述 - // 失败的时候用 + // The result information when the call fails ErrorMsg []byte `protobuf:"bytes,2,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` } @@ -1054,13 +1038,13 @@ func (x *TrpcStreamInitResponseMeta) GetErrorMsg() []byte { return nil } -// trpc流式的流控帧头元信息定义 +// The meta information definition of stream `FEEDBACK` frame type TrpcStreamFeedBackMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 增加的窗口大小 + // increased window size WindowSizeIncrement uint32 `protobuf:"varint,1,opt,name=window_size_increment,json=windowSizeIncrement,proto3" json:"window_size_increment,omitempty"` } @@ -1103,29 +1087,33 @@ func (x *TrpcStreamFeedBackMeta) GetWindowSizeIncrement() uint32 { return 0 } -// trpc流式的RESET帧头消息定义 +// The meta information definition of trpc stream protocol for closing stream type TrpcStreamCloseMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 关闭的类型,关闭一端,还是全部关闭 + // The type of stream closure, close one end, or close all CloseType int32 `protobuf:"varint,1,opt,name=close_type,json=closeType,proto3" json:"close_type,omitempty"` - // close返回码 - // 代表框架层的错误 + // Error code + // The specific value corresponds to `TrpcRetCode` Ret int32 `protobuf:"varint,2,opt,name=ret,proto3" json:"ret,omitempty"` - // close信息描述 + // The result information when the call fails Msg []byte `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // The message type of the transparent transmission information + // such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // The specific value corresponds to `TrpcMessageType` MessageType uint32 `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 + // The information key-value pair transparently transmitted by the framework + // Currently divided into two parts: + // 1 part is the information to be transparently transmitted by the framework layer, + // and the name of the key must be started with `trpc-`` + // 2 part is the information to be transparently transmitted by the business layer, + // and the business can set it by itself, it is recommended to start with `app-``, not `trpc-` + // Note: The key-value pair in trans_info will be transparently transmitted through the whole link, please use it carefully for business. TransInfo map[string][]byte `protobuf:"bytes,5,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // 接口的错误返回码 - // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + // The error code of the interface + // 0 means success, other means failure FuncRet int32 `protobuf:"varint,6,opt,name=func_ret,json=funcRet,proto3" json:"func_ret,omitempty"` } @@ -1203,50 +1191,53 @@ func (x *TrpcStreamCloseMeta) GetFuncRet() int32 { return 0 } -// 请求协议头 +// The request header for unary type RequestProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 协议版本 - // 具体值与TrpcProtoVersion对应 + // The version of protocol + // The specific value corresponds to `TrpcProtoVersion` Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` - // 请求的调用类型 - // 比如: 普通调用,单向调用 - // 具体值与TrpcCallType对应 + // Call type + // eg: unary, one-way + // The specific value corresponds to `TrpcCallType` CallType uint32 `protobuf:"varint,2,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` - // 请求唯一id + // The unique id of the request(on the conneciton) RequestId uint32 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` - // 请求的超时时间,单位ms + // The timeout of the request(ms) Timeout uint32 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"` - // 主调服务的名称 - // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + // Caller name + // The specification format: trpc.application_name.server_name.proto_service_name, 4 segments Caller []byte `protobuf:"bytes,5,opt,name=caller,proto3" json:"caller,omitempty"` - // 被调服务的路由名称 - // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] - // 前4段是必须有,接口可选。 + // Callee name + // The specification format: trpc.application_name.server_name.proto_service_name[.interface_name] Callee []byte `protobuf:"bytes,6,opt,name=callee,proto3" json:"callee,omitempty"` - // 调用服务的接口名 - // 规范格式: /package.Service名称/接口名 + // Interface name of callee + // The specification format: /package.service_name/interface_name Func []byte `protobuf:"bytes,7,opt,name=func,proto3" json:"func,omitempty"` - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // The message type of the transparent transmission information + // such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // The specific value corresponds to `TrpcMessageType` MessageType uint32 `protobuf:"varint,8,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 + // The information key-value pair transparently transmitted by the framework + // Currently divided into two parts: + // 1 part is the information to be transparently transmitted by the framework layer, + // and the name of the key must be started with `trpc-`` + // 2 part is the information to be transparently transmitted by the business layer, + // and the business can set it by itself, it is recommended to start with `app-``, not `trpc-` + // Note: The key-value pair in trans_info will be transparently transmitted through the whole link, please use it carefully for business. TransInfo map[string][]byte `protobuf:"bytes,9,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // 请求数据的序列化类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // The serialization type of the request data + // eg: proto/json/.., default proto + // The specific value corresponds to `TrpcContentEncodeType` ContentType uint32 `protobuf:"varint,10,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` - // 请求数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // The compression type of the requested data + // eg: gzip/snappy/..., not used by default + // The specific value corresponds to `TrpcCompressType` ContentEncoding uint32 `protobuf:"varint,11,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` - // attachment大小 + // The size of attachment data AttachmentSize uint32 `protobuf:"varint,12,opt,name=attachment_size,json=attachmentSize,proto3" json:"attachment_size,omitempty"` } @@ -1366,48 +1357,49 @@ func (x *RequestProtocol) GetAttachmentSize() uint32 { return 0 } -// 响应协议头 +// The response header for unary type ResponseProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 协议版本 - // 具体值与TrpcProtoVersion对应 + // The version of protocol + // The specific value corresponds to `TrpcProtoVersion` Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` - // 请求的调用类型 - // 比如: 普通调用,单向调用 - // 具体值与TrpcCallType对应 + // Call type + // eg: unary, one-way + // The specific value corresponds to `TrpcCallType` CallType uint32 `protobuf:"varint,2,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` - // 请求唯一id + // The unique id of the request(on the conneciton) RequestId uint32 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` - // 请求在框架层的错误返回码 - // 具体值与TrpcRetCode对应 + // Error code + // The specific value corresponds to `TrpcRetCode` Ret int32 `protobuf:"varint,4,opt,name=ret,proto3" json:"ret,omitempty"` - // 接口的错误返回码 - // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + // The error code of the interface + // 0 means success, other means failure FuncRet int32 `protobuf:"varint,5,opt,name=func_ret,json=funcRet,proto3" json:"func_ret,omitempty"` - // 调用结果信息描述 - // 失败的时候用 + // The result information when the call fails ErrorMsg []byte `protobuf:"bytes,6,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // The message type of the transparent transmission information + // such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // The specific value corresponds to `TrpcMessageType` MessageType uint32 `protobuf:"varint,7,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // 框架透传回来的信息key-value对, - // 目前分两部分 - // 1是框架层透传回来的信息,key的名字要以trpc-开头 - // 2是业务层透传回来的信息,业务可以自行设置 + // The information key-value pair transparently transmitted by the framework + // Currently divided into two parts: + // 1 part is the information to be transparently transmitted by the framework layer, + // and the name of the key must be started with `trpc-`` + // 2 part is the information to be transparently transmitted by the business layer, + // and the business can set it by itself, it is recommended to start with `app-``, not `trpc-` TransInfo map[string][]byte `protobuf:"bytes,8,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // 响应数据的编码类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // The serialization type of the request data + // eg: proto/json/.., default proto + // The specific value corresponds to `TrpcContentEncodeType` ContentType uint32 `protobuf:"varint,9,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` - // 响应数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // The compression type of the requested data + // eg: gzip/snappy/..., not used by default + // The specific value corresponds to `TrpcCompressType` ContentEncoding uint32 `protobuf:"varint,10,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` - // attachment大小 + // The size of attachment data AttachmentSize uint32 `protobuf:"varint,12,opt,name=attachment_size,json=attachmentSize,proto3" json:"attachment_size,omitempty"` } diff --git a/testbuild.sh b/testbuild.sh index d29df64..73846c0 100644 --- a/testbuild.sh +++ b/testbuild.sh @@ -1,3 +1,3 @@ #!/bin/bash -bazel build ... +bazel build ... diff --git a/trpc/trpc.proto b/trpc/trpc.proto index 3383645..8519f88 100644 --- a/trpc/trpc.proto +++ b/trpc/trpc.proto @@ -12,214 +12,197 @@ option go_package = "trpc.group/trpc/trpc-protocol/pb/go/trpc"; option java_package = "com.tencent.trpc.proto.standard.common"; option java_outer_classname = "TRPCProtocol"; -// 框架协议头里的魔数 +// The magic value of trpc protocol enum TrpcMagic { - // trpc不用这个值,为了提供给pb工具生成代码 + // trpc does not use this value, it is used by the pb gen-code tool TRPC_DEFAULT_NONE = 0x00; - // trpc协议默认使用这个魔数 + // The magic value used by trpc protocol TRPC_MAGIC_VALUE = 0x930; } -// trpc协议的二进制数据帧类型 -// 目前支持两种类型的二进制数据帧: -// 1. 一应一答模式的二进制数据帧类型 -// 2. 流式模式的二进制数据帧类型 +// The data frame type of the trpc protocol packet +// Two types are currently supported: +// 1. The data frame type for unary(one-response-one-response) +// 2. The data frame type for stream enum TrpcDataFrameType { - // trpc一应一答模式的二进制数据帧类型 TRPC_UNARY_FRAME = 0x00; - // trpc流式模式的二进制数据帧类型 TRPC_STREAM_FRAME = 0x01; } -// 此类型删掉,改成下面的TrpcStreamFrameType -// trpc协议的二进制数据帧的状态 -// 目前支持流式模式的二进制数据帧结束状态 -//enum TrpcDataFrameState { -// // 不包括任何状态 -// TRPC_NO_STATE = 0x00; -// -// // trpc流式模式下的结束状态 -// TRPC_STREAM_FINISH = 0x01; -//} - -// trpc协议流式的二进制数据帧类型 -// 目前流式帧类型分4种:INIT/DATA/FEEDBACK/CLOSE,其中CLOSE帧不带业务数据 -// INIT帧:FIXHEADER + TrpcStreamInitMeta -// DATA帧:FIXHEADER + body(业务序列化的数据) -// FEEDBACK帧:FIXHEADER + TrpcStreamFeedBackMeta(触发策略,高低水位+定时) -// CLOSE帧:FIXHEADER + TrpcStreamCloseMeta -// 连接和流空闲超时的回收机制不考虑 +// The specific frame type of trpc streaming data frame +// Four types are currently supported: +// `INIT` frame: FIXHEADER + TrpcStreamInitMeta +// `DATA` frame: FIXHEADER + body (business serialized data) +// `FEEDBACK` frame: FIXHEADER + TrpcStreamFeedBackMeta (triggered strategy: high/low water level and timer) +// `CLOSE` frame: FIXHEADER + TrpcStreamCloseMeta enum TrpcStreamFrameType { - // 一应一答的默认取值 TRPC_UNARY = 0x00; - // 流式INIT帧类型 TRPC_STREAM_FRAME_INIT = 0x01; - // 流式DATA帧类型 TRPC_STREAM_FRAME_DATA = 0x02; - // 流式FEEDBACK帧类型 TRPC_STREAM_FRAME_FEEDBACK = 0x03; - // 流式CLOSE帧类型 TRPC_STREAM_FRAME_CLOSE = 0x04; } -// trpc流式的流控帧头消息定义 +// The message definition of stream `INIT` frame message TrpcStreamInitMeta { - // init请求元信息 + // request meta information TrpcStreamInitRequestMeta request_meta = 1; - // init响应元信息 + // response meta information TrpcStreamInitResponseMeta response_meta = 2; - // 由接收端告知发送端初始的发送窗口大小 + // The window size is notified by the receiver to the sender uint32 init_window_size = 3; - // 请求数据的序列化类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // The serialization type of the request data + // eg: proto/json/.., default proto + // The specific value corresponds to `TrpcContentEncodeType` uint32 content_type = 4; - // 请求数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // The compression type of the requested data + // eg: gzip/snappy/..., not used by default + // The specific value corresponds to `TrpcCompressType` uint32 content_encoding = 5; } -// trpc流式init头的请求元信息 +// The request meta information definition of stream `INIT` frame message TrpcStreamInitRequestMeta { - // 主调服务的名称 - // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + // Caller name + // The specification format: trpc.application_name.server_name.proto_service_name, 4 segments bytes caller = 1; - // 被调服务的路由名称 - // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] - // 前4段是必须有,接口可选。 + // Callee name + // The specification format: trpc.application_name.server_name.proto_service_name[.interface_name] bytes callee = 2; - // 调用服务的接口名 - // 规范格式: /package.Service名称/接口名 + // Interface name of callee + // The specification format: /package.service_name/interface_name bytes func = 3; - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // The message type of the transparent transmission information + // such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // The specific value corresponds to `TrpcMessageType` uint32 message_type = 4; - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 - // 注意: trans_info中的key-value对会全链路透传,业务请谨慎使用! + // The information key-value pair transparently transmitted by the framework + // Currently divided into two parts: + // 1 part is the information to be transparently transmitted by the framework layer, + // and the name of the key must be started with `trpc-`` + // 2 part is the information to be transparently transmitted by the business layer, + // and the business can set it by itself, it is recommended to start with `app-``, not `trpc-` + // Note: The key-value pair in trans_info will be transparently transmitted through the whole link, please use it carefully for business. map trans_info = 5; }; -// trpc流式init头的响应元信息 +// The response meta information definition of stream `INIT` frame message TrpcStreamInitResponseMeta { - // 请求在框架层的错误返回码 - // 具体值与TrpcRetCode对应 + // Error code + // The specific value corresponds to `TrpcRetCode` int32 ret = 1; - // 调用结果信息描述 - // 失败的时候用 + // The result information when the call fails bytes error_msg = 2; }; -// trpc流式的流控帧头元信息定义 +// The meta information definition of stream `FEEDBACK` frame message TrpcStreamFeedBackMeta { - // 增加的窗口大小 + // increased window size uint32 window_size_increment = 1; } -// trpc流式关闭类型 +// The closed type of trpc stream protocol enum TrpcStreamCloseType { - // 正常单向流关闭 + // normal closes unidirectional flow TRPC_STREAM_CLOSE = 0; - // 异常关闭双向流 + // Exception closes bidirectional stream TRPC_STREAM_RESET = 1; } -// trpc流式的RESET帧头消息定义 +// The meta information definition of trpc stream protocol for closing stream message TrpcStreamCloseMeta { - // 关闭的类型,关闭一端,还是全部关闭 + // The type of stream closure, close one end, or close all int32 close_type = 1; - // close返回码 - // 代表框架层的错误 + // Error code + // The specific value corresponds to `TrpcRetCode` int32 ret = 2; - // close信息描述 + // The result information when the call fails bytes msg = 3; - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // The message type of the transparent transmission information + // such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // The specific value corresponds to `TrpcMessageType` uint32 message_type = 4; - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 + // The information key-value pair transparently transmitted by the framework + // Currently divided into two parts: + // 1 part is the information to be transparently transmitted by the framework layer, + // and the name of the key must be started with `trpc-`` + // 2 part is the information to be transparently transmitted by the business layer, + // and the business can set it by itself, it is recommended to start with `app-``, not `trpc-` + // Note: The key-value pair in trans_info will be transparently transmitted through the whole link, please use it carefully for business. map trans_info = 5; - // 接口的错误返回码 - // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + // The error code of the interface + // 0 means success, other means failure int32 func_ret = 6; - } -// trpc协议版本 +// The version of trpc protocol enum TrpcProtoVersion { - // 默认版本 TRPC_PROTO_V1 = 0; } -// trpc协议中的调用类型 +// The call type of trpc protocol enum TrpcCallType { - // 一应一答调用,包括同步、异步 + // Unary(one-response-one-response), include sync and async TRPC_UNARY_CALL = 0; - // 单向调用 + // Oneway TRPC_ONEWAY_CALL = 1; - // 客户端流式请求调用, 删除 + // client stream service, deleted //TRPC_CLIENT_STREAM_CALL = 2; - // 服务端流式回应,删除 + // server stream service, deleted //TRPC_SERVER_STREAM_CALL = 3; - // 客户端和服务端流式请求和回应,删除 + // client and server stream service, deleted //TRPC_BIDI_STREAM_CALL = 4; } -// trpc协议中的消息透传支持的类型 +// The message type of the transparent transmission information enum TrpcMessageType { - - // trpc 不用这个值,为了提供给 pb 工具生成代码 + // trpc does not use this value, it is used by the pb gen-code tool TRPC_DEFAULT = 0x00; - // 染色 + // Dyeing message TRPC_DYEING_MESSAGE = 0x01; - // 调用链 + // Tracing message TRPC_TRACE_MESSAGE = 0x02; - // 多环境 + // Multi-Environment message TRPC_MULTI_ENV_MESSAGE = 0x04; - // 灰度 + // grid message TRPC_GRID_MESSAGE = 0x08; - // set名 + // SetNmae message TRPC_SETNAME_MESSAGE = 0x10; } -// trpc协议中 data 内容的编码类型 -// 默认使用pb -// 目前约定 0-127 范围的取值为框架规范的序列化方式,框架使用 +// The encoding type of the body data in the trpc protocol +// Use proto by default +// At present, it is agreed that the value in the range of 0-127 is used by the framework enum TrpcContentEncodeType { // pb TRPC_PROTO_ENCODE = 0; @@ -229,321 +212,339 @@ enum TrpcContentEncodeType { // json TRPC_JSON_ENCODE = 2; - + // flatbuffer TRPC_FLATBUFFER_ENCODE = 3; - // 不序列化 + // text or binary TRPC_NOOP_ENCODE = 4; // xml TRPC_XML_ENCODE = 5; // thrift - // 由于历史原因,早期实现的 thrift 使用的是二进制编码 - // 因此这里的 thrift 代表 thrift-binary + // Due to historical reasons, the early implementation of thrift used binary encoding + // so the thrift here represents thrift-binary." TRPC_THRIFT_ENCODE = 6; - // thrift-compact + // thrift-compact TRPC_THRIFT_COMPACT_ENCODE = 7; // text/xml TRPC_TEXT_XML_ENCODE = 8; } -// trpc协议中 data 内容的压缩类型 -// 默认使用不压缩 +// The compressor type of the body data in the trpc protocol +// No compression by default enum TrpcCompressType { - // 默认不使用压缩 + // No compression TRPC_DEFAULT_COMPRESS = 0; - // 使用gzip + // gzip TRPC_GZIP_COMPRESS = 1; - // 使用snappy - // - // Deprecated: 建议使用 TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, 因为现在 - // trpc-go 和 trpc-cpp 分别的使用的是 stream、block 模式,二者不兼容,跨语言调用会出错 + // snappy(Deprecated) + // please use `TRPC_SNAPPY_STREAM_COMPRESS`/`TRPC_SNAPPY_BLOCK_COMPRESS`, + // Because trpc-go and trpc-cpp use stream and block modes respectively, + // the two are not compatible, and cross-language calls will make mistakes TRPC_SNAPPY_COMPRESS = 2; - // 使用zlib + // zlib TRPC_ZLIB_COMPRESS = 3; - // 使用 stream 模式的 snappy + // snappy stream TRPC_SNAPPY_STREAM_COMPRESS = 4; - // 使用 block 模式的 snappy + // snappy block TRPC_SNAPPY_BLOCK_COMPRESS = 5; - // 使用 frame 模式的 lz4 + // lz4 frame TRPC_LZ4_FRAME_COMPRESS = 6; - // 使用 block 模式的 lz4 + // lz4 block TRPC_LZ4_BLOCK_COMPRESS = 7; } -// 框架层接口调用的返回码定义 +// The return code definition of the framework layer interface call enum TrpcRetCode { - // 调用成功 + // success TRPC_INVOKE_SUCCESS = 0; - // 服务端的错误码 - // 主要分几类: - // 1.协议,2.service或者func路由,3.队列超时或过载 - // 其它待补充 + // server-side error code + // Mainly divided into several categories: + // 1. protocol related, + // 2. interface call related, + // 3. queue timeout or overload related + // 4. ... - // 协议错误码 - // 服务端解码错误 + // server-side protocol error code + + // server-side decode error TRPC_SERVER_DECODE_ERR = 1; - // 服务端编码错误 + // server-side encode error TRPC_SERVER_ENCODE_ERR = 2; - // service或者func路由错误码 - // 服务端没有调用相应的service实现 + // interface call error code + + // the server-side does not have a corresponding service implementation TRPC_SERVER_NOSERVICE_ERR = 11; - // 服务端没有调用相应的接口实现 + // the server-side does not have a corresponding interface implementation TRPC_SERVER_NOFUNC_ERR = 12; - // 超时/过载/限流错误码 - // 请求在服务端超时 + // timeout/overload/limiter error code + + // the request timed out on the server-side TRPC_SERVER_TIMEOUT_ERR = 21; - // 请求在服务端被过载保护而丢弃请求 - // 主要用在框架内部实现的过载保护插件上 + // the request is overloaded on the server-side and the request is discarded TRPC_SERVER_OVERLOAD_ERR = 22; - // 请求在服务端被限流 - // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + // the request is throttled on the server-side TRPC_SERVER_LIMITED_ERR = 23; - // 请求在服务端因全链路超时时间而超时 + // The request is timed out on the server-side due to the full link timeout TRPC_SERVER_FULL_LINK_TIMEOUT_ERR = 24; - // 服务端系统错误 + // server-side system error TRPC_SERVER_SYSTEM_ERR = 31; - // 服务端鉴权失败错误 + // the server-side request authentication failed error TRPC_SERVER_AUTH_ERR = 41; - // 服务端请求参数自动校验失败错误 + // the server-side request parameter automatic verification failed error TRPC_SERVER_VALIDATE_ERR = 51; - // 客户端的错误码 - // 主要分几类: - // 1.超时,2.网络,3.协议,4.路由 - // 其它待补充 + // client-side error code + // Mainly divided into several categories: + // 1. timeout related, + // 2. network or connection related, + // 3. protocol related, + // 4. routing related + // 5. ... - // 超时错误码 - // 请求在客户端调用超时 + // timeout error code + // the request is timed out on the client-side TRPC_CLIENT_INVOKE_TIMEOUT_ERR = 101; - // 请求在客户端因全链路超时时间而超时 + // the request is timed out on the client-side due to the full link timeout TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR = 102; - // 网络相关错误码 - // 客户端连接错误 + // network or connection error code + // client-side connection error TRPC_CLIENT_CONNECT_ERR = 111; - // 协议相关错误码 - // 客户端编码错误 + // protocol error code + // client-side encode error TRPC_CLIENT_ENCODE_ERR = 121; - // 客户端解码错误 + + // client-side decode error TRPC_CLIENT_DECODE_ERR = 122; - // 过载保护/限流相关错误码 - // 请求在客户端被限流 - // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + // client-side overload/limter error code + // the request is throttled on the client-side TRPC_CLIENT_LIMITED_ERR = 123; - // 请求在客户端被过载保护而丢弃请求 - // 主要用在框架内部实现的过载保护插件上 + + // The request is overloaded on the client-side and discarded TRPC_CLIENT_OVERLOAD_ERR = 124; - // 路由相关错误码 - // 客户端选ip路由错误 + // service routing error code TRPC_CLIENT_ROUTER_ERR = 131; - // 客户端网络错误 + // client-side network or connection error code TRPC_CLIENT_NETWORK_ERR = 141; - // 客户端响应参数自动校验失败错误 + // client-side response parameter automatic verification failed error TRPC_CLIENT_VALIDATE_ERR = 151; - // 上游主动断开连接,提前取消请求错误 + // upstream actively disconnected, early cancellation request error code TRPC_CLIENT_CANCELED_ERR = 161; - // 客户端读取 Frame 错误 + // client-side read data frame error TRPC_CLIENT_READ_FRAME_ERR = 171; - // 服务端流式的错误码 - // 主要分几类: - // 1.网络,2.编解码,3.写,4.读 - // 其它待补充 + // error code of the server-side stream + // mainly divided into several categories: + // 1. network or connection related, + // 2. protocol related, + // 3. write stream data related, + // 4. read stream data related, + // 5. ... - // 服务端流式网络错误, 详细错误码需要在实现过程中再梳理 + // server-side streaming network or connection error code TRPC_STREAM_SERVER_NETWORK_ERR = 201; - // 服务端流式传输错误, 详细错误码需要在实现过程中再梳理 - // 比如:流消息过大等 + // server-side streaming error code + // stream message exceeds size limit TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR = 211; - // 服务端流式编码错误 + // server-side streaming encode error code TRPC_STREAM_SERVER_ENCODE_ERR = 221; - // 客户端流式编解码错误 + + // server-side streaming decode error code TRPC_STREAM_SERVER_DECODE_ERR = 222; - // 服务端流式写错误, 详细错误码需要在实现过程中再梳理 + // server-side stream write error code TRPC_STREAM_SERVER_WRITE_END = 231; TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR = 232; TRPC_STREAM_SERVER_WRITE_CLOSE_ERR = 233; TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR = 234; - // 服务端流式读错误, 详细错误码需要在实现过程中再梳理 + // server-side stream read error code TRPC_STREAM_SERVER_READ_END = 251; TRPC_STREAM_SERVER_READ_CLOSE_ERR = 252; TRPC_STREAM_SERVER_READ_EMPTY_ERR = 253; TRPC_STREAM_SERVER_READ_TIMEOUT_ERR = 254; - // 服务端流空闲超时错误 + // server-side streaming timeout error code TRPC_STREAM_SERVER_IDLE_TIMEOUT_ERR = 255; - // 客户端流式的错误码 - // 主要分几类: - // 1.网络,2.编解码,3.写,4.读 - // 其它待补充 - - // 客户端流式网络错误, 详细错误码需要在实现过程中再梳理 + // error code of the client-side stream + // mainly divided into several categories: + // 1. network or connection related, + // 2. protocol related, + // 3. write stream data related, + // 4. read stream data related, + // 5. ... + + // client-side streaming network or connection error code TRPC_STREAM_CLIENT_NETWORK_ERR = 301; - // 客户端流式传输错误, 详细错误码需要在实现过程中再梳理 - // 比如:流消息过大等 + // client-side streaming error code + // client-side stream message exceeds size limit TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR = 311; - // 客户端流式编码错误 + // client-side streaming encode error code TRPC_STREAM_CLIENT_ENCODE_ERR = 321; - // 客户端流式编解码错误 + + // client-side streaming decode error code TRPC_STREAM_CLIENT_DECODE_ERR = 322; - // 客户端流式写错误, 详细错误码需要在实现过程中再梳理 + // client-side stream write error code TRPC_STREAM_CLIENT_WRITE_END = 331; TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR = 332; TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR = 333; TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR = 334; - // 客户端流式读错误, 详细错误码需要在实现过程中再梳理 + // client-side stream read error code TRPC_STREAM_CLIENT_READ_END = 351; TRPC_STREAM_CLIENT_READ_CLOSE_ERR = 352; TRPC_STREAM_CLIENT_READ_EMPTY_ERR = 353; TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR = 354; - // 客户端流空闲超时错误 + // client streaming timeout error TRPC_STREAM_CLIENT_IDLE_TIMEOUT_ERR = 355; - // 未明确的错误 + // unspecified error code(unary) TRPC_INVOKE_UNKNOWN_ERR = 999; - // 未明确的错误 + + // unspecified error code(stream) TRPC_STREAM_UNKNOWN_ERR = 1000; } -// trans_info已使用的框架key,注意不要重复: -// "trpc-dyeing-key":染色key +// The following key already used by trans_info, be careful not to repeat it: +// "trpc-dyeing-key": dyeing key -// 请求协议头 +// The request header for unary message RequestProtocol { - // 协议版本 - // 具体值与TrpcProtoVersion对应 + // The version of protocol + // The specific value corresponds to `TrpcProtoVersion` uint32 version = 1; - // 请求的调用类型 - // 比如: 普通调用,单向调用 - // 具体值与TrpcCallType对应 + // Call type + // eg: unary, one-way + // The specific value corresponds to `TrpcCallType` uint32 call_type = 2; - // 请求唯一id + // The unique id of the request(on the conneciton) uint32 request_id = 3; - // 请求的超时时间,单位ms + // The timeout of the request(ms) uint32 timeout = 4; - // 主调服务的名称 - // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + // Caller name + // The specification format: trpc.application_name.server_name.proto_service_name, 4 segments bytes caller = 5; - // 被调服务的路由名称 - // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] - // 前4段是必须有,接口可选。 + // Callee name + // The specification format: trpc.application_name.server_name.proto_service_name[.interface_name] bytes callee = 6; - // 调用服务的接口名 - // 规范格式: /package.Service名称/接口名 + // Interface name of callee + // The specification format: /package.service_name/interface_name bytes func = 7; - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // The message type of the transparent transmission information + // such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // The specific value corresponds to `TrpcMessageType` uint32 message_type = 8; - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 + // The information key-value pair transparently transmitted by the framework + // Currently divided into two parts: + // 1 part is the information to be transparently transmitted by the framework layer, + // and the name of the key must be started with `trpc-`` + // 2 part is the information to be transparently transmitted by the business layer, + // and the business can set it by itself, it is recommended to start with `app-``, not `trpc-` + // Note: The key-value pair in trans_info will be transparently transmitted through the whole link, please use it carefully for business. map trans_info = 9; - // 请求数据的序列化类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // The serialization type of the request data + // eg: proto/json/.., default proto + // The specific value corresponds to `TrpcContentEncodeType` uint32 content_type = 10; - // 请求数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // The compression type of the requested data + // eg: gzip/snappy/..., not used by default + // The specific value corresponds to `TrpcCompressType` uint32 content_encoding = 11; - // attachment大小 + // The size of attachment data uint32 attachment_size = 12; } -// 响应协议头 +// The response header for unary message ResponseProtocol { - // 协议版本 - // 具体值与TrpcProtoVersion对应 + // The version of protocol + // The specific value corresponds to `TrpcProtoVersion` uint32 version = 1; - // 请求的调用类型 - // 比如: 普通调用,单向调用 - // 具体值与TrpcCallType对应 + // Call type + // eg: unary, one-way + // The specific value corresponds to `TrpcCallType` uint32 call_type = 2; - // 请求唯一id + // The unique id of the request(on the conneciton) uint32 request_id = 3; - // 请求在框架层的错误返回码 - // 具体值与TrpcRetCode对应 + // Error code + // The specific value corresponds to `TrpcRetCode` int32 ret = 4; - // 接口的错误返回码 - // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + // The error code of the interface + // 0 means success, other means failure int32 func_ret = 5; - // 调用结果信息描述 - // 失败的时候用 + // The result information when the call fails bytes error_msg = 6; - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // The message type of the transparent transmission information + // such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // The specific value corresponds to `TrpcMessageType` uint32 message_type = 7; - // 框架透传回来的信息key-value对, - // 目前分两部分 - // 1是框架层透传回来的信息,key的名字要以trpc-开头 - // 2是业务层透传回来的信息,业务可以自行设置 + // The information key-value pair transparently transmitted by the framework + // Currently divided into two parts: + // 1 part is the information to be transparently transmitted by the framework layer, + // and the name of the key must be started with `trpc-`` + // 2 part is the information to be transparently transmitted by the business layer, + // and the business can set it by itself, it is recommended to start with `app-``, not `trpc-` map trans_info = 8; - // 响应数据的编码类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // The serialization type of the request data + // eg: proto/json/.., default proto + // The specific value corresponds to `TrpcContentEncodeType` uint32 content_type = 9; - // 响应数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // The compression type of the requested data + // eg: gzip/snappy/..., not used by default + // The specific value corresponds to `TrpcCompressType` uint32 content_encoding = 10; - // attachment大小 + // The size of attachment data uint32 attachment_size = 12; } From 0092971cb6bd6d08f302dc0df5b60d0308d72fa5 Mon Sep 17 00:00:00 2001 From: homerpan Date: Tue, 15 Apr 2025 20:24:26 +0800 Subject: [PATCH 83/85] fix merge issue --- pb/go/trpc/api/openapiv2.pb.go | 6 ++++++ pb/go/trpc/v2/api/annotations.pb.go | 6 ++++++ pb/go/trpc/v2/api/http.pb.go | 6 ++++++ pb/go/trpc/v2/proto/trpc_options.pb.go | 6 ++++++ pb/go/trpc/v2/swagger/swagger.pb.go | 6 ++++++ pb/go/trpc/v2/trpc.pb.go | 6 ++++++ pb/go/trpc/v2/validate/validate.pb.go | 6 ++++++ pb/go/trpc/validate/validate.pb.go | 6 ++++++ trpc/api/openapiv2.proto | 6 ++++++ trpc/reflection/reflection.proto | 6 ++++++ trpc/v2/api/annotations.proto | 6 ++++++ trpc/v2/api/http.proto | 6 ++++++ trpc/v2/proto/trpc_options.proto | 6 ++++++ trpc/v2/swagger/swagger.proto | 6 ++++++ trpc/v2/trpc.proto | 6 ++++++ trpc/v2/validate/validate.proto | 6 ++++++ trpc/validate/validate.proto | 6 ++++++ 17 files changed, 102 insertions(+) diff --git a/pb/go/trpc/api/openapiv2.pb.go b/pb/go/trpc/api/openapiv2.pb.go index 2a03509..f7d9b98 100644 --- a/pb/go/trpc/api/openapiv2.pb.go +++ b/pb/go/trpc/api/openapiv2.pb.go @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 diff --git a/pb/go/trpc/v2/api/annotations.pb.go b/pb/go/trpc/v2/api/annotations.pb.go index 362fb3d..d934201 100644 --- a/pb/go/trpc/v2/api/annotations.pb.go +++ b/pb/go/trpc/v2/api/annotations.pb.go @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 diff --git a/pb/go/trpc/v2/api/http.pb.go b/pb/go/trpc/v2/api/http.pb.go index 5aeffc8..691fc4b 100644 --- a/pb/go/trpc/v2/api/http.pb.go +++ b/pb/go/trpc/v2/api/http.pb.go @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 diff --git a/pb/go/trpc/v2/proto/trpc_options.pb.go b/pb/go/trpc/v2/proto/trpc_options.pb.go index 8e45731..ca14472 100644 --- a/pb/go/trpc/v2/proto/trpc_options.pb.go +++ b/pb/go/trpc/v2/proto/trpc_options.pb.go @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 diff --git a/pb/go/trpc/v2/swagger/swagger.pb.go b/pb/go/trpc/v2/swagger/swagger.pb.go index 593e29c..5990a11 100644 --- a/pb/go/trpc/v2/swagger/swagger.pb.go +++ b/pb/go/trpc/v2/swagger/swagger.pb.go @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 diff --git a/pb/go/trpc/v2/trpc.pb.go b/pb/go/trpc/v2/trpc.pb.go index 0559cf3..b96094f 100644 --- a/pb/go/trpc/v2/trpc.pb.go +++ b/pb/go/trpc/v2/trpc.pb.go @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 diff --git a/pb/go/trpc/v2/validate/validate.pb.go b/pb/go/trpc/v2/validate/validate.pb.go index 8020e46..bf15edd 100644 --- a/pb/go/trpc/v2/validate/validate.pb.go +++ b/pb/go/trpc/v2/validate/validate.pb.go @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 diff --git a/pb/go/trpc/validate/validate.pb.go b/pb/go/trpc/validate/validate.pb.go index 8fc90bf..97ee5ec 100644 --- a/pb/go/trpc/validate/validate.pb.go +++ b/pb/go/trpc/validate/validate.pb.go @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 diff --git a/trpc/api/openapiv2.proto b/trpc/api/openapiv2.proto index ad31c11..6be443a 100644 --- a/trpc/api/openapiv2.proto +++ b/trpc/api/openapiv2.proto @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + syntax = "proto3"; package trpc.api; diff --git a/trpc/reflection/reflection.proto b/trpc/reflection/reflection.proto index 29f62ff..671f8d3 100644 --- a/trpc/reflection/reflection.proto +++ b/trpc/reflection/reflection.proto @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + syntax = "proto3"; package trpc.reflection.v1; diff --git a/trpc/v2/api/annotations.proto b/trpc/v2/api/annotations.proto index 4720f1d..10b5aa7 100644 --- a/trpc/v2/api/annotations.proto +++ b/trpc/v2/api/annotations.proto @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + syntax = "proto3"; package trpc.v2.api; diff --git a/trpc/v2/api/http.proto b/trpc/v2/api/http.proto index 701da29..8922592 100644 --- a/trpc/v2/api/http.proto +++ b/trpc/v2/api/http.proto @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + syntax = "proto3"; package trpc.v2.api; diff --git a/trpc/v2/proto/trpc_options.proto b/trpc/v2/proto/trpc_options.proto index 77e318e..6e2a365 100644 --- a/trpc/v2/proto/trpc_options.proto +++ b/trpc/v2/proto/trpc_options.proto @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + syntax = "proto3"; import "google/protobuf/descriptor.proto"; diff --git a/trpc/v2/swagger/swagger.proto b/trpc/v2/swagger/swagger.proto index ba14f36..b9b05ee 100644 --- a/trpc/v2/swagger/swagger.proto +++ b/trpc/v2/swagger/swagger.proto @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + syntax = "proto3"; import "google/protobuf/descriptor.proto"; package trpc.v2; diff --git a/trpc/v2/trpc.proto b/trpc/v2/trpc.proto index c43dbaf..48371be 100644 --- a/trpc/v2/trpc.proto +++ b/trpc/v2/trpc.proto @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + syntax = "proto3"; package trpc.v2; diff --git a/trpc/v2/validate/validate.proto b/trpc/v2/validate/validate.proto index 93d74c8..a0701b5 100644 --- a/trpc/v2/validate/validate.proto +++ b/trpc/v2/validate/validate.proto @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + syntax = "proto2"; package trpc.v2.validate; diff --git a/trpc/validate/validate.proto b/trpc/validate/validate.proto index 5b91472..1949894 100644 --- a/trpc/validate/validate.proto +++ b/trpc/validate/validate.proto @@ -1,3 +1,9 @@ +// Tencent is pleased to support the open source community by making tRPC available. +// Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved. +// If you have downloaded a copy of the tRPC source code from Tencent, +// please note that tRPC source code is licensed under the Apache 2.0 License, +// A copy of the Apache 2.0 License is included in this file. + syntax = "proto2"; package trpc.validate; From 535f67aec5dee18d286c449efd2d8bc83de1be87 Mon Sep 17 00:00:00 2001 From: homerpan Date: Tue, 15 Apr 2025 20:31:01 +0800 Subject: [PATCH 84/85] fix merge issue --- pb/go/trpc/v2/trpc.pb.go | 400 ++++++++++++++--------------- trpc/v2/trpc.proto | 542 +++++++++++++++++++-------------------- 2 files changed, 470 insertions(+), 472 deletions(-) diff --git a/pb/go/trpc/v2/trpc.pb.go b/pb/go/trpc/v2/trpc.pb.go index b96094f..68b20b3 100644 --- a/pb/go/trpc/v2/trpc.pb.go +++ b/pb/go/trpc/v2/trpc.pb.go @@ -26,13 +26,13 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// 框架协议头里的魔数 +// The magic value in the framework protocol header type TrpcMagic int32 const ( - // trpc不用这个值,为了提供给pb工具生成代码 + // trpc does not use this value, it is used by the pb tool to generate code TrpcMagic_TRPC_DEFAULT_NONE TrpcMagic = 0 - // trpc协议默认使用这个魔数 + // trpc protocol uses this magic value by default TrpcMagic_TRPC_MAGIC_VALUE TrpcMagic = 2352 ) @@ -75,16 +75,16 @@ func (TrpcMagic) EnumDescriptor() ([]byte, []int) { return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{0} } -// trpc协议的二进制数据帧类型 -// 目前支持两种类型的二进制数据帧: -// 1. 一应一答模式的二进制数据帧类型 -// 2. 流式模式的二进制数据帧类型 +// The binary data frame type of the trpc protocol +// Currently supports two types of binary data frames: +// 1. Binary data frame type for request-response mode +// 2. Binary data frame type for streaming mode type TrpcDataFrameType int32 const ( - // trpc一应一答模式的二进制数据帧类型 + // Binary data frame type for trpc request-response mode TrpcDataFrameType_TRPC_UNARY_FRAME TrpcDataFrameType = 0 - // trpc流式模式的二进制数据帧类型 + // Binary data frame type for trpc streaming mode TrpcDataFrameType_TRPC_STREAM_FRAME TrpcDataFrameType = 1 ) @@ -127,25 +127,25 @@ func (TrpcDataFrameType) EnumDescriptor() ([]byte, []int) { return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{1} } -// trpc协议流式的二进制数据帧类型 -// 目前流式帧类型分4种:INIT/DATA/FEEDBACK/CLOSE,其中CLOSE帧不带业务数据 -// INIT帧:FIXHEADER + TrpcStreamInitMeta -// DATA帧:FIXHEADER + body(业务序列化的数据) -// FEEDBACK帧:FIXHEADER + TrpcStreamFeedBackMeta(触发策略,高低水位+定时) -// CLOSE帧:FIXHEADER + TrpcStreamCloseMeta -// 连接和流空闲超时的回收机制不考虑 +// The binary data frame type of trpc protocol streaming +// Currently there are 4 types of streaming frames: INIT/DATA/FEEDBACK/CLOSE, where CLOSE frame does not carry business data +// INIT frame: FIXHEADER + TrpcStreamInitMeta +// DATA frame: FIXHEADER + body(business serialized data) +// FEEDBACK frame: FIXHEADER + TrpcStreamFeedBackMeta (trigger strategy: high/low water level + timer) +// CLOSE frame: FIXHEADER + TrpcStreamCloseMeta +// Connection and stream idle timeout recycling mechanism is not considered type TrpcStreamFrameType int32 const ( - // 一应一答的默认取值 + // Default value for request-response TrpcStreamFrameType_TRPC_UNARY TrpcStreamFrameType = 0 - // 流式INIT帧类型 + // Streaming INIT frame type TrpcStreamFrameType_TRPC_STREAM_FRAME_INIT TrpcStreamFrameType = 1 - // 流式DATA帧类型 + // Streaming DATA frame type TrpcStreamFrameType_TRPC_STREAM_FRAME_DATA TrpcStreamFrameType = 2 - // 流式FEEDBACK帧类型 + // Streaming FEEDBACK frame type TrpcStreamFrameType_TRPC_STREAM_FRAME_FEEDBACK TrpcStreamFrameType = 3 - // 流式CLOSE帧类型 + // Streaming CLOSE frame type TrpcStreamFrameType_TRPC_STREAM_FRAME_CLOSE TrpcStreamFrameType = 4 ) @@ -194,13 +194,13 @@ func (TrpcStreamFrameType) EnumDescriptor() ([]byte, []int) { return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{2} } -// trpc流式关闭类型 +// trpc streaming close type type TrpcStreamCloseType int32 const ( - // 正常单向流关闭 + // Normal unidirectional stream close TrpcStreamCloseType_TRPC_STREAM_CLOSE TrpcStreamCloseType = 0 - // 异常关闭双向流 + // Abnormal bidirectional stream close TrpcStreamCloseType_TRPC_STREAM_RESET TrpcStreamCloseType = 1 ) @@ -243,11 +243,11 @@ func (TrpcStreamCloseType) EnumDescriptor() ([]byte, []int) { return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{3} } -// trpc协议版本 +// trpc protocol version type TrpcProtoVersion int32 const ( - // 默认版本 + // Default version TrpcProtoVersion_TRPC_PROTO_V1 TrpcProtoVersion = 0 ) @@ -288,13 +288,13 @@ func (TrpcProtoVersion) EnumDescriptor() ([]byte, []int) { return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{4} } -// trpc协议中的调用类型 +// Call type in trpc protocol type TrpcCallType int32 const ( - // 一应一答调用,包括同步、异步 + // Request-response call, including synchronous and asynchronous TrpcCallType_TRPC_UNARY_CALL TrpcCallType = 0 - // 单向调用 + // One-way call TrpcCallType_TRPC_ONEWAY_CALL TrpcCallType = 1 ) @@ -337,21 +337,21 @@ func (TrpcCallType) EnumDescriptor() ([]byte, []int) { return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{5} } -// trpc协议中的消息透传支持的类型 +// Message transparent transmission supported types in trpc protocol type TrpcMessageType int32 const ( - // trpc 不用这个值,为了提供给 pb 工具生成代码 + // trpc does not use this value, it is used by the pb tool to generate code TrpcMessageType_TRPC_DEFAULT TrpcMessageType = 0 - // 染色 + // Dyeing TrpcMessageType_TRPC_DYEING_MESSAGE TrpcMessageType = 1 - // 调用链 + // Tracing TrpcMessageType_TRPC_TRACE_MESSAGE TrpcMessageType = 2 - // 多环境 + // Multi-environment TrpcMessageType_TRPC_MULTI_ENV_MESSAGE TrpcMessageType = 4 - // 灰度 + // Gray TrpcMessageType_TRPC_GRID_MESSAGE TrpcMessageType = 8 - // set名 + // Set name TrpcMessageType_TRPC_SETNAME_MESSAGE TrpcMessageType = 16 ) @@ -402,9 +402,9 @@ func (TrpcMessageType) EnumDescriptor() ([]byte, []int) { return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{6} } -// trpc协议中 data 内容的编码类型 -// 默认使用pb -// 目前约定 0-127 范围的取值为框架规范的序列化方式,框架使用 +// Encoding type of data content in trpc protocol +// Default uses pb +// Currently agreed that values in the range 0-127 are framework-standard serialization methods, used by framework type TrpcContentEncodeType int32 const ( @@ -416,7 +416,7 @@ const ( TrpcContentEncodeType_TRPC_JSON_ENCODE TrpcContentEncodeType = 2 // flatbuffer TrpcContentEncodeType_TRPC_FLATBUFFER_ENCODE TrpcContentEncodeType = 3 - // 不序列化 + // No serialization TrpcContentEncodeType_TRPC_NOOP_ENCODE TrpcContentEncodeType = 4 // xml TrpcContentEncodeType_TRPC_XML_ENCODE TrpcContentEncodeType = 5 @@ -473,25 +473,25 @@ func (TrpcContentEncodeType) EnumDescriptor() ([]byte, []int) { return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{7} } -// trpc协议中 data 内容的压缩类型 -// 默认使用不压缩 +// Compression type of data content in trpc protocol +// Default uses no compression type TrpcCompressType int32 const ( - // 默认不使用压缩 + // Default no compression TrpcCompressType_TRPC_DEFAULT_COMPRESS TrpcCompressType = 0 - // 使用gzip + // Use gzip TrpcCompressType_TRPC_GZIP_COMPRESS TrpcCompressType = 1 - // 使用snappy + // Use snappy // - // Deprecated: 建议使用 TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, 因为现在 - // trpc-go 和 trpc-cpp 分别的使用的是 stream、block 模式,二者不兼容,跨语言调用会出错 + // Deprecated: It is recommended to use TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, because currently + // trpc-go and trpc-cpp use stream and block modes respectively, which are incompatible, cross-language calls will cause errors TrpcCompressType_TRPC_SNAPPY_COMPRESS TrpcCompressType = 2 - // 使用zlib + // Use zlib TrpcCompressType_TRPC_ZLIB_COMPRESS TrpcCompressType = 3 - // 使用 stream 模式的 snappy + // Use snappy in stream mode TrpcCompressType_TRPC_SNAPPY_STREAM_COMPRESS TrpcCompressType = 4 - // 使用 block 模式的 snappy + // Use snappy in block mode TrpcCompressType_TRPC_SNAPPY_BLOCK_COMPRESS TrpcCompressType = 5 ) @@ -542,109 +542,109 @@ func (TrpcCompressType) EnumDescriptor() ([]byte, []int) { return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{8} } -// 框架层接口调用的返回码定义 +// Definition of framework layer interface call return codes type TrpcRetCode int32 const ( - // 调用成功 + // Call success TrpcRetCode_TRPC_INVOKE_SUCCESS TrpcRetCode = 0 - // 协议错误码 - // 服务端解码错误 + // Protocol error codes + // Server-side decode error TrpcRetCode_TRPC_SERVER_DECODE_ERR TrpcRetCode = 1 - // 服务端编码错误 + // Server-side encode error TrpcRetCode_TRPC_SERVER_ENCODE_ERR TrpcRetCode = 2 - // service或者func路由错误码 - // 服务端没有调用相应的service实现 + // Service or func routing error codes + // Server does not have corresponding service implementation TrpcRetCode_TRPC_SERVER_NOSERVICE_ERR TrpcRetCode = 11 - // 服务端没有调用相应的接口实现 + // Server does not have corresponding interface implementation TrpcRetCode_TRPC_SERVER_NOFUNC_ERR TrpcRetCode = 12 - // 超时/过载/限流错误码 - // 请求在服务端超时 + // Timeout/overload/limiter error codes + // Request timed out on server TrpcRetCode_TRPC_SERVER_TIMEOUT_ERR TrpcRetCode = 21 - // 请求在服务端被过载保护而丢弃请求 - // 主要用在框架内部实现的过载保护插件上 + // Request discarded due to server overload protection + // Mainly used in framework's internal overload protection plugin TrpcRetCode_TRPC_SERVER_OVERLOAD_ERR TrpcRetCode = 22 - // 请求在服务端被限流 - // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + // Request limited on server + // Mainly used in external service governance system plugins or business custom limiter plugins, eg: Polaris limiter TrpcRetCode_TRPC_SERVER_LIMITED_ERR TrpcRetCode = 23 - // 请求在服务端因全链路超时时间而超时 + // Request timed out on server due to full link timeout TrpcRetCode_TRPC_SERVER_FULL_LINK_TIMEOUT_ERR TrpcRetCode = 24 - // 服务端系统错误 + // Server system error TrpcRetCode_TRPC_SERVER_SYSTEM_ERR TrpcRetCode = 31 - // 服务端鉴权失败错误 + // Server authentication failure error TrpcRetCode_TRPC_SERVER_AUTH_ERR TrpcRetCode = 41 - // 服务端请求参数自动校验失败错误 + // Server request parameter automatic validation failure error TrpcRetCode_TRPC_SERVER_VALIDATE_ERR TrpcRetCode = 51 - // 超时错误码 - // 请求在客户端调用超时 + // Timeout error codes + // Request timed out on client TrpcRetCode_TRPC_CLIENT_INVOKE_TIMEOUT_ERR TrpcRetCode = 101 - // 请求在客户端因全链路超时时间而超时 + // Request timed out on client due to full link timeout TrpcRetCode_TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR TrpcRetCode = 102 - // 网络相关错误码 - // 客户端连接错误 + // Network related error codes + // Client connection error TrpcRetCode_TRPC_CLIENT_CONNECT_ERR TrpcRetCode = 111 - // 协议相关错误码 - // 客户端编码错误 + // Protocol related error codes + // Client encode error TrpcRetCode_TRPC_CLIENT_ENCODE_ERR TrpcRetCode = 121 - // 客户端解码错误 + // Client decode error TrpcRetCode_TRPC_CLIENT_DECODE_ERR TrpcRetCode = 122 - // 过载保护/限流相关错误码 - // 请求在客户端被限流 - // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + // Overload protection/limiter related error codes + // Request limited on client + // Mainly used in external service governance system plugins or business custom limiter plugins, eg: Polaris limiter TrpcRetCode_TRPC_CLIENT_LIMITED_ERR TrpcRetCode = 123 - // 请求在客户端被过载保护而丢弃请求 - // 主要用在框架内部实现的过载保护插件上 + // Request discarded due to client overload protection + // Mainly used in framework's internal overload protection plugin TrpcRetCode_TRPC_CLIENT_OVERLOAD_ERR TrpcRetCode = 124 - // 路由相关错误码 - // 客户端选ip路由错误 + // Routing related error codes + // Client IP routing error TrpcRetCode_TRPC_CLIENT_ROUTER_ERR TrpcRetCode = 131 - // 客户端网络错误 + // Client network error TrpcRetCode_TRPC_CLIENT_NETWORK_ERR TrpcRetCode = 141 - // 客户端响应参数自动校验失败错误 + // Client response parameter automatic validation failure error TrpcRetCode_TRPC_CLIENT_VALIDATE_ERR TrpcRetCode = 151 - // 上游主动断开连接,提前取消请求错误 + // Upstream actively disconnected, early cancellation request error TrpcRetCode_TRPC_CLIENT_CANCELED_ERR TrpcRetCode = 161 - // 服务端流式网络错误, 详细错误码需要在实现过程中再梳理 + // Server-side streaming network error, detailed error codes need to be sorted out during implementation TrpcRetCode_TRPC_STREAM_SERVER_NETWORK_ERR TrpcRetCode = 201 - // 服务端流式传输错误, 详细错误码需要在实现过程中再梳理 - // 比如:流消息过大等 + // Server-side streaming transmission error, detailed error codes need to be sorted out during implementation + // eg: Stream message too large, etc. TrpcRetCode_TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR TrpcRetCode = 211 - // 服务端流式编码错误 + // Server-side streaming encode error TrpcRetCode_TRPC_STREAM_SERVER_ENCODE_ERR TrpcRetCode = 221 - // 客户端流式编解码错误 + // Client-side streaming encode/decode error TrpcRetCode_TRPC_STREAM_SERVER_DECODE_ERR TrpcRetCode = 222 - // 服务端流式写错误, 详细错误码需要在实现过程中再梳理 + // Server-side streaming write error, detailed error codes need to be sorted out during implementation TrpcRetCode_TRPC_STREAM_SERVER_WRITE_END TrpcRetCode = 231 TrpcRetCode_TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR TrpcRetCode = 232 TrpcRetCode_TRPC_STREAM_SERVER_WRITE_CLOSE_ERR TrpcRetCode = 233 TrpcRetCode_TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR TrpcRetCode = 234 - // 服务端流式读错误, 详细错误码需要在实现过程中再梳理 + // Server-side streaming read error, detailed error codes need to be sorted out during implementation TrpcRetCode_TRPC_STREAM_SERVER_READ_END TrpcRetCode = 251 TrpcRetCode_TRPC_STREAM_SERVER_READ_CLOSE_ERR TrpcRetCode = 252 TrpcRetCode_TRPC_STREAM_SERVER_READ_EMPTY_ERR TrpcRetCode = 253 TrpcRetCode_TRPC_STREAM_SERVER_READ_TIMEOUT_ERR TrpcRetCode = 254 - // 客户端流式网络错误, 详细错误码需要在实现过程中再梳理 + // Client-side streaming network error, detailed error codes need to be sorted out during implementation TrpcRetCode_TRPC_STREAM_CLIENT_NETWORK_ERR TrpcRetCode = 301 - // 客户端流式传输错误, 详细错误码需要在实现过程中再梳理 - // 比如:流消息过大等 + // Client-side streaming transmission error, detailed error codes need to be sorted out during implementation + // eg: Stream message too large, etc. TrpcRetCode_TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR TrpcRetCode = 311 - // 客户端流式编码错误 + // Client-side streaming encode error TrpcRetCode_TRPC_STREAM_CLIENT_ENCODE_ERR TrpcRetCode = 321 - // 客户端流式编解码错误 + // Client-side streaming encode/decode error TrpcRetCode_TRPC_STREAM_CLIENT_DECODE_ERR TrpcRetCode = 322 - // 客户端流式写错误, 详细错误码需要在实现过程中再梳理 + // Client-side streaming write error, detailed error codes need to be sorted out during implementation TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_END TrpcRetCode = 331 TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR TrpcRetCode = 332 TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR TrpcRetCode = 333 TrpcRetCode_TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR TrpcRetCode = 334 - // 客户端流式读错误, 详细错误码需要在实现过程中再梳理 + // Client-side streaming read error, detailed error codes need to be sorted out during implementation TrpcRetCode_TRPC_STREAM_CLIENT_READ_END TrpcRetCode = 351 TrpcRetCode_TRPC_STREAM_CLIENT_READ_CLOSE_ERR TrpcRetCode = 352 TrpcRetCode_TRPC_STREAM_CLIENT_READ_EMPTY_ERR TrpcRetCode = 353 TrpcRetCode_TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR TrpcRetCode = 354 - // 未明确的错误 + // Unspecified error TrpcRetCode_TRPC_INVOKE_UNKNOWN_ERR TrpcRetCode = 999 - // 未明确的错误 + // Unspecified error TrpcRetCode_TRPC_STREAM_UNKNOWN_ERR TrpcRetCode = 1000 ) @@ -781,25 +781,25 @@ func (TrpcRetCode) EnumDescriptor() ([]byte, []int) { return file_trpc_v2_trpc_proto_rawDescGZIP(), []int{9} } -// trpc流式的流控帧头消息定义 +// Definition of flow control frame header message for trpc streaming type TrpcStreamInitMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // init请求元信息 + // INIT request metadata RequestMeta *TrpcStreamInitRequestMeta `protobuf:"bytes,1,opt,name=request_meta,json=requestMeta,proto3" json:"request_meta,omitempty"` - // init响应元信息 + // INIT response metadata ResponseMeta *TrpcStreamInitResponseMeta `protobuf:"bytes,2,opt,name=response_meta,json=responseMeta,proto3" json:"response_meta,omitempty"` - // 由接收端告知发送端初始的发送窗口大小 + // Initial send window size notified by receiver to sender InitWindowSize uint32 `protobuf:"varint,3,opt,name=init_window_size,json=initWindowSize,proto3" json:"init_window_size,omitempty"` - // 请求数据的序列化类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // Serialization type of request data + // eg: proto/jce/json, default proto + // Specific value corresponds to TrpcContentEncodeType ContentType uint32 `protobuf:"varint,4,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` - // 请求数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // Compression method used for request data + // eg: gzip/snappy/..., default not used + // Specific value corresponds to TrpcCompressType ContentEncoding uint32 `protobuf:"varint,5,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` } @@ -870,30 +870,30 @@ func (x *TrpcStreamInitMeta) GetContentEncoding() uint32 { return 0 } -// trpc流式init头的请求元信息 +// Request metadata definition for trpc streaming INIT header type TrpcStreamInitRequestMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 主调服务的名称 - // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + // Name of the calling service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name, 4 segments Caller []byte `protobuf:"bytes,1,opt,name=caller,proto3" json:"caller,omitempty"` - // 被调服务的路由名称 - // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] - // 前4段是必须有,接口可选。 + // Routing name of the called service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name[.interface_name] + // First 4 segments are mandatory, interface is optional Callee []byte `protobuf:"bytes,2,opt,name=callee,proto3" json:"callee,omitempty"` - // 调用服务的接口名 - // 规范格式: /package.Service名称/接口名 + // Interface name of the called service + // Standard format: /package.Service_name/interface_name Func []byte `protobuf:"bytes,3,opt,name=func,proto3" json:"func,omitempty"` - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType MessageType uint32 `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 - // 注意: trans_info中的key-value对会全链路透传,业务请谨慎使用! + // Key-value pairs for framework transparent transmission information, currently divided into two parts: + // 1. Information to be transparently transmitted by the framework layer, key names must start with 'trpc-' + // 2. Information to be transparently transmitted by the business layer, which can be set by the business itself + // Note: Key-value pairs in trans_info will be transparently transmitted through the entire link, please use with caution! TransInfo map[string][]byte `protobuf:"bytes,5,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } @@ -964,17 +964,17 @@ func (x *TrpcStreamInitRequestMeta) GetTransInfo() map[string][]byte { return nil } -// trpc流式init头的响应元信息 +// Response metadata definition for trpc streaming INIT header type TrpcStreamInitResponseMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 请求在框架层的错误返回码 - // 具体值与TrpcRetCode对应 + // Error return code at framework layer + // Specific value corresponds to TrpcRetCode Ret int32 `protobuf:"varint,1,opt,name=ret,proto3" json:"ret,omitempty"` - // 调用结果信息描述 - // 失败的时候用 + // Call result information description + // Used when failed ErrorMsg []byte `protobuf:"bytes,2,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` } @@ -1024,13 +1024,13 @@ func (x *TrpcStreamInitResponseMeta) GetErrorMsg() []byte { return nil } -// trpc流式的流控帧头元信息定义 +// Definition of flow control frame header metadata for trpc streaming type TrpcStreamFeedBackMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 增加的窗口大小 + // Incremented window size WindowSizeIncrement uint32 `protobuf:"varint,1,opt,name=window_size_increment,json=windowSizeIncrement,proto3" json:"window_size_increment,omitempty"` } @@ -1073,29 +1073,29 @@ func (x *TrpcStreamFeedBackMeta) GetWindowSizeIncrement() uint32 { return 0 } -// trpc流式的RESET帧头消息定义 +// Definition of RESET frame header message for trpc streaming type TrpcStreamCloseMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 关闭的类型,关闭一端,还是全部关闭 + // Close type, whether to close one end or all CloseType int32 `protobuf:"varint,1,opt,name=close_type,json=closeType,proto3" json:"close_type,omitempty"` - // close返回码 - // 代表框架层的错误 + // Close return code + // Represents framework layer error Ret int32 `protobuf:"varint,2,opt,name=ret,proto3" json:"ret,omitempty"` - // close信息描述 + // Close information description Msg []byte `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType MessageType uint32 `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 + // Key-value pairs for framework transparent transmission information, currently divided into two parts: + // 1. Information to be transparently transmitted by the framework layer, key names must start with 'trpc-' + // 2. Information to be transparently transmitted by the business layer, which can be set by the business itself TransInfo map[string][]byte `protobuf:"bytes,5,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // 接口的错误返回码 - // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + // Interface error return code + // It is recommended to identify success and failure when using, 0 represents success, others represent failure FuncRet int32 `protobuf:"varint,6,opt,name=func_ret,json=funcRet,proto3" json:"func_ret,omitempty"` } @@ -1173,48 +1173,48 @@ func (x *TrpcStreamCloseMeta) GetFuncRet() int32 { return 0 } -// 请求协议头 +// Request protocol header type RequestProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 协议版本 - // 具体值与TrpcProtoVersion对应 + // Protocol version + // Specific value corresponds to TrpcProtoVersion Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` - // 请求的调用类型 - // 比如: 普通调用,单向调用 - // 具体值与TrpcCallType对应 + // Call type of request + // eg: normal call, one-way call + // Specific value corresponds to TrpcCallType CallType uint32 `protobuf:"varint,2,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` - // 请求唯一id + // Request unique id RequestId uint32 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` - // 请求的超时时间,单位ms + // Request timeout, unit ms Timeout uint32 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"` - // 主调服务的名称 - // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + // Name of the calling service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name, 4 segments Caller []byte `protobuf:"bytes,5,opt,name=caller,proto3" json:"caller,omitempty"` - // 被调服务的路由名称 - // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] - // 前4段是必须有,接口可选。 + // Routing name of the called service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name[.interface_name] + // First 4 segments are mandatory, interface is optional Callee []byte `protobuf:"bytes,6,opt,name=callee,proto3" json:"callee,omitempty"` - // 调用服务的接口名 - // 规范格式: /package.Service名称/接口名 + // Interface name of the called service + // Standard format: /package.Service_name/interface_name Func []byte `protobuf:"bytes,7,opt,name=func,proto3" json:"func,omitempty"` - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType MessageType uint32 `protobuf:"varint,8,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 + // Key-value pairs for framework transparent transmission information, currently divided into two parts: + // 1. Information to be transparently transmitted by the framework layer, key names must start with 'trpc-' + // 2. Information to be transparently transmitted by the business layer, which can be set by the business itself TransInfo map[string][]byte `protobuf:"bytes,9,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // 请求数据的序列化类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // Serialization type of request data + // eg: proto/jce/json, default proto + // Specific value corresponds to TrpcContentEncodeType ContentType uint32 `protobuf:"varint,10,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` - // 请求数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // Compression method used for request data + // eg: gzip/snappy/..., default not used + // Specific value corresponds to TrpcCompressType ContentEncoding uint32 `protobuf:"varint,11,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` } @@ -1327,46 +1327,46 @@ func (x *RequestProtocol) GetContentEncoding() uint32 { return 0 } -// 响应协议头 +// Response protocol header type ResponseProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 协议版本 - // 具体值与TrpcProtoVersion对应 + // Protocol version + // Specific value corresponds to TrpcProtoVersion Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` - // 请求的调用类型 - // 比如: 普通调用,单向调用 - // 具体值与TrpcCallType对应 + // Call type of request + // eg: normal call, one-way call + // Specific value corresponds to TrpcCallType CallType uint32 `protobuf:"varint,2,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` - // 请求唯一id + // Request unique id RequestId uint32 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` - // 请求在框架层的错误返回码 - // 具体值与TrpcRetCode对应 + // Error return code at framework layer + // Specific value corresponds to TrpcRetCode Ret int32 `protobuf:"varint,4,opt,name=ret,proto3" json:"ret,omitempty"` - // 接口的错误返回码 - // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + // Interface error return code + // It is recommended to identify success and failure when using, 0 represents success, others represent failure FuncRet int32 `protobuf:"varint,5,opt,name=func_ret,json=funcRet,proto3" json:"func_ret,omitempty"` - // 调用结果信息描述 - // 失败的时候用 + // Call result information description + // Used when failed ErrorMsg []byte `protobuf:"bytes,6,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType MessageType uint32 `protobuf:"varint,7,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // 框架透传回来的信息key-value对, - // 目前分两部分 - // 1是框架层透传回来的信息,key的名字要以trpc-开头 - // 2是业务层透传回来的信息,业务可以自行设置 + // Key-value pairs for framework transparent transmission information returned, + // Currently divided into two parts: + // 1. Information transparently transmitted back by the framework layer, key names must start with 'trpc-' + // 2. Information transparently transmitted back by the business layer, which can be set by the business itself TransInfo map[string][]byte `protobuf:"bytes,8,rep,name=trans_info,json=transInfo,proto3" json:"trans_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // 响应数据的编码类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // Encoding type of response data + // eg: proto/jce/json, default proto + // Specific value corresponds to TrpcContentEncodeType ContentType uint32 `protobuf:"varint,9,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` - // 响应数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // Compression method used for response data + // eg: gzip/snappy/..., default not used + // Specific value corresponds to TrpcCompressType ContentEncoding uint32 `protobuf:"varint,10,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` } diff --git a/trpc/v2/trpc.proto b/trpc/v2/trpc.proto index 48371be..f313f26 100644 --- a/trpc/v2/trpc.proto +++ b/trpc/v2/trpc.proto @@ -12,214 +12,212 @@ option go_package = "trpc.group/trpc/trpc-protocol/pb/go/trpc/v2;trpc"; option java_package = "com.tencent.trpc.proto.standard.common"; option java_outer_classname = "TRPCProtocol"; -// 框架协议头里的魔数 +// The magic value in the framework protocol header enum TrpcMagic { - // trpc不用这个值,为了提供给pb工具生成代码 + // trpc does not use this value, it is used by the pb tool to generate code TRPC_DEFAULT_NONE = 0x00; - // trpc协议默认使用这个魔数 + // trpc protocol uses this magic value by default TRPC_MAGIC_VALUE = 0x930; } -// trpc协议的二进制数据帧类型 -// 目前支持两种类型的二进制数据帧: -// 1. 一应一答模式的二进制数据帧类型 -// 2. 流式模式的二进制数据帧类型 +// The binary data frame type of the trpc protocol +// Currently supports two types of binary data frames: +// 1. Binary data frame type for request-response mode +// 2. Binary data frame type for streaming mode enum TrpcDataFrameType { - // trpc一应一答模式的二进制数据帧类型 + // Binary data frame type for trpc request-response mode TRPC_UNARY_FRAME = 0x00; - // trpc流式模式的二进制数据帧类型 + // Binary data frame type for trpc streaming mode TRPC_STREAM_FRAME = 0x01; } -// 此类型删掉,改成下面的TrpcStreamFrameType -// trpc协议的二进制数据帧的状态 -// 目前支持流式模式的二进制数据帧结束状态 +// This type is deleted, replaced by TrpcStreamFrameType below +// The state of trpc protocol's binary data frame +// Currently supports the end state of streaming mode binary data frame //enum TrpcDataFrameState { -// // 不包括任何状态 +// // Does not include any state // TRPC_NO_STATE = 0x00; // -// // trpc流式模式下的结束状态 +// // End state in trpc streaming mode // TRPC_STREAM_FINISH = 0x01; //} -// trpc协议流式的二进制数据帧类型 -// 目前流式帧类型分4种:INIT/DATA/FEEDBACK/CLOSE,其中CLOSE帧不带业务数据 -// INIT帧:FIXHEADER + TrpcStreamInitMeta -// DATA帧:FIXHEADER + body(业务序列化的数据) -// FEEDBACK帧:FIXHEADER + TrpcStreamFeedBackMeta(触发策略,高低水位+定时) -// CLOSE帧:FIXHEADER + TrpcStreamCloseMeta -// 连接和流空闲超时的回收机制不考虑 +// The binary data frame type of trpc protocol streaming +// Currently there are 4 types of streaming frames: INIT/DATA/FEEDBACK/CLOSE, where CLOSE frame does not carry business data +// INIT frame: FIXHEADER + TrpcStreamInitMeta +// DATA frame: FIXHEADER + body(business serialized data) +// FEEDBACK frame: FIXHEADER + TrpcStreamFeedBackMeta (trigger strategy: high/low water level + timer) +// CLOSE frame: FIXHEADER + TrpcStreamCloseMeta +// Connection and stream idle timeout recycling mechanism is not considered enum TrpcStreamFrameType { - // 一应一答的默认取值 + // Default value for request-response TRPC_UNARY = 0x00; - // 流式INIT帧类型 + // Streaming INIT frame type TRPC_STREAM_FRAME_INIT = 0x01; - // 流式DATA帧类型 + // Streaming DATA frame type TRPC_STREAM_FRAME_DATA = 0x02; - // 流式FEEDBACK帧类型 + // Streaming FEEDBACK frame type TRPC_STREAM_FRAME_FEEDBACK = 0x03; - // 流式CLOSE帧类型 + // Streaming CLOSE frame type TRPC_STREAM_FRAME_CLOSE = 0x04; } -// trpc流式的流控帧头消息定义 +// Definition of flow control frame header message for trpc streaming message TrpcStreamInitMeta { - // init请求元信息 + // INIT request metadata TrpcStreamInitRequestMeta request_meta = 1; - // init响应元信息 + // INIT response metadata TrpcStreamInitResponseMeta response_meta = 2; - // 由接收端告知发送端初始的发送窗口大小 + // Initial send window size notified by receiver to sender uint32 init_window_size = 3; - // 请求数据的序列化类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 + // Serialization type of request data + // eg: proto/jce/json, default proto + // Specific value corresponds to TrpcContentEncodeType uint32 content_type = 4; - // 请求数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 + // Compression method used for request data + // eg: gzip/snappy/..., default not used + // Specific value corresponds to TrpcCompressType uint32 content_encoding = 5; } -// trpc流式init头的请求元信息 +// Request metadata definition for trpc streaming INIT header message TrpcStreamInitRequestMeta { - // 主调服务的名称 - // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 + // Name of the calling service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name, 4 segments bytes caller = 1; - // 被调服务的路由名称 - // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] - // 前4段是必须有,接口可选。 + // Routing name of the called service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name[.interface_name] + // First 4 segments are mandatory, interface is optional bytes callee = 2; - // 调用服务的接口名 - // 规范格式: /package.Service名称/接口名 + // Interface name of the called service + // Standard format: /package.Service_name/interface_name bytes func = 3; - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType uint32 message_type = 4; - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 - // 注意: trans_info中的key-value对会全链路透传,业务请谨慎使用! + // Key-value pairs for framework transparent transmission information, currently divided into two parts: + // 1. Information to be transparently transmitted by the framework layer, key names must start with 'trpc-' + // 2. Information to be transparently transmitted by the business layer, which can be set by the business itself + // Note: Key-value pairs in trans_info will be transparently transmitted through the entire link, please use with caution! map trans_info = 5; }; -// trpc流式init头的响应元信息 +// Response metadata definition for trpc streaming INIT header message TrpcStreamInitResponseMeta { - // 请求在框架层的错误返回码 - // 具体值与TrpcRetCode对应 + // Error return code at framework layer + // Specific value corresponds to TrpcRetCode int32 ret = 1; - // 调用结果信息描述 - // 失败的时候用 + // Call result information description + // Used when failed bytes error_msg = 2; }; -// trpc流式的流控帧头元信息定义 +// Definition of flow control frame header metadata for trpc streaming message TrpcStreamFeedBackMeta { - // 增加的窗口大小 + // Incremented window size uint32 window_size_increment = 1; } -// trpc流式关闭类型 +// trpc streaming close type enum TrpcStreamCloseType { - // 正常单向流关闭 + // Normal unidirectional stream close TRPC_STREAM_CLOSE = 0; - // 异常关闭双向流 + // Abnormal bidirectional stream close TRPC_STREAM_RESET = 1; } -// trpc流式的RESET帧头消息定义 +// Definition of RESET frame header message for trpc streaming message TrpcStreamCloseMeta { - // 关闭的类型,关闭一端,还是全部关闭 + // Close type, whether to close one end or all int32 close_type = 1; - // close返回码 - // 代表框架层的错误 + // Close return code + // Represents framework layer error int32 ret = 2; - // close信息描述 + // Close information description bytes msg = 3; - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 - uint32 message_type = 4; + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType + uint32 message_type = 4; - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 + // Key-value pairs for framework transparent transmission information, currently divided into two parts: + // 1. Information to be transparently transmitted by the framework layer, key names must start with 'trpc-' + // 2. Information to be transparently transmitted by the business layer, which can be set by the business itself map trans_info = 5; - // 接口的错误返回码 - // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 + // Interface error return code + // It is recommended to identify success and failure when using, 0 represents success, others represent failure int32 func_ret = 6; - } -// trpc协议版本 +// trpc protocol version enum TrpcProtoVersion { - // 默认版本 - TRPC_PROTO_V1 = 0; + // Default version + TRPC_PROTO_V1 = 0; } -// trpc协议中的调用类型 +// Call type in trpc protocol enum TrpcCallType { - // 一应一答调用,包括同步、异步 + // Request-response call, including synchronous and asynchronous TRPC_UNARY_CALL = 0; - // 单向调用 + // One-way call TRPC_ONEWAY_CALL = 1; - // 客户端流式请求调用, 删除 + // Client streaming request call, deleted //TRPC_CLIENT_STREAM_CALL = 2; - // 服务端流式回应,删除 + // Server streaming response, deleted //TRPC_SERVER_STREAM_CALL = 3; - // 客户端和服务端流式请求和回应,删除 + // Client and server streaming request and response, deleted //TRPC_BIDI_STREAM_CALL = 4; } -// trpc协议中的消息透传支持的类型 +// Message transparent transmission supported types in trpc protocol enum TrpcMessageType { + // trpc does not use this value, it is used by the pb tool to generate code + TRPC_DEFAULT = 0x00; - // trpc 不用这个值,为了提供给 pb 工具生成代码 - TRPC_DEFAULT = 0x00; - - // 染色 + // Dyeing TRPC_DYEING_MESSAGE = 0x01; - // 调用链 + // Tracing TRPC_TRACE_MESSAGE = 0x02; - // 多环境 + // Multi-environment TRPC_MULTI_ENV_MESSAGE = 0x04; - // 灰度 + // Gray TRPC_GRID_MESSAGE = 0x08; - // set名 + // Set name TRPC_SETNAME_MESSAGE = 0x10; } -// trpc协议中 data 内容的编码类型 -// 默认使用pb -// 目前约定 0-127 范围的取值为框架规范的序列化方式,框架使用 +// Encoding type of data content in trpc protocol +// Default uses pb +// Currently agreed that values in the range 0-127 are framework-standard serialization methods, used by framework enum TrpcContentEncodeType { // pb TRPC_PROTO_ENCODE = 0; @@ -233,7 +231,7 @@ enum TrpcContentEncodeType { // flatbuffer TRPC_FLATBUFFER_ENCODE = 3; - // 不序列化 + // No serialization TRPC_NOOP_ENCODE = 4; // xml @@ -243,278 +241,278 @@ enum TrpcContentEncodeType { TRPC_THRIFT_ENCODE = 6; } -// trpc协议中 data 内容的压缩类型 -// 默认使用不压缩 +// Compression type of data content in trpc protocol +// Default uses no compression enum TrpcCompressType { - // 默认不使用压缩 + // Default no compression TRPC_DEFAULT_COMPRESS = 0; - // 使用gzip + // Use gzip TRPC_GZIP_COMPRESS = 1; - // 使用snappy + // Use snappy // - // Deprecated: 建议使用 TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, 因为现在 - // trpc-go 和 trpc-cpp 分别的使用的是 stream、block 模式,二者不兼容,跨语言调用会出错 + // Deprecated: It is recommended to use TRPC_SNAPPY_STREAM_COMPRESS/TRPC_SNAPPY_BLOCK_COMPRESS, because currently + // trpc-go and trpc-cpp use stream and block modes respectively, which are incompatible, cross-language calls will cause errors TRPC_SNAPPY_COMPRESS = 2; - // 使用zlib + // Use zlib TRPC_ZLIB_COMPRESS = 3; - // 使用 stream 模式的 snappy + // Use snappy in stream mode TRPC_SNAPPY_STREAM_COMPRESS = 4; - // 使用 block 模式的 snappy + // Use snappy in block mode TRPC_SNAPPY_BLOCK_COMPRESS = 5; } -// 框架层接口调用的返回码定义 +// Definition of framework layer interface call return codes enum TrpcRetCode { - // 调用成功 + // Call success TRPC_INVOKE_SUCCESS = 0; - // 服务端的错误码 - // 主要分几类: - // 1.协议,2.service或者func路由,3.队列超时或过载 - // 其它待补充 + // Server-side error codes + // Mainly divided into several categories: + // 1. Protocol, 2. Service or func routing, 3. Queue timeout or overload + // Others to be added - // 协议错误码 - // 服务端解码错误 + // Protocol error codes + // Server-side decode error TRPC_SERVER_DECODE_ERR = 1; - // 服务端编码错误 + // Server-side encode error TRPC_SERVER_ENCODE_ERR = 2; - // service或者func路由错误码 - // 服务端没有调用相应的service实现 + // Service or func routing error codes + // Server does not have corresponding service implementation TRPC_SERVER_NOSERVICE_ERR = 11; - // 服务端没有调用相应的接口实现 + // Server does not have corresponding interface implementation TRPC_SERVER_NOFUNC_ERR = 12; - // 超时/过载/限流错误码 - // 请求在服务端超时 + // Timeout/overload/limiter error codes + // Request timed out on server TRPC_SERVER_TIMEOUT_ERR = 21; - // 请求在服务端被过载保护而丢弃请求 - // 主要用在框架内部实现的过载保护插件上 + // Request discarded due to server overload protection + // Mainly used in framework's internal overload protection plugin TRPC_SERVER_OVERLOAD_ERR = 22; - // 请求在服务端被限流 - // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + // Request limited on server + // Mainly used in external service governance system plugins or business custom limiter plugins, eg: Polaris limiter TRPC_SERVER_LIMITED_ERR = 23; - // 请求在服务端因全链路超时时间而超时 + // Request timed out on server due to full link timeout TRPC_SERVER_FULL_LINK_TIMEOUT_ERR = 24; - // 服务端系统错误 + // Server system error TRPC_SERVER_SYSTEM_ERR = 31; - // 服务端鉴权失败错误 + // Server authentication failure error TRPC_SERVER_AUTH_ERR = 41; - // 服务端请求参数自动校验失败错误 + // Server request parameter automatic validation failure error TRPC_SERVER_VALIDATE_ERR = 51; - // 客户端的错误码 - // 主要分几类: - // 1.超时,2.网络,3.协议,4.路由 - // 其它待补充 + // Client-side error codes + // Mainly divided into several categories: + // 1. Timeout, 2. Network, 3. Protocol, 4. Routing + // Others to be added - // 超时错误码 - // 请求在客户端调用超时 + // Timeout error codes + // Request timed out on client TRPC_CLIENT_INVOKE_TIMEOUT_ERR = 101; - // 请求在客户端因全链路超时时间而超时 + // Request timed out on client due to full link timeout TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR = 102; - // 网络相关错误码 - // 客户端连接错误 + // Network related error codes + // Client connection error TRPC_CLIENT_CONNECT_ERR = 111; - // 协议相关错误码 - // 客户端编码错误 + // Protocol related error codes + // Client encode error TRPC_CLIENT_ENCODE_ERR = 121; - // 客户端解码错误 + // Client decode error TRPC_CLIENT_DECODE_ERR = 122; - // 过载保护/限流相关错误码 - // 请求在客户端被限流 - // 主要用在外部服务治理系统的插件或者业务自定义的限流插件上,比如: 北极星限流 + // Overload protection/limiter related error codes + // Request limited on client + // Mainly used in external service governance system plugins or business custom limiter plugins, eg: Polaris limiter TRPC_CLIENT_LIMITED_ERR = 123; - // 请求在客户端被过载保护而丢弃请求 - // 主要用在框架内部实现的过载保护插件上 + // Request discarded due to client overload protection + // Mainly used in framework's internal overload protection plugin TRPC_CLIENT_OVERLOAD_ERR = 124; - // 路由相关错误码 - // 客户端选ip路由错误 + // Routing related error codes + // Client IP routing error TRPC_CLIENT_ROUTER_ERR = 131; - // 客户端网络错误 + // Client network error TRPC_CLIENT_NETWORK_ERR = 141; - // 客户端响应参数自动校验失败错误 + // Client response parameter automatic validation failure error TRPC_CLIENT_VALIDATE_ERR = 151; - // 上游主动断开连接,提前取消请求错误 + // Upstream actively disconnected, early cancellation request error TRPC_CLIENT_CANCELED_ERR = 161; - // 服务端流式的错误码 - // 主要分几类: - // 1.网络,2.编解码,3.写,4.读 - // 其它待补充 + // Server-side streaming error codes + // Mainly divided into several categories: + // 1. Network, 2. Encode/decode, 3. Write, 4. Read + // Others to be added - // 服务端流式网络错误, 详细错误码需要在实现过程中再梳理 + // Server-side streaming network error, detailed error codes need to be sorted out during implementation TRPC_STREAM_SERVER_NETWORK_ERR = 201; - // 服务端流式传输错误, 详细错误码需要在实现过程中再梳理 - // 比如:流消息过大等 + // Server-side streaming transmission error, detailed error codes need to be sorted out during implementation + // eg: Stream message too large, etc. TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR = 211; - // 服务端流式编码错误 + // Server-side streaming encode error TRPC_STREAM_SERVER_ENCODE_ERR = 221; - // 客户端流式编解码错误 + // Client-side streaming encode/decode error TRPC_STREAM_SERVER_DECODE_ERR = 222; - // 服务端流式写错误, 详细错误码需要在实现过程中再梳理 + // Server-side streaming write error, detailed error codes need to be sorted out during implementation TRPC_STREAM_SERVER_WRITE_END = 231; TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR = 232; TRPC_STREAM_SERVER_WRITE_CLOSE_ERR = 233; TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR = 234; - // 服务端流式读错误, 详细错误码需要在实现过程中再梳理 + // Server-side streaming read error, detailed error codes need to be sorted out during implementation TRPC_STREAM_SERVER_READ_END = 251; TRPC_STREAM_SERVER_READ_CLOSE_ERR = 252; TRPC_STREAM_SERVER_READ_EMPTY_ERR = 253; TRPC_STREAM_SERVER_READ_TIMEOUT_ERR = 254; - // 客户端流式的错误码 - // 主要分几类: - // 1.网络,2.编解码,3.写,4.读 - // 其它待补充 + // Client-side streaming error codes + // Mainly divided into several categories: + // 1. Network, 2. Encode/decode, 3. Write, 4. Read + // Others to be added - // 客户端流式网络错误, 详细错误码需要在实现过程中再梳理 + // Client-side streaming network error, detailed error codes need to be sorted out during implementation TRPC_STREAM_CLIENT_NETWORK_ERR = 301; - // 客户端流式传输错误, 详细错误码需要在实现过程中再梳理 - // 比如:流消息过大等 + // Client-side streaming transmission error, detailed error codes need to be sorted out during implementation + // eg: Stream message too large, etc. TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR = 311; - // 客户端流式编码错误 + // Client-side streaming encode error TRPC_STREAM_CLIENT_ENCODE_ERR = 321; - // 客户端流式编解码错误 + // Client-side streaming encode/decode error TRPC_STREAM_CLIENT_DECODE_ERR = 322; - // 客户端流式写错误, 详细错误码需要在实现过程中再梳理 + // Client-side streaming write error, detailed error codes need to be sorted out during implementation TRPC_STREAM_CLIENT_WRITE_END = 331; TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR = 332; TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR = 333; TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR = 334; - // 客户端流式读错误, 详细错误码需要在实现过程中再梳理 + // Client-side streaming read error, detailed error codes need to be sorted out during implementation TRPC_STREAM_CLIENT_READ_END = 351; TRPC_STREAM_CLIENT_READ_CLOSE_ERR = 352; TRPC_STREAM_CLIENT_READ_EMPTY_ERR = 353; TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR = 354; - // 未明确的错误 + // Unspecified error TRPC_INVOKE_UNKNOWN_ERR = 999; - // 未明确的错误 + // Unspecified error TRPC_STREAM_UNKNOWN_ERR = 1000; } -// trans_info已使用的框架key,注意不要重复: -// "trpc-dyeing-key":染色key +// Framework keys already used in trans_info, be careful not to repeat: +// "trpc-dyeing-key": dyeing key -// 请求协议头 +// Request protocol header message RequestProtocol { - // 协议版本 - // 具体值与TrpcProtoVersion对应 - uint32 version = 1; - - // 请求的调用类型 - // 比如: 普通调用,单向调用 - // 具体值与TrpcCallType对应 - uint32 call_type = 2; - - // 请求唯一id - uint32 request_id = 3; - - // 请求的超时时间,单位ms - uint32 timeout = 4; - - // 主调服务的名称 - // trpc协议下的规范格式: trpc.应用名.服务名.pb的service名, 4段 - bytes caller = 5; - - // 被调服务的路由名称 - // trpc协议下的规范格式,trpc.应用名.服务名.pb的service名[.接口名] - // 前4段是必须有,接口可选。 - bytes callee = 6; - - // 调用服务的接口名 - // 规范格式: /package.Service名称/接口名 - bytes func = 7; - - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 - uint32 message_type = 8; - - // 框架透传的信息key-value对,目前分两部分 - // 1是框架层要透传的信息,key的名字要以trpc-开头 - // 2是业务层要透传的信息,业务可以自行设置 - map trans_info = 9; - - // 请求数据的序列化类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 - uint32 content_type = 10; - - // 请求数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 - uint32 content_encoding = 11; + // Protocol version + // Specific value corresponds to TrpcProtoVersion + uint32 version = 1; + + // Call type of request + // eg: normal call, one-way call + // Specific value corresponds to TrpcCallType + uint32 call_type = 2; + + // Request unique id + uint32 request_id = 3; + + // Request timeout, unit ms + uint32 timeout = 4; + + // Name of the calling service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name, 4 segments + bytes caller = 5; + + // Routing name of the called service + // Standard format in trpc protocol: trpc.application_name.server_name.proto_service_name[.interface_name] + // First 4 segments are mandatory, interface is optional + bytes callee = 6; + + // Interface name of the called service + // Standard format: /package.Service_name/interface_name + bytes func = 7; + + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType + uint32 message_type = 8; + + // Key-value pairs for framework transparent transmission information, currently divided into two parts: + // 1. Information to be transparently transmitted by the framework layer, key names must start with 'trpc-' + // 2. Information to be transparently transmitted by the business layer, which can be set by the business itself + map trans_info = 9; + + // Serialization type of request data + // eg: proto/jce/json, default proto + // Specific value corresponds to TrpcContentEncodeType + uint32 content_type = 10; + + // Compression method used for request data + // eg: gzip/snappy/..., default not used + // Specific value corresponds to TrpcCompressType + uint32 content_encoding = 11; } -// 响应协议头 +// Response protocol header message ResponseProtocol { - // 协议版本 - // 具体值与TrpcProtoVersion对应 - uint32 version = 1; - - // 请求的调用类型 - // 比如: 普通调用,单向调用 - // 具体值与TrpcCallType对应 - uint32 call_type = 2; - - // 请求唯一id - uint32 request_id = 3; - - // 请求在框架层的错误返回码 - // 具体值与TrpcRetCode对应 - int32 ret = 4; - - // 接口的错误返回码 - // 建议业务在使用时,标识成功和失败,0代表成功,其它代表失败 - int32 func_ret = 5; - - // 调用结果信息描述 - // 失败的时候用 - bytes error_msg = 6; - - // 框架信息透传的消息类型 - // 比如调用链、染色key、灰度、鉴权、多环境、set名称等的标识 - // 具体值与TrpcMessageType对应 - uint32 message_type = 7; - - // 框架透传回来的信息key-value对, - // 目前分两部分 - // 1是框架层透传回来的信息,key的名字要以trpc-开头 - // 2是业务层透传回来的信息,业务可以自行设置 - map trans_info = 8; - - // 响应数据的编码类型 - // 比如: proto/jce/json, 默认proto - // 具体值与TrpcContentEncodeType对应 - uint32 content_type = 9; - - // 响应数据使用的压缩方式 - // 比如: gzip/snappy/..., 默认不使用 - // 具体值与TrpcCompressType对应 - uint32 content_encoding = 10; -} + // Protocol version + // Specific value corresponds to TrpcProtoVersion + uint32 version = 1; + + // Call type of request + // eg: normal call, one-way call + // Specific value corresponds to TrpcCallType + uint32 call_type = 2; + + // Request unique id + uint32 request_id = 3; + + // Error return code at framework layer + // Specific value corresponds to TrpcRetCode + int32 ret = 4; + + // Interface error return code + // It is recommended to identify success and failure when using, 0 represents success, others represent failure + int32 func_ret = 5; + + // Call result information description + // Used when failed + bytes error_msg = 6; + + // Message type for framework information transparent transmission + // Such as tracing, dyeing key, gray, authentication, multi-environment, set name, etc. + // Specific value corresponds to TrpcMessageType + uint32 message_type = 7; + + // Key-value pairs for framework transparent transmission information returned, + // Currently divided into two parts: + // 1. Information transparently transmitted back by the framework layer, key names must start with 'trpc-' + // 2. Information transparently transmitted back by the business layer, which can be set by the business itself + map trans_info = 8; + + // Encoding type of response data + // eg: proto/jce/json, default proto + // Specific value corresponds to TrpcContentEncodeType + uint32 content_type = 9; + + // Compression method used for response data + // eg: gzip/snappy/..., default not used + // Specific value corresponds to TrpcCompressType + uint32 content_encoding = 10; +} \ No newline at end of file From 22ab5e6910a140201329473ec6e02dcfb0faa63e Mon Sep 17 00:00:00 2001 From: homerpan Date: Tue, 15 Apr 2025 20:33:07 +0800 Subject: [PATCH 85/85] fix merge issue --- README.md | 2 +- test/README.md | 2 +- testbuild.sh | 2 +- trpc/swagger/swagger.proto | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 670a018..98fd356 100644 --- a/README.md +++ b/README.md @@ -57,4 +57,4 @@ Please read [How to contribute](https://github.com/trpc-group/trpc/blob/main/CON ## Feedback -Report bugs, ask questions or give suggestions by [Issues](https://github.com/trpc-group/trpc/issues) +Report bugs, ask questions or give suggestions by [Issues](https://github.com/trpc-group/trpc/issues) \ No newline at end of file diff --git a/test/README.md b/test/README.md index 95dce0b..5f93d2a 100644 --- a/test/README.md +++ b/test/README.md @@ -1,3 +1,3 @@ -trpc各语言能正常生成可编译通过代码的测试 +tRPC各语言能正常生成可编译通过代码的测试 - cpp:c++语言能正常生成桩代码 diff --git a/testbuild.sh b/testbuild.sh index 73846c0..a62715c 100644 --- a/testbuild.sh +++ b/testbuild.sh @@ -1,3 +1,3 @@ #!/bin/bash -bazel build ... +bazel build ... \ No newline at end of file diff --git a/trpc/swagger/swagger.proto b/trpc/swagger/swagger.proto index db12530..83c166d 100644 --- a/trpc/swagger/swagger.proto +++ b/trpc/swagger/swagger.proto @@ -5,6 +5,7 @@ // A copy of the Apache 2.0 License is included in this file. syntax = "proto3"; + import "google/protobuf/descriptor.proto"; package trpc;